dziwny blad

0

Witam,

czy moglby mi ktos pomoc w rozwiazaniu tego problemu ??

Przy ort! odwolania sie do CheckButtona znajdujacego sie na formatce F_MainWindow wyskakuje mi taki blad:

user image

Zaznaczam ze checkButton nie byl tworzony dynamicznie tylko ozstal przeciagniety z paska narzedzi. Procedura wewnatrz ktorej generowany jest blad nie jest metoda klasy TF_MainFOrm.
Czy powyzszy blad jest spowodowany jakim bugiem delphi?? Czy tez ja cos zepsulem.

Prosze o podpowiedz.

pozdrawiam,
MiloszeS

0

Może F_MainWindow był tworzony dynamicznie?

0

A nie probujesz przypadkiem odwolywac sie do tego CheckBoxa w innym watku?

0

Udalo mi sie zlokalizowac blad. Wcześniej ładowałem dynamicznie pewna biblioteke i to ona była powodem tego błędu. Jednakże przy ładowaniu, wywołaniu funkcji i zwolnieniu bibiloteki wszystko było w porządku. Czy mogłby mi ktoś wytłumaczyć dlaczego był taki dziwny ekekt ?? Czy ta biblioteka nadpisała obszar pamięci w ktorym znajdowały sie adresy do obiektów typu checkBox ??
Funkcja wywołująca funkcje z biblioteki:

function  getTimeNet  (day: integer; hour: integer) : boolean;
var
  hLib  : THandle;
  GetTerm : TGetTerm;

  aqq : integer;
  aqw : boolean;
begin
  hLib  :=  LoadLibrary ('block');

  Result := false;

  try
    if hLib > 0 then
    begin
      GetTerm  :=  GetProcAddress (hLib, 'checkTerm');

      if assigned (GetTerm) then
        begin
          aqw := GetTerm (Pchar(DIR), day, hour);
        end;
    end;
  finally
    FreeLibrary (hLib);
  end;

  Result := aqw;

end;

Przy czym typ wywoływanej funkcji też jest dobry.
Swój problem rozwiązałem bez ort! z tej biblioteki- jednakże zastanawia mnie co sie dokladnie stalo.

0

Udalo mi sie zlokalizowac blad. Wcześniej ładowałem dynamicznie pewna biblioteke i to ona była powodem tego błędu. Jednakże przy ładowaniu, wywołaniu funkcji i zwolnieniu bibiloteki wszystko było w porządku. Czy mogłby mi ktoś wytłumaczyć dlaczego był taki dziwny ekekt ?? Czy ta biblioteka nadpisała obszar pamięci w ktorym znajdowały sie adresy do obiektów typu checkBox ??
Funkcja wywołująca funkcje z biblioteki:

function  getTimeNet  (day: integer; hour: integer) : boolean;
var
  hLib  : THandle;
  GetTerm : TGetTerm;

  aqq : integer;
  aqw : boolean;
begin
  hLib  :=  LoadLibrary ('block');

  Result := false;

  try
    if hLib > 0 then
    begin
      GetTerm  :=  GetProcAddress (hLib, 'checkTerm');

      if assigned (GetTerm) then
        begin
          aqw := GetTerm (Pchar(DIR), day, hour);
        end;
    end;
  finally
    FreeLibrary (hLib);
  end;

  Result := aqw;

end;

Przy czym typ wywoływanej funkcji też jest dobry.
Swój problem rozwiązałem bez ort! z tej biblioteki- jednakże zastanawia mnie co sie dokladnie stalo.

Spróbuj tak:

function  getTimeNet  (day, hour: integer) : boolean;
var
  hLib: THandle;
  GetTerm: TGetTerm;
  aqq: Integer;
  aqw: Boolean;
begin
  hLib  :=  LoadLibrary ('block');
  Result := false;
  try
    if hLib > 0 then
    begin
      @GetTerm  :=  GetProcAddress (hLib, 'checkTerm');

      if @GetTerm <> nil then
        begin
          aqw := GetTerm (Pchar(DIR), day, hour);
        end;
    end;
  finally
    FreeLibrary (hLib);
  end;

  Result := aqw;

end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1