![]() |
Parameter in einer Verknüpfung
Hi,
ich habe eine Anwendung mit Delphi programmiert. Nun möchte ich das der Benutzer über eine Verknüpfung verschiedene Forms öffnen kann. Also zum Beispiel: C:\Programme\Programm\Programm.exe /? Anstatt des ? sollte eben eine Bezeichnung (Parameter) hin. Ich habe auch schon ausprobiert hinter den Slash einfach form2 zu schreiben, ging aber nicht! Wie kann ich in Delphi das realisieren! Muss ich da was in die .dpr schreiben? Ich hoffe das war verständlich! :wink: THX schon mal im voraus! |
Moin OnlineHome,
erst einmal herzlich willkommen in der Delphi-Praxis. Um Dein Problem zu lösen, solltest Du Dir mal paramstr und paramcount ansehen. Damit ist es Dir dann möglich die/den jeweils übergebenen Parameter zu ermitteln, und anhand dessen das entsprechende Formular anzuzeigen. Das was als Parameter übergeben wird, wird in paramstr(1) bis paramstr(n) an das Programm übergeben (je nach Anzahl der Parameter die übergeben werden, zu ermitteln mit paramcount) |
Zitat:
Leider habe ich mich noch nicht mit paramstr beschäftigt. Wie geht das? Wie übergibt man diese Parameter? In der Delphi-Hilfe steht nichts sehr hilfreiches! :wiejetzt: |
Hallo und herzlich Willkommen im Forum,
hier mal ein bisschen Code von mir, wie man den Parameter übernimmt.
Delphi-Quellcode:
Der erste Parameter wird hier in einem Label angezeigt und als zweiten Parameter gibt man eine .wav File an die beim Start abgespielt werden soll.
procedure TForm1.FormShow(Sender: TObject);
begin SndPlaySound(PChar(ParamStr(2)), SND_ASYNC); //SND_SYNC = Während die Datei abgespielt wird, steht das Prog. //SND_ASYNC = Die Datei wird unabhängig vom Programm abgespielt //SND_LOOP = Immer wieder und immer wieder Label1.Caption:=ParamStr(1); Button1.SetFocus; Beep; end; Grüsse, Daniel :hi: |
Moin OnlineHome,
wenn eine Exe gestartet wird, so werden alle Strings die dahinter stehen vom Betriebbsystem als Parameter übergeben, wobei ein Leerzeichen als Trennzeichen gilt, wenn der String nicht in "" eingeschlossen ist. Beispiel: programm.exe param1 noch ein parameter "noch einer" Hier würden paramstr(1) = 'param1' paramstr(2) = 'noch' paramstr(3) = 'ein' paramstr(4) = 'parameter' paramstr(5) = 'noch einer' sein. Experimentiere doch mal ein wenig damit. Das irgendwelche Kennzeichen wie / oder - verwendet werden ist keine Pflicht. Über das Menü der IDE kannst Du über Start\Parameter mal welche eingeben und Dir dann, z.B. im FormCreate Event mit einer For-Schleife von 1 bis paramcount und ShowMessage(paramstr(i)) (i = Schleifenzähler), mal ansehen, was übergeben wird. |
OK! Ich werde das mal probieren, wenn ich in übung bin poste ich wieder!
|
Leider habs ich nicht geschafft! Kann mir jemand eine kompletten Code geben? Bräuchte das, sonst kann ich mein Prog nicht fertigstellen! :?
|
Du stellst Dich aber auch an. ;)
Delphi-Quellcode:
Grüsse, Daniel :hi:
procedure TForm1.FormShow(Sender: TObject);
begin if ParamStr(1) = 'MeinParameter' then begin //Hier der Code end; end; |
Gut, das geht! Wie kann ich jetzt noch amchen das form1.hide gemahct wird!
Ich benutze im Moment
Code:
Aber da öffnet sich Form1 und wird nocht hide, und form2 öffnet sich nciht!
if paramstr(1) = 'form2' then Form1.Hide else Form2.Show;
|
Das:
Code:
geht auch net!
procedure TForm1.FormCreate(Sender: TObject);
begin if paramstr(1) = 'form2' then begin Form1.Hide; end; begin Form2.Show; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 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