AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi popupmenu item hinzufügen und onClick ereignis definieren!
Thema durchsuchen
Ansicht
Themen-Optionen

popupmenu item hinzufügen und onClick ereignis definieren!

Ein Thema von ixtreme · begonnen am 15. Nov 2003 · letzter Beitrag vom 16. Nov 2003
Antwort Antwort
Seite 2 von 2     12   
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: popupmenu item hinzufügen und onClick ereignis definiere

  Alt 15. Nov 2003, 22:07
Moin ixtreme,

dann noch einmal in Kurzfassung:

Das OnClick Event ist vom Typ TNotifyEvent.
Diese ist folgendermassen deklariert:

Delphi-Quellcode:
type
  TNotifyEvent = procedure(Sender: TObject) of object;
Durch dieses of object hat es einen unsichtbaren Parameter self, so dass eigentlich

procedure ButtonClick(self: TComponent;Sender: TObject); aufgerufen wird, wenn das OnClick Event aufgerufen wird.

Jetzt vergleich das mal mit Deiner "KlickMich" Prozedur.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
ixtreme
(Gast)

n/a Beiträge
 
#12

Re: popupmenu item hinzufügen und onClick ereignis definiere

  Alt 16. Nov 2003, 15:35
ja aber ich kann die prcedure doch aus einer dll nicht so deklarieren?

Gruß

ixtreme.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: popupmenu item hinzufügen und onClick ereignis definiere

  Alt 16. Nov 2003, 15:35
Moin ixtreme,

Zitat von ixtreme:
ja aber ich kann die prcedure doch aus einer dll nicht so deklarieren?
und warum nicht?

[EDIT]
Besser gesagt: Was spricht dagegen?
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
ixtreme
(Gast)

n/a Beiträge
 
#14

Re: popupmenu item hinzufügen und onClick ereignis definiere

  Alt 16. Nov 2003, 16:16
ok, habs versucht, dann findet er die procedure nicht mehr....


fehler: prcedure klickmich in datei.dll nicht vorhanden/gefunden!
  Mit Zitat antworten Zitat
ixtreme
(Gast)

n/a Beiträge
 
#15

Re: popupmenu item hinzufügen und onClick ereignis definiere

  Alt 16. Nov 2003, 16:21
oder es kommt beim aufruf die meldung:

calling conventions differ
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#16

Re: popupmenu item hinzufügen und onClick ereignis definiere

  Alt 16. Nov 2003, 17:46
Das hier geht, ist aber nicht sehr elegant:

Delphi-Quellcode:
type
  TNotifyEventMP = record
    Proc : procedure(self : TComponent; Sender: TObject);
    self : TComponent;
  end;

procedure KlickMich(self : TComponent; Sender: TObject); // Diese hier kann external, also in der DLL sein
begin
  ShowMessage('Sender: ' + Sender.ClassName);
end;

const
  KlickMichMP : TNotifyEventMP =
    (
    Proc : KlickMich;
    self : nil;
    );

procedure TForm1.Button2Click(Sender: TObject);
begin
  MenuItem1.OnClick := TNotifyEvent(KlickMichMP);
end;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: popupmenu item hinzufügen und onClick ereignis definiere

  Alt 16. Nov 2003, 18:35
Moin ixtreme,

Zitat von ixtreme:
fehler: prcedure klickmich in datei.dll nicht vorhanden/gefunden!
Das dürfte daran liegen, dass man beim Import exakt auf die Gross-/Kleinschreibung achten muss.
Wenn die Prozedur als KlickMich exportiert wird, und Du beim Import klickmich angibst, geht das schief.

Zitat von ixtreme:
calling conventions differ
Beim Import gibst Du als Aufrufkonvention stdcall an, in der DLL nicht.
Also entweder immer oder gar nicht.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#18

Re: popupmenu item hinzufügen und onClick ereignis definiere

  Alt 16. Nov 2003, 19:19
Hallo,

ich würde die sichere Art und Weise bevorzugen, etwa in der Art:

Code:
implementation

{$R *.dfm}

var
  _DynButton : function(): TMenuItem; stdcall;

procedure TMainForm.FormCreate(Sender: TObject);
begin
  LH := LoadLibrary('test.dll');
  if LH <> 0 then
  begin
    @_GetDynButton := GetProcAddress(LH, 'CreateButton');
    PopupMenu.Items.Insert(PopupMenu.Items.Count, _GetDynButton);
  end
  else MessageDlg('Fehler-Nr.: ' + IntToStr(GetLastError), mtError, [mbOk], 0);
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:10 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