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 If Then Problem (https://www.delphipraxis.net/105043-if-then-problem.html)

STS301 14. Dez 2007 16:02


If Then Problem
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

Habe ein Problem

ich bin gerade (immer noch) beim Löschprogramm, und das "then begin" stellt mir ein unerklährliches Problem in den weg.

siehe Screenshot (Fotomontage, merkt man an der uhr ;) )
sry, es bezieht sich aber nicht darauf dass ich zwei Mal

Delphi-Quellcode:
if edit1.text:='' and edit1.text:=''
geschrieben habe

turboPASCAL 14. Dez 2007 16:09

Re: If Then Problem
 
Zitat:

Zitat von STS301
Hallo

...

Delphi-Quellcode:
if edit1.text:='' and edit1.text:=''

Delphi-Quellcode:
if (edit1.text = '') and (edit1.text = '') then ...

:zwinker:

RavenIV 14. Dez 2007 16:11

Re: If Then Problem
 
Da sind gleich zwei (eigentlich drei oder vier oder fünf) Fehler drin versteckt.

a)
es heisst nicht
if a := 3 then ...
sondern
if a = 3 then
<Doppelpunkt><Gleich> ist eine Zuweisung
<Gleich> ist ein Vergleich.

b)
wenn mehrere Konditionen angegeben werden mit AND oder OR, dann muss jede Kondition geklammert werden
if (a = 3) and (b = 4) then ...

c)
Und ein Style-Guide Fehler ist auch noch dabei.
- das then gehört in die gleiche Zeile wie das if
- das begin kommt in eine neue Zeile und wird eingerückt.

d)
Man prüft nie eine boolsche Variable auf True ab.
Anstelle von
if XY.Checked = True then ...
schreibt man
if XY.Checked then ...

e)
Wenn Dich der Rückgabewert der Funktion DeleteFile nicht interessiert, dann lass das if komplett weg.

STS301 14. Dez 2007 16:26

Re: If Then Problem
 
Liste der Anhänge anzeigen (Anzahl: 1)
gut danke ihr beiden
habe jetzt nur noch ein Problem mit einer Fehlermeldung die ich ausblenden will.

@RavenIV:

Wie meinst du das mit dem Rückgabewert (e)

Luckie 14. Dez 2007 16:31

Re: If Then Problem
 
Zitat:

Zitat von STS301
habe jetzt nur noch ein Problem mit einer Fehlermeldung die ich ausblenden will.

Dann lass den else-Zweig mit der Fehlermeldung weg.

Klaus01 14. Dez 2007 16:32

Re: If Then Problem
 
Guten Abend,

alles in try -except einpacken.

Delphi-Quellcode:
try
  deleteFile(...)
except on E:Exception do
 begin
 end;
end;
Grüße
Klaus

Luckie 14. Dez 2007 16:46

Re: If Then Problem
 
DeleteFile ist eine API-Funktion, sie wirft keine Exception. Die müsste man schon selber werfen.

STS301 14. Dez 2007 17:09

Re: If Then Problem
 
:gruebel: :gruebel: ich stehe auf der Leitung, wie soll man es werfen??

mit dem Weglassen funktioniert es auch nicht, das heißt er zeigt die Meldung immer noch an

Muetze1 14. Dez 2007 17:20

Re: If Then Problem
 
Zitat:

Zitat von Luckie
DeleteFile ist eine API-Funktion, sie wirft keine Exception. Die müsste man schon selber werfen.

Erst genau hinschauen und dann sowas behaupten. Er übergibt Edit1.Text direkt an DeleteFile(), also ohne PChar Konvertierung. Somit muss diese Funktion AnsiString akzeptieren und das tut definitiv keine WinAPI Funktion. Danach ein Blick in die Hilfe offenbart uns dann, dass die VCL diese Funktion entpsrechend kapselt und dort steht am Ende ein RaiseLastOSError drin. Also alles zurück nehmen und abnicken bitte :drunken: :zwinker:

/EDIT: RaiseLastOSError anscheinend nicht in allen Delphi Versionen!

Luckie 14. Dez 2007 22:27

Re: If Then Problem
 
Ich sehe gerade, die Fehlermeldung ist gar nicht von dir. Ich nehme mal an sie kommt von Windows (Wenn du ein englisches Windows hast.) Um was für Dateien handelt es sich? Hast du die nötigen Rechte? Existieren die Dateien?

PS: Man kann den Code auch hier reinkopieren und mit Delphi-Tags sogar mit Code-Hervorhebung. :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 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