Autor Beitrag
huhn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 272
Erhaltene Danke: 1

WIN XP
D7Pers
BeitragVerfasst: Mi 01.03.06 14:29 
Hi leute!
ich habe eine dll gemacht die eine class exportiert und die ich dann im hauptprogramm laden kann. Nun beinhaltet eine funktion die erstelleung eines buttons im hauptprogramm und ich möchte auf den klick reagieren können. Jedoch geschieht gar nichts, ich hab mir auch schon Motzis tutorial zu methoden zeiger etc angeguckt aber es will trotzdem nicht.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
procedure Notifyaction2(Sender:TObject);
begin
  MessageDlg('klick!', mtWarning, [mbOK], 0);
end;

function TPluginExt.getOptMenu(var MyOpt:TObjectList):boolean;
begin
try
  result:=true;
  aMethod.Code := @Notifyaction2;
  aMethod.Data := nil;
  MyButton:=TButton.CreateParented(TPanel(FForm.FindComponent('Panel1')).Handle);
  with Mybutton do
    begin
      name:='ButtonTest';     visible:=true;
      left:=10;top:=10;width:=75;height:=25;caption:='test';
      onclick:=TNotifyEvent(aMethod);
    end;
  ShowWindow(MyButton.Handle,SW_SHOW);
  MyOpt.Add(MyButton);
except
  result:=false;
end;
end;

wie gesagt wird die dll geladen der button erstellt jedoch passiert nichts beim klicken.
wie kann ich es machen das er reagiert wenn ich klicke?
mfg huhn

_________________
Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mi 01.03.06 16:38 
du übergibtst eine Adresse von einer Adresse für die Methode OnClick!

versuch's mit:
ausblenden Delphi-Quelltext
1:
onclick:=Notifyaction2;					


grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
huhn Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 272
Erhaltene Danke: 1

WIN XP
D7Pers
BeitragVerfasst: Mi 01.03.06 16:42 
ne geht nicht ;)
des war mein erster versuch
ausblenden Quelltext
1:
[Fehler] PluginExt.pas(98): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'					

_________________
Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mi 01.03.06 16:46 
die OnClick-Methode muss in einer Klasse im Public-Teil stehen.
So einfach als Proc würds naturlemente nicht funzen.
grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
huhn Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 272
Erhaltene Danke: 1

WIN XP
D7Pers
BeitragVerfasst: Mi 01.03.06 16:54 
hab ich auch schon probiert
[Fehler] PluginExt.pas(100): Inkompatible Typen: 'Unterschiede in der Aufrufkonvention'
...

_________________
Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
huhn Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 272
Erhaltene Danke: 1

WIN XP
D7Pers
BeitragVerfasst: Mi 01.03.06 18:45 
irgendwie steck bei mir da der wurm drinne weil ich das teil aus einer dll zur hauptform erstelle und so probleme bekomme.
ich habe es jetzt anderst gelöst und schon oft erwähnte Tframe benutzt.
Hier klappt es ohne probleme und ich bin glücklich.
Trotzdem vielen dank für eure hilfe

mfg huhn

_________________
Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*