Autor Beitrag
SportGoofy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47

Win XP Prof.
MS Visual C# 05 EE
BeitragVerfasst: Sa 12.05.07 11:09 
Moin 8)

Wie kann man eigentlich die Menüeinträge zur Laufzeit ändern bzw. welche hinzufügen?
Sinn des ganzen soll es sein, das wie in Office unten immer die zuletzt geladenen Dateien stehen - die man dann direkt auswählen kann.
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Sa 12.05.07 11:17 
Dann schau dir mal das hier an.
SportGoofy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47

Win XP Prof.
MS Visual C# 05 EE
BeitragVerfasst: So 13.05.07 21:51 
Das half mir schon mal weiter 8)

Das Menü ist soweit fertig, aber hab noch Probleme mit dem Verständnis wie ich jetzt
auch das passende OnClick-Ereignis auslösen kann.

Wenn NewItem.OnClick:=Auswertung; muß ich dann in Auswertung eine Ereignisbehandlungsroutine für alle zur Laufzeit erstellten Menüpunkte programmieren oder muß ich da einfach jeweils zu jedem Punkt nur die jeweilige Prozedur angeben?

(Hab die Menüpunkte in einer Schleife erstellt)
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Mo 14.05.07 18:13 
user profile iconSportGoofy hat folgendes geschrieben:
Wenn NewItem.OnClick:=Auswertung; muß ich dann in Auswertung eine Ereignisbehandlungsroutine für alle zur Laufzeit erstellten Menüpunkte programmieren oder muß ich da einfach jeweils zu jedem Punkt nur die jeweilige Prozedur angeben?

Du gibst einfach zu jedem Punkt die Prozedur an, die du haben willst.
SportGoofy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47

Win XP Prof.
MS Visual C# 05 EE
BeitragVerfasst: Di 15.05.07 18:47 
Mmmmm also eigentlich brüte ich immer noch darüber.

Also hab jetzt folgende Schleife für das Einfügen von 9 Menüpunkten erstellt:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
for I:=1 to 9 do
  begin
    NewItem := TMenuItem.Create(Self);
    NewItem.Caption :=Daten.Name[I];
    NewItem.Tag:=I;
    NewItem.OnClick:=OnMenuClick;
    Projekte.Add(NewItem);
  end;


In der OnMenuClick-Prozedur

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.OnMenuClick(Sender : TObject); 
  begin
    case TMenuItem(Sender).Tag of
    1 : begin
          PX:=1;
          Form2.ShowModal;
        end;
    2 : begin
          PX:=2;
          Form2.ShowModal;
        end;

usw. usw. usw.
  
end;


frage ich dann ab, welcher Menüpunkt gedrückt wurde.

Muß aber mehrmals im Programmverlauf das Menü ändern - hatte die Menuerstellung bisher in FormCreate gepackt. Wie kann ich auf die Caption-Eigenschaft im Programmverlauf meiner neu erstellten Punkte zugreifen um die zu ändern?
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Di 15.05.07 20:01 
Verwende doch einfach das Name attribut dazu.
SportGoofy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47

Win XP Prof.
MS Visual C# 05 EE
BeitragVerfasst: Mi 16.05.07 09:21 
Hi!

Hab jetzt ne Lösung gefunden. Allerdings ne andere 8) .

Hab mal im Netz so rumgeschaut und erstelle nun mit dem Menüeditor ein Menü mit allen 9 Punkten dann habe ich schon mal eine fertige Grundlage. Bei Bedarf blende ich dann eben über visible die einzelnen Punkte aus. So komme ich auch leichter an die Caption-Eigenschaft bzw. Tag und onClick :D

Trotzdem danke für die Antworten 8)