Autor Beitrag
Luncustaf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Mo 26.05.03 10:20 
hi,

ausblenden Delphi-Quelltext
1:
2:
3:
  i := StrToInt(OldestStartDate);
  i := i-1;
  OldestStartDate := IntToStr(i);


in OldestStartDate steht ein Datum im string format -> 200211322

diesen wert übergebe ich mit StrToInt an i und ziehe von i eins ab soweit alles ok

wenn ich nun den wert zurückgeben will an OldestStartDate dann kommt dort aber nichts an.

wenn ich debugge steht in beiden variablen die richtigen werte drin - ist die letzte zeile durchlaufen steht in OldestStartDate nur ein Leerstring und ich weis nicht wieso :(

kann mir da jemand helfen?

gr??tz


Zuletzt bearbeitet von Luncustaf am Mo 26.05.03 10:58, insgesamt 1-mal bearbeitet
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 26.05.03 10:25 
Hi!

Poste bitte mehr Code, dieser ist jedenfalls korrekt.

Cu,
Udontknow
Luncustaf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Mo 26.05.03 10:32 
hi,

das ist ja mein problem er ist korrekt

mehr code gibt es dazu nicht da das der anfang eines selbständigen programmteiles.

user defined image

user defined image

user defined image

hab bilder dazu gemacht. diese sollten bald zur verfügung stehen da ich die von arbeit aus nicht hochladen kann.
hab sie einem kolleg geschickt der wird das machen *hoff* :)

gr€€tz
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 26.05.03 10:45 
Sind i und OldestStartDate lokale Variablen?
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 26.05.03 10:47 
Oldeststartdate ist eine lokale Variable, richtig? Sämtliche lokalen Variablen werden am Ende einer Prozedur deinitialisiert. Wofür berechnest du eigentlich Oldeststartdate, wenn du es dann nicht mehr benutzt?

Edit: Schon wieder einer schneller gewesen... :wink:

Cu,
Udontknow
Luncustaf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Mo 26.05.03 10:51 
hi,

also i ist eine lokale variable die benutze ich nur für die berechnung von oldeststart -> OdlestStart ist eine prozedurenvariable also quasi auch eine lokale variable - der code ist danach nicht zuende also momentan steht dort noch nichts es soll aber mal was dort stehen wenn das ganze funktioniertm it der übergabe des wertes :/


gr€€tz
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 26.05.03 10:56 
Es funktioniert ja schon. Es ist eben nur so, daß sämtliche lokalen String-Variablen am Ende einer Funktion/Prozedur/Methode aufgelöst werden. Wenn du also bei end abprüfst, hat jeder lokale String nur '' als Inhalt.
Aber du willst ja noch später was dazupacken, und dann wird das alles richtig sein.
Mach doch einfach mal ShowMessage(Oldeststartdate) danach, du wirst sehen, es wird korrekt ausgegeben.

Cu,
Udontknow
Luncustaf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Mo 26.05.03 10:58 
hehe :)

thx euch beiden :) wida was dazu gelernt hab ich nu noch netgewusst hatte wohl bisher immer glück ;)

guddi nu kannsch weitermachen thx vielmals ;)

gr€€tz
Brueggendiek
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 304

Win 98, Win98SE, Win XP Home
D5 Std
BeitragVerfasst: Di 27.05.03 02:12 
Hallo Lucunstaf!

Der Compiler sollte aber auch eine Warnung auswerfen, daß der zugewiesene Wert niemals benutzt wird.
Es ist möglich, daß der Linker dann die komplette Zuweisung rauswirft, weil IntToStr keine Seiteneffekte hat und das Ergebnis nicht verwendet wird.

Deshalb mein Rat: Solange Dein Programm noch nicht fertig ist, unter "Projekt - Optionen - Compiler" die Optimierung rausnehmen, dann klappt es auch mit dem Debuggen!
Ein Debugger-Zugriff auf die Variable (CTRL-F4) führt auch ins Leere - Zugriff wegen Optimierung nicht möglich!

Fazit: it's not a bug, it's a Feature!

Gruß

Dietmar Brüggendiek