Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Parameter in einer Verknüpfung (https://www.delphipraxis.net/3909-parameter-einer-verknuepfung.html)

Andreas L. 5. Apr 2003 15:36


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!

Christian Seehase 5. Apr 2003 15:42

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)

Andreas L. 5. Apr 2003 15:48

Zitat:

Zitat von Christian Seehase
erst einmal herzlich willkommen in der Delphi-Praxis.

DANKE :duck:



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:

Daniel B 5. Apr 2003 15:53

Hallo und herzlich Willkommen im Forum,

hier mal ein bisschen Code von mir, wie man den Parameter übernimmt.
Delphi-Quellcode:
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;
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.

Grüsse, Daniel :hi:

Christian Seehase 5. Apr 2003 15:56

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.

Andreas L. 5. Apr 2003 15:59

OK! Ich werde das mal probieren, wenn ich in übung bin poste ich wieder!

Andreas L. 7. Apr 2003 17:59

Leider habs ich nicht geschafft! Kann mir jemand eine kompletten Code geben? Bräuchte das, sonst kann ich mein Prog nicht fertigstellen! :?

Daniel B 7. Apr 2003 18:28

Du stellst Dich aber auch an. ;)

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  if ParamStr(1) = 'MeinParameter' then
  begin
    //Hier der Code
  end;
end;
Grüsse, Daniel :hi:

Andreas L. 7. Apr 2003 18:45

Gut, das geht! Wie kann ich jetzt noch amchen das form1.hide gemahct wird!

Ich benutze im Moment

Code:
if paramstr(1) = 'form2' then Form1.Hide else Form2.Show;
Aber da öffnet sich Form1 und wird nocht hide, und form2 öffnet sich nciht!

Andreas L. 7. Apr 2003 18:48

Das:
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
 if paramstr(1) = 'form2' then
begin
Form1.Hide;
end;
begin
Form2.Show;
end;
end;
geht auch net!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 Uhr.
Seite 1 von 2  1 2      

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