Autor Beitrag
Stinger47
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: Mo 01.01.07 02:53 
hi erstma..^^
es soll OnFormCreate überprüft werden ob irgendeine zeile des RichEditfelds dem aktuellen datum entspricht..
das datum falls vorhanden steht immer alleine in einer zeile....
ausblenden Delphi-Quelltext
 
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
{ ... }
begin

  k:= RichEdit1.GetTextLen;
  richedit1.Lines.LoadFromFile('c:\abcde.abc');


  for I := 0 to RichEdit1.Lines.Count
        do
          begin
            if RichEdit1.Lines[i] = DateToStr(Now)
              then
                begin
                  Flag := False;              //hier überspringt er und geht gleich in die folgende if-anweisung
                  if RichEdit1.Lines[k] <> '' //kurze frage funzt das mit dem <> das es als "nicht leer" gilt die zeile?
                    then
                      begin
                        RichEdit1.Text  :=    RichEdit1.Text + #13#10;
                      end;
                  RichEdit1.SelStart:=  RichEdit1.GetTextLen;
                  Exit;
                end
              else
               Flag    := True;
          end;
end;


Zeile 84 überspringt er und geht gleich in zeile 85 aber die zeile ist wichtig....
wenn ich die if-anweisung auskommentiere arbeitet er uch zeile 84 ab sonst net....
thx schonma im voraus...:)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19325
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.01.07 04:56 
Hmm, eigentlich sollte das schon abgearbeitet werden. Bist du sicher, dass danach Flag immer noch True ist? Vielleicht sieht es nur im Debugger so aus als würde das übersprungen werden.

Ach so: Wenn Flag eine lokale Variable ist, dann wird die Anweisung natürlich nicht ausgeführt, weil der Compiler merkt, dass die nix bringt. Schließlich würde der Wert bei einer lokalen Variable ja nie verwendet. Aber ich gehe mal davon aus, dass das eine globale Variable ist, alkso eine, die nicht nur in der Prozedur vorhanden ist.
Stinger47 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: Mo 01.01.07 05:18 
Danke hat funktioniert..^^
hatte sie auf lokal und net global nun macht ers aber nun haperts immernoch woanders aba komt in nen neuen post...
dank dir und frohes neues..;)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19325
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.01.07 05:26 
Dir auch ein frohes neues Jahr.
Und noch ne kleine Erklärung hinterher, falls dir das folgende nicht klar sein sollte...

Wenn du eine Variable lokal deklarierst, dann existiert sie nur so lange wie die Prozedur ausgeführt wird. Sie wird also praktisch vor der Ausführung angelegt und direkt danach gelöscht (einfach gesagt). Bei der nächsten Ausführung ist der Wert einer lokalen Variablen dann nicht der, den sie zuletzt bei der letzten Ausführung hatte!
Bis zur ersten Zuweisung ist der Wert einer lokalen Variablen bei jeder Ausführung der Prozedur undefiniert.
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Mo 01.01.07 09:43 
1.) Auch wenn solche Sätze lustig aussehen, sie sind unheimlich schwer zu lesen:
Zitat:
hatte sie auf lokal und net global nun macht ers aber nun haperts immernoch woanders aba komt in nen neuen post...

Du tust dir mit net, aba, ers usw. keinen Gefallen, weil du Gefahr läufst, daß einige Leute sich sowas nicht antun und erst garnicht zu ende durchlesen. Dann machst du es aber auch denen schwer die helfen wollen, aber diesen Unsinn lesen müssen. Sowas ist lustig bei OffTopic, aber nicht im ersten Gespräch.

2.) Entweder du hast einen verkürzten Code oder die Variable Falg hat keinen Sinn. In diesem Fall bringt es nichts sie global zu machen. Und laut dem Code den man hier sehen kann ist Flag zu nichts nütze. In 99,99% aller Fälle erkennt der Compiler schon richtig ob eine Variable nötig ist und entfernt unsinnige oder unnötige Zeile. Also, nicht global machen, sondern ganz entfernen.

_________________
Popov