Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hilfe zur Verwendung von if benötigt (https://www.delphipraxis.net/99926-hilfe-zur-verwendung-von-if-benoetigt.html)

InZiDeR 19. Sep 2007 17:10


Hilfe zur Verwendung von if benötigt
 
Guten Tag.
Ich bin schon öfter in diesem Forum gewesen .
Also habe diesmal ein problem ich muss was mit if machen aber da ich mich damit noch nicht so dolle beschäftigt habe naja.....

(ich will das er wenn die anwendung nicht gestarted geht was in die memo schreibt.)
Also hier mein Quelltext.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.add ('Starting xxx');
ShellExecute(Handle, 'open', PChar('\xxx\xxx.exe'), nil, nil, SW_SHOW);
if True then memo1.Lines.add ('Correct');
if false then memo1.lines.add ('incorrect');
[edit=SirThornberry]Titel ausführlicher formuliert - Mfg, SirThornberry[/edit]

alleinherrscher 19. Sep 2007 17:14

Re: if hilfe
 
edit: O-Ha, wenn ShellExecute kein Boolean sondern ein Handle zurückgibt, haben meine Nachredner natürlich recht, trotzdem kannst du hier die Struktur eines If befehls sehen

True ist immer Wahr, False is immer Unwahr. Du musst zunächst den Rückgabewert von ShellExecute in einer Variablen speichern und diese dann auf True oder False prüfen, also so:


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MyResult:boolean;
begin
Memo1.Lines.add ('Starting xxx');
MyResult:=ShellExecute(Handle, 'open', PChar('\xxx\xxx.exe'), nil, nil, SW_SHOW);
if MyResult = True then memo1.Lines.add ('Correct');
if MyResult = False then memo1.lines.add ('incorrect');
end;
Alternativ kannst du auch das "=True" und "=False" weglassen, da eine If Abfrage immer nachguckt, ob der Ausdruck hinter dem Wort If Wahr oder Falsch ist. D.h. oben guckt er jetzt: "ist (MyResult=True) Wahr, dann schreibe Correct ansonsten "ist (MyResult=False) Wahr dann schreibe incorrect". Außerdem kannst du noch das schöne "else" benutzten, dann brauchst du keine zwei separaten If abfragen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MyResult:boolean;
begin
Memo1.Lines.add ('Starting xxx');
MyResult:=ShellExecute(Handle, 'open', PChar('\xxx\xxx.exe'), nil, nil, SW_SHOW);
if MyResult then memo1.Lines.add ('Correct')
            else memo1.lines.add ('incorrect');
end;

DeddyH 19. Sep 2007 17:15

Re: if hilfe
 
Delphi-Quellcode:
if ShellExecute(Handle, 'open', PChar('\xxx\xxx.exe'), nil, nil, SW_SHOW) < 33 then
  memo1.lines.add ('incorrect')
else
  memo1.lines.add ('correct');

Matze 19. Sep 2007 17:16

Re: if hilfe
 
Soweit ich weiß, gibt ShellExecute ein Handle zurück (Genaues steht sicher hier: MSDN-Library durchsuchenShellExecute). bei Erfolg ist dies ein Integerwert > 32, wobei ich mir da nicht ganz sicher bin. Der Aufruf müsste demnach so aussehen:

Delphi-Quellcode:
if ShellExecute(...) > 32 then
  // erfolgreich
else
  // nicht erfolgreich
Edit: Da war Deddy wohl schneller.

InZiDeR 19. Sep 2007 17:21

Re: if hilfe
 
Danke für die netten Antworten :-D

Jetzt bin ich um einiges Schlauer.

Falls irgendjemand mir vieleicht wenn ich mal fragen habe helfen würde dann Addet mich :XaZ_2007@hotmail.de denn ich will ja nicht das ganze Forum zuspammen ;)

InZiDeR 19. Sep 2007 17:36

Re: if hilfe
 
Delphi-Quellcode:
var MyResult:boolean;
begin
MyResult:=ShellExecute(Handle, 'open', PChar('\xxx\xxx.exe'), nil, nil, SW_SHOW);
if MyResult = True then memo1.Lines.add ('xxx.exe wurde nicht gefunden');
if MyResult = False then memo1.lines.add ('xxx wurde nicht gefunden,stellen sie sicher das xxx aktuell ist oder überprüfen sie den Pfad.');
end;
nu sagt er mir das Cardinal und Boolean inkompatible typen sind....

Matze 19. Sep 2007 17:38

Re: if hilfe
 
Der Rückgabewert ist, wie DeddyH und ich geschrieben haben, kein Boolean. Mach's also so, wie wir's dir gezeigt haben.

InZiDeR 19. Sep 2007 18:11

Re: if hilfe
 
Alles werte sind in ordnung,aber nun sagt er obwohl die exe nicht da ist (also nicht gestartet werden kann) das alles korrekt ist...

DeddyH 19. Sep 2007 18:15

Re: Hilfe zur Verwendung von if benötigt
 
Zeig mal den Code.

InZiDeR 19. Sep 2007 18:31

Re: Hilfe zur Verwendung von if benötigt
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if ShellExecute(Handle, 'open', PChar('\x33\x33.exe'), nil, nil, SW_SHOW) < 33 then
  memo1.lines.add ('x33.exe gefunden,starte Silkroad.')
else
  memo1.lines.add ('bei dem versuche x33.exe zu öffnen ist ein Fehler aufgetreten,stellen sie sicher das sie den richtigen Pfad angegeben haben,oder das die x33.exe aktuell ist.');
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz