| Autor |
Beitrag |
91KEY8
      
Beiträge: 105
Delphi 3
|
Verfasst: Sa 24.03.07 16:44
Das Problem: Ich möchte, dass wenn man auf einen Menüpunkt klickt, der Text ausgeführt wird, der da steht. Ich lese den Text aus einer *.dat Datei aus.
Folgendes hab ich schon, aber damit wird immer nur der Letzte Punkt gestartet.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var sl: TStringList; zeilennr: integer; mi2: string; begin begin sl:=TStringList.Create; try sl.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'mein_menü.dat'); for zeilennr:=0 to sl.Count-1 do begin mi2:=sl.Strings[zeilennr]; end; finally sl.free; end; end; ShellExecute(Application.Handle, 'open', PChar(mi2), Nil, Nil, SW_NORMAL) |
Wie kann ich es machen, dass das gestartet wird, was da steht.
So hab ich zuvor die Menüpunkte eingelesen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var sl: TStringList; zeilennr: integer; mi: TMenuItem; begin sl:=TStringList.Create; try sl.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'mein_menü.dat'); for zeilennr:=0 to sl.Count-1 do begin mi := NewItem(sl.Strings[zeilennr], 0, False, True, startemein, 0, ''); ools1.Add(mi); end; finally sl.free; end; end; |
mfg 91KEY8
|
|
Blawen
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: Sa 24.03.07 18:22
91KEY8 hat folgendes geschrieben: | | Das Problem: Ich möchte, dass wenn man auf einen Menüpunkt klickt, der Text ausgeführt wird, der da steht. Ich lese den Text aus einer *.dat Datei aus. |
Irgendwie verstehe ich Deine Frage nicht ganz. So nebenbei wird es nicht reichen nur den Beschriftungstext einzulesen, irgendwie musst Du ja auch deklarieren, was genau ausgeführt werden soll.
_________________ Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro
|
|
91KEY8 
      
Beiträge: 105
Delphi 3
|
Verfasst: Sa 24.03.07 21:36
Blawen hat folgendes geschrieben: | 91KEY8 hat folgendes geschrieben: | | Das Problem: Ich möchte, dass wenn man auf einen Menüpunkt klickt, der Text ausgeführt wird, der da steht. Ich lese den Text aus einer *.dat Datei aus. | Irgendwie verstehe ich Deine Frage nicht ganz. So nebenbei wird es nicht reichen nur den Beschriftungstext einzulesen, irgendwie musst Du ja auch deklarieren, was genau ausgeführt werden soll. |
Wie deklariere ich das??
|
|
91KEY8 
      
Beiträge: 105
Delphi 3
|
Verfasst: Fr 30.03.07 21:10
Kann mir niemand helfen??
mfg 91KEY8
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 30.03.07 23:27
Blawen hat folgendes geschrieben: | 91KEY8 hat folgendes geschrieben: | | Das Problem: Ich möchte, dass wenn man auf einen Menüpunkt klickt, der Text ausgeführt wird, der da steht. Ich lese den Text aus einer *.dat Datei aus. | Irgendwie verstehe ich Deine Frage nicht ganz. So nebenbei wird es nicht reichen nur den Beschriftungstext einzulesen, irgendwie musst Du ja auch deklarieren, was genau ausgeführt werden soll. |
Klar, wir helfen immer, aber ... HÄ? Du willst einen "Text ausführen" ... Soweit ich weiß, müssen Texte nicht Gassi gehn
Nein, Spaß bei Seite. Meinst du, du hast einen Menüpunkt der "Hallo" heißt, und der soll mit der Prozedur "Hallo;" verbunden werden, oder willst du .. äh .. Sorry, ich versteh wirklich kein bisschen, was du meinst... 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
raiguen
      
Beiträge: 374
WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
|
Verfasst: Sa 31.03.07 00:47
Och... ist doch nicht schwer zu erkennen, was 91KEY8 möchte  :
Beispiel: auf dem MenuItem steht als Caption (oder wie 91KEY8 es ausdrückt: Text) SOKOBAN.EXE; bei Klick auf dieses MEnuItem möchte er nun das Spiel SOKOBAN starten...
Blawen hat folgendes geschrieben: | | ... irgendwie musst Du ja auch deklarieren, was genau ausgeführt werden soll. |
Das hat er ja auch gemacht mit dem Parameter startemein:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| mi := NewItem(sl.Strings[zeilennr], 0, False, True, 0, startemein, 'mi'+IntToStr(Zeilennr); |
So, nun noch das OnClick-Ereignis:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure startemein(Sender: TObject); var MenuText: STring; begin MenuText := TMenuItem(Sender).Caption; ShellExecute(Application.Handle, 'open', PChar(MenuText), Nil, Nil, SW_NORMAL); end; |
So sollte es prinzipiell funktioneren...
Guts Nächtle
|
|
91KEY8 
      
Beiträge: 105
Delphi 3
|
Verfasst: So 01.04.07 18:48
raiguen hat folgendes geschrieben: | Och... ist doch nicht schwer zu erkennen, was 91KEY8 möchte :
Beispiel: auf dem MenuItem steht als Caption (oder wie 91KEY8 es ausdrückt: Text) SOKOBAN.EXE; bei Klick auf dieses MEnuItem möchte er nun das Spiel SOKOBAN starten...
Blawen hat folgendes geschrieben: | | ... irgendwie musst Du ja auch deklarieren, was genau ausgeführt werden soll. |
Das hat er ja auch gemacht mit dem Parameter startemein:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| mi := NewItem(sl.Strings[zeilennr], 0, False, True, 0, startemein, 'mi'+IntToStr(Zeilennr); |
So, nun noch das OnClick-Ereignis:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure startemein(Sender: TObject); var MenuText: STring; begin MenuText := TMenuItem(Sender).Caption; ShellExecute(Application.Handle, 'open', PChar(MenuText), Nil, Nil, SW_NORMAL); end; |
So sollte es prinzipiell funktioneren...
Guts Nächtle |
Vielen Dank raiguen!
mfg 91KEY8
|
|
|