Autor Beitrag
hschuh
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 26.02.03 15:44 
P.S.:
Das Programm läuft leider dadurch nicht richtig.

Gruß
HS
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 26.02.03 16:40 
ausblenden volle Höhe Quelltext
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.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: 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! :x
Du könntest den Code nochmal abtippen(wenns nicht zu viel ist) das hilfe meißtens
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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 ?????

:roll:
hschuh Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 26.02.03 17:12 
@Luckie:
Welche andere Möglichkeit hätte ich denn ?????
hschuh Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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



BeitragVerfasst: Do 27.02.03 00:14 
Genau, einfach umschreiben.