Autor Beitrag
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 05.09.02 07:51 
Hi,

ich möchte gern eine Komponente in der Art vom TMainMenu machen.. ist auch soweit kein problem.. ist fertig und funktioniert, nur ein problem hab ich... ein ziemlich großes sogar *gg*

Wie kann ich jedem eintrag (bei mir ist jeder einzelne eintrag im menu ein eigenes TImage) ein OnClick event zuweisen???ich weiß wie ich das bei der kompletten Komponente mache, aber wie das bei einem zur laufzeit erstelltem Object in der Komponente geht.. KA... :)

Wär super wenn mir da jemand helfen kann.

Au'revoir,
Aya
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 05.09.02 09:15 
Du weißt einfach dem Event OnClick eine Methode zu:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
  private
    procedure DoMenuClick (Sender: tObject);
 
  {...}

Var
  MenuItem: tMenuItem;
Begin
  { Hier das Menü erstellen und Eigenschaften zuweisen }
  ...
  { Hier die DoMenuClick-Methode dem Event zuweisen }
  MenuItem.OnClick := DoMenuClick;
End;

Gruß
TINO
Aya Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 05.09.02 09:45 
Mh.. du hast mich nich richtig verstanden... EINEM Menüpunkt etwas zuweisen ist kein problem... aber es können doch in einem MainMenu durchaus auch 50-100 Einträge sein wo JEDES ein verschiedenes OnClick ereigniss hat...
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 05.09.02 11:39 
Aya hat folgendes geschrieben:
Mh.. du hast mich nich richtig verstanden...

Ich denke schon, oder? Jedenfalls hast Du gefragt:
Aya hat folgendes geschrieben:
Wie kann ich jedem eintrag {...} ein OnClick event zuweisen???

Stell Deine Frage doch noch mal anders... vielleicht verstehe ich es dann und kann Dir dann besser helfen!

Gruß
TINO
Aya Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 05.09.02 12:23 
Ein TMainMenu... Du weißt was das ist, ja? *g*

Das hat gaaaanz viele einzelne Menüpunkte, und jeder einzelne von den MenüPunkten hat sein ganz eigenes OnClick event, ja? :)

gut, wenn ich im vorhinein schon weiß wieviele MenüPunkte es sind kann ich es mit deiner methode machen, aber das dumme is halt.. ich weiß es nich im vorhinein :)

hast du mich jetzt verstanden???
GPF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 85



BeitragVerfasst: Do 05.09.02 12:39 
Deine Ideen sind nicht realisierbar so wie Du möchtest - sofern ich Dich richtig verstanden habe.

Falls Du verschiedene OnClick-Prozeduren schreiben möchtest kannst Du dies ohne weiteres machen und jedem TMenuItem-OnClick Ereignis die passende Prozedure zuweisen.

Um dynamisch auf die Inhalte des angeklickten Menüeintrages reagieren zu können mußt Du den Sender der OnClick Methode auswerten.
Ich empfehle Dir dabei irgendwie den Tag eines Menüelementes auszulesen. Entweder kodierst Du die Integerzahl anhand eines Schemas oder benutzt diese Eigenschaft unter Nutzung von Typecasting als Zeiger auf ein Objekt, welches weiterführende Informationen enthält (wie z.B. Dateiname, Bildobjekte, etc).

_________________
"Wenn Debugging ein Vorgang ist, Fehler aus einem Programm auszubauen, dann ist Programmieren der Vorgang, Fehler einzubauen."
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 05.09.02 13:06 
Aya hat folgendes geschrieben:
Ein TMainMenu... Du weißt was das ist, ja? *g*

Ich denke schon!
Aya hat folgendes geschrieben:
Das hat gaaaanz viele einzelne Menüpunkte, und jeder einzelne von den MenüPunkten hat sein ganz eigenes OnClick event, ja? :)

ja, jedes tMenuItem hat ein OnClick-Event.

Aya hat folgendes geschrieben:
gut, wenn ich im vorhinein schon weiß wieviele MenüPunkte es sind kann ich es mit deiner methode machen, aber das dumme is halt.. ich weiß es nich im vorhinein

Du musst das eigentlich so machen wie ich es gepostet habe. Du gibst dann halt jedem tMenuItem das gleich OnClick-Event und über den Parameter Sender findest Du dann halt heraus welches tMenuItem das OnClick-Event verursacht hat.

Gruß
TINO