![]() |
Ne Art Switch umsetzen
Moin Moin
ich habe bei mir im Programm mehere Links drinn welche über ein menü aufgerufen werden das in ansätzen so ausschaut:
Delphi-Quellcode:
nun denke ich mir mal (da ich sowas ja auch von PHP kenne ;)) das man das auch besser lösen kann z.b. ala:
procedure MenuItem3Click(Sender: TObject);
procedure MenuItem4Click(Sender: TObject); procedure MenuItem5Click(Sender: TObject); . . . . . procedure TForm1.MenuItem3Click(Sender: TObject); begin Shellexecute(handle,'open',PChar('http://www.google.de'),'','',sw_show); end; procedure TForm1.MenuItem4Click(Sender: TObject); begin Shellexecute(handle,'open',PChar('http://www.google.com'),'','',sw_show); end; procedure TForm1.MenuItem5Click(Sender: TObject); begin Shellexecute(handle,'open',PChar('http://www.gmx.de'),'','',sw_show); end;
Delphi-Quellcode:
nur was bastelt man da rum ? und wie bekommt man es hin das jedes menueItem eine Zahl sendet z.b. 1 für google.de ?
case seite of
1: Shellexecute(handle,'open',PChar('http://www.google.de'),'','',sw_show); 2: Shellexecute(handle,'open',PChar('http://www.google.com'),'','',sw_show); 3: Shellexecute(handle,'open',PChar('http://www.gmx.de'),'','',sw_show); end; |
Re: Ne Art Switch umsetzen
Hi,
du könntest dem Menüitem den Tag 1 geben, dem nächsten Tag2 etc. Dann machst du eine Procedure:
Delphi-Quellcode:
diese Procedure weist du nun allen Menüitems zu.
procedure MenuClick(Sender: TObject);
begin case TMenuItem(Sender).Tag of 1: shellexecute... 2: ... ... end; end; |
Re: Ne Art Switch umsetzen
Hierfür bietet sich die Tag Eigenschaft der MenuItem an.
Gib jeden MenuItem eine eigene Nummer. (Praktischerweise von 1 aufwärts) Anschließend würde ich die URLs in ein Array of String packen. nun weisst du allen MenuItems ein "Onclick" ereignis zu. (alle die selbe)
Delphi-Quellcode:
procedure TForm1.N1231Click(Sender: TObject);
const URLs : array[1..3] of String = ('http://www.google.de','http://www.google.com','http://www.gmx.de'); begin Shellexecute(handle,'open',PChar(URLs[TMenuItem(sender).Tag]),'','',sw_show); end; |
Re: Ne Art Switch umsetzen
Gute Idee, aber funktioniert leider nicht :(
habe das jetzt so:
Delphi-Quellcode:
beim compilen bekomme ich die meldung das in der Zeile:
// Links aufrufen
procedure LinkOeffnen(Sender: TObject); begin case TMenuItem(Sender).Tag of 1: Shellexecute(handle,'open',PChar('http://www.google.de'),'','',sw_show); 2: Shellexecute(handle,'open',PChar('http://www.google.com'),'','',sw_show); 3: Shellexecute(handle,'open',PChar('http://www.gmx.de'),'','',sw_show); end; end; 1: Shellexecute(handle,'open',PChar('http://www.google.de'),'','',sw_show); Error: Type identifier not allowed here |
Re: Ne Art Switch umsetzen
ok das handle muß durch ner 0 ersetzt werden dann funktioniert es
Delphi-Quellcode:
// Links aufrufen
procedure LinkOeffnen(Sender: TObject); begin case TMenuItem(Sender).Tag of 1: Shellexecute(0,'open',PChar('http://www.google.de'),'','',sw_show); 2: Shellexecute(0,'open',PChar('http://www.google.com'),'','',sw_show); 3: Shellexecute(0,'open',PChar('http://www.gmx.de'),'','',sw_show); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz