Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Was ist das für ein Compiler-Hinweis, ist das wichtig? (https://www.delphipraxis.net/4708-ist-das-fuer-ein-compiler-hinweis-ist-das-wichtig.html)

Tim.exe 9. Mai 2003 12:51


Was ist das für ein Compiler-Hinweis, ist das wichtig?
 
Hallo,

bei folgendem code bekomme ich einen nicht ganz klaren 'Compiler Hinweis':

code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Nachricht: integer;
begin
        Try
        Memo1.Lines.SaveToFile('Status\Status' + ' ' +Datum.Caption+' Uhr.txt');
        Except
        Nachricht := MessageDlg('Fehler bei speichern von "Status", Verzeichnis existiert nicht mehr.'
        +#13#10+#13#10 + 'Neustart des Programms erstellt neues Verzeichnis.',mtInformation,[mbOK],0);
        end;
end;
Compiler Hinweis:
"Auf 'Nachricht' zugewiesener Wert wird niemals benutzt"

##################################
Ich habe es aber getestet, es funktioniert tadellos.

wo0zy 9. Mai 2003 12:57

das sagt dir einfach nur das du nachricht nie irgendwo benutzt, auser bei der wertzuweisung. is nur eine hilfe um dein programm zu optimieren, denn nachricht kannste ja auch weglassen

//Edit haste schonmal die exception provoziert? denn dann sollte ja eigentlich nix passieren, weil die nachricht ja nich ausgegeben wird. nachricht brauchst du eigentlich absolut nicht wi ich das sehen.

und können messagedialogs wirklich einer einer variablen des typs integer gespeichert werden?

Tom 9. Mai 2003 12:58

Du benutzt Nachricht nicht. Genau dieses sagt Dir der Compiler. Falls Dich der Rückgabewert nicht interessiert schreibe
Delphi-Quellcode:
MessagDlg(...);
Der Rückgabewert ist hier ja völlig uninteressant, da der Anwender sowieso nur bestätigen soll/muss.

Am Rande: Wieso benutzt Du relative Pfade? Hast Du hieraus nichts gelernt?

Tim.exe 9. Mai 2003 13:04

Ja, ich kann Nachricht zwar weglassen aber die Exception funktioniert einwandfrei.

Über OnCreate wird ein Verzeichnis namens "Status" erstellt. Wenn das Programm läuft, ich das Verzeichnis lösche und dann auf Button1 clicke kommt der MsgDlg. Lösche ich das Verzeichnis nicht, wird das Memo gespeichert...

*just wondering*

/edit:
Relative Pfade nutze ich weil insgesamt 5 Verzeichnisse erstellt werden, und in diesen 5 Verzeichnisse sollen genau 7 Datein gespeichert werden, wobei jede Datei in ein festes Verzeichnis soll.

Tom 9. Mai 2003 13:08

Zitat:

Zitat von Tim.exe
Lösche ich das Verzeichnis nicht, wird das Memo gespeichert...

Dann frage doch vor dem Speichern ab, ob das Verzeichnis existiert.

Hast Du eigentlich meine Anmerkung "Am Rande: ..." gelesen?

Tom 9. Mai 2003 13:15

Ich habe gerade mal Deine Fehlermeldung gelesen:
1) Wieso erstellst Du nicht einfach das Verzeichnis, wenn es nicht existiert?
2) Wieso löscht Du das überhaupt?

Zitat:

Zitat von Tim.exe
Relative Pfade nutze ich weil insgesamt 5 Verzeichnisse erstellt werden, und in diesen 5 Verzeichnisse sollen genau 7 Datein gespeichert werden, wobei jede Datei in ein festes Verzeichnis soll.

Und das Programm wird genau die gleichen Fehler produzieren, die schon bei Deinem letzten Problem aufgetreten sind. Die dort benutzte Problemlösung läßt sich doch ohne weiteres auf die o.g. Prozedur anwenden.

wo0zy 9. Mai 2003 14:34

Dann versuche doch mal einen fehler zu provozieren, da kann die fehlermeldung doch gar nicht erscheinen, nur nachricht wird gesetzt, aber nie in der procedure abgefragt....verstehst du wie ichs meine?

Daniel B 9. Mai 2003 14:37

Hallo,

mach doch vor dem letzten end; doch mal ne Message mit der Nachricht.
Delphi-Quellcode:
ShowMessage(IntToStr(Nachricht));
Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr.

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