| Autor |
Beitrag |
hschuh
Hält's aus hier
Beiträge: 8
|
Verfasst: Mi 26.02.03 15:33
Hallo,
ich habe ein etwas seltsames Problem:
Ich habe in einem Programm (Delphi 6) eine Variable deklariert:
var StartOK :Bool;
Diese setzte ich in einer Procedure (TForm1.StartClick....) auf FALSE.
StartOK := FALSE;
und je nach Programmverlauf auf TRUE .....
Der Witz ist, die erste Anweisung (wie oben beschrieben) := FALSE wird voll übersprungen; auch alle weiteren Anweisungen die diese Variable betreffen werden einfach Übersprungen.
Solangsam zweifle ich an mir!!! Ich kann das Problem einfach nicht finden.
Über jeden Tipp bin ich sehr dankbar.
Danke im Vorraus,,
Gruß Hendrik
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 26.02.03 15:38
Funktioniert denn das Programm richtig? Sieht so aus, als ob der Compiler da etwas optimiert hat. Gibt er denn irgendwelche Warnungen oder Hinweise aus?
|
|
hschuh 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mi 26.02.03 15:41
Ja,
er meckert verschiedene Variablen an; unteranderem auch:
[Hinweis] Auswertung.pas(116): Auf 'StartOK' zugewiesener Wert wird niemals benutzt
[Hinweis] Auswertung.pas(109): Auf 'StartOK' zugewiesener Wert wird niemals benutzt
Obwohl diese natürlich benutzt werden !
|
|
hschuh 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mi 26.02.03 15:44
P.S.:
Das Programm läuft leider dadurch nicht richtig.
Gruß
HS
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 26.02.03 16:34
| hschuh hat folgendes geschrieben: | Ja,
er meckert verschiedene Variablen an; unteranderem auch:
[Hinweis] Auswertung.pas(116): Auf 'StartOK' zugewiesener Wert wird niemals benutzt
[Hinweis] Auswertung.pas(109): Auf 'StartOK' zugewiesener Wert wird niemals benutzt
Obwohl diese natürlich benutzt werden ! |
Sicher? Poste mal den Code. Also wenn Delphi meint die ariable wird nicht benutzt, dann ist das in 99% der Fälle auch so.
|
|
hschuh 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mi 26.02.03 16:40
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59:
| procedure TForm1.StartClick(Sender: TObject); var VonDatum, BisDatum, HilfDatum1, HilfDatum2, Suche, Ausgabe :String; var i, e :Integer; var TempDate :TDateTime; var f :Textfile; var StartOK :Bool;
var A ... :String;
var ICPMNC: array[1..20] of String; var DIA: array[1..20] of String;
begin
StartOK := FALSE;
// Prüfung ob Von Datumseingabe OK try begin TempDate := StrToDate(EVonDat.Text); VonDatum := EVonDat.Text; StartOK := TRUE; EVonDat.Color := clWindow; end; except on E: EConvertError do begin EVonDat.Text := ''; StartOK := FALSE; EVonDat.Color := clRed; ShowMessage('Bitte geben Sie ein korrektes Startdatum ein (TT.MM.YYYY)'); end; end;
// Prüfung ob Bis Datumseingabe OK try begin // TempDate := StrToDate(EBisDat.Text); BisDatum := EBisDat.Text; StartOK := TRUE; EBisDat.Color := clWindow; end; except On E: EConvertError do begin EBisDat.Text := ''; StartOK := FALSE; EBisDat.Color := clRed; ShowMessage('Bitte geben Sie ein korrektes Endedatum ein (TT.MM.YYYY)'); end; end; .....
if StartOK = TRUE then begin T_DB.Open; .... |
[/code]
|
|
Moritz M.
      
Beiträge: 1672
|
Verfasst: Mi 26.02.03 16:52
Hmm,,schau mal ob es irgendwo noch einen 2 Variable StartOK gibt..nein, das würd der compiler meldern...hmmm...sauerkraut!
Du könntest den Code nochmal abtippen(wenns nicht zu viel ist) das hilfe meißtens
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 26.02.03 17:08
Das Problem ist, dass die Zuweisungen von bStart alle in einem try-except-Block liegen. Das wird Delphi nicht gefallen.
|
|
hschuh 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mi 26.02.03 17:09
Würde ich eigentlich nur ungerne machen, sind mittlererweile 620 Zeilen code........naja, vielleicht an einem einsamen wochenende.
Irgendetwas einzustellen am compiler gibt es da nicht? So was verstecktes ?????

|
|
hschuh 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mi 26.02.03 17:12
@Luckie:
Welche andere Möglichkeit hätte ich denn ?????
|
|
hschuh 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mi 26.02.03 18:22
@Luckie:
Ich habe glaube ich das Problem gefunden: Du hattest recht!
Ich habe das ganze jetzt umgeschrieben und es funktioniert.
Delphi wertet nur den Ersten Ausruck nach dem Try aus.
Daher das ganze.
Manchmal kann man sich ganz schön verrennen !!!!!!
Gruß
Hendrik
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 27.02.03 00:14
Genau, einfach umschreiben.
|
|