Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi OnClick auf globale Funktion setzen ... (https://www.delphipraxis.net/12370-onclick-auf-globale-funktion-setzen.html)

Summa 26. Nov 2003 08:42


OnClick auf globale Funktion setzen ...
 
Halla Zusammen,

brauch mal bitte Euere Hilfe!

Hab folgendes Problem:
================================================== =======================
procedure TuWas(Sender: TObject);
begin
ShowMessage('Ich tu was');
end;

var SubMenu: TMenuItem;

procedure InstalliereWas(MainMenu: TMainMenu);
begin
SubMenu:=TMenuItem.Create(NIL);
SubMenu.Caption:='TU WAS !!!';
SubMenu.OnClick:=TuWas; // <============ HIER IST SCHLUSS :wall:

MainMenu.Items.Add(SubMenu);
end;
================================================== =======================

Also ich ruf die Funktion InstalliereWas(Form1.MainMenu) auf und
es wird ein weiterer Menueintrag im Hauptfenster angehängt.

Das Teil soll in ein Package rein, damit ich dynamisch Teile dazuladen kann etc.

Wer kann mir helfen.


PS: War da nicht was mit MakeProcObject oder so ähnlich ????

maximov 26. Nov 2003 10:07

Re: OnClick auf globale Funktion setzen ...
 
Aha...

Das liegt wohl daran, dass alle gängigen events methoden erwarten und keine normalen prozeduren. Also procedure (sender:TObject) of object;. Du kannst das mit class methoden umgehen:

Delphi-Quellcode:
...
  TWrapper = class
    class procedure TuWas(sender:TObject);
  end;
...
procedure TWrapper.TuWas(Sender: TObject);
begin
  ShowMessage('Ich tu was');
end;

var SubMenu: TMenuItem;

procedure InstalliereWas(MainMenu: TMainMenu);
begin
...
SubMenu.OnClick:=TWrapper.TuWas;
mfg maximom

Summa 26. Nov 2003 10:18

Re: OnClick auf globale Funktion setzen ...
 
Genial einfach, einfach genial.

:oops: Das einfache liegt so nah, wieso bin ich nicht darauf gekommen !?!?!?! :oops:

Besten Dank für die schnelle Hilfe !!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz