Witam!
Mam problem w Delphi. Użyłem debuggera i okazało się, że zdarzenie OnClick w TMenuItem wykonuje się bez mojej wiedzy przy uruchamianiu programu, przez co tracę nad nim kontrolę :| Funkcję do OnClick ładuję z DLL'a. Wygląda to następująco:
Deklaracja w DLL'u:
function s1(Edicik:TEdit;Labelek1:TLabel;Labelek2:TLabel;Labelek3:Tlabel;ListBox:TListBox;Timer:TTimer;Panel:TPanel):TNotifyEvent; stdcall;
begin
INI := TINIFile.Create(ExtractFilePath(Application.ExeName) + 'ulubione.ini');
try
Edicik.Text := INI.ReadString('Ulubione', 'Adres1', '');
sprawdz(Edicik,Labelek1,Labelek2,Labelek3,ListBox,Timer,Panel);
Labelek1.Caption := INI.ReadString('Ulubione','Nazwa1','');
finally
INI.Free;
end;
end;
Deklaracja funkcji w programie:
function s1(Edicik:TEdit;Labelek1:TLabel;Labelek2:TLabel;Labelek3:Tlabel;ListBox:TListBox;Timer:TTimer;Panel:TPanel):TNotifyEvent; stdcall external 'biblioteki/Funkcje.dll' name 's1';
Wywołanie funkcji z kawałkiem kodu:
if not (INI.ReadString('Ulubione', 'Nazwa1', '') = '') then begin
Form2.N11.Caption := INI.ReadString('Ulubione','Nazwa1','');
Form2.N11.OnClick := s1(Form2.Edit1,Form2.Label1,Form2.Label2,Form2.Label3,Form2.ListBox1,Form2.Timer1,Form2.Panel1);
Form2.N11.Visible := True;
end else begin
Form2.N11.Caption := '1';
Form2.N11.Visible := False;
end;
Nie mam pojęcia, dlaczego samoczynnie OnClick wzbudza się i rozpoczyna działanie Najgorsze jest to, że program w ogóle się nie wyświetla tylko wykonuje zdarzenie.
Kiedy mam tą procedurę w programie to nic się nie dzieje. Podkreśliłem procedurę, ponieważ z DLL'a żąda funkcji, bo chce zwrócić TNotifyEvent, nie mam pojęcia dlaczego.
Proszę o pomoc