hoi, sorry ich hab das falsche kopiert, also hier:
Delphi-Quellcode:
procedure irgendwas;
var
i: integer;
b: boolean;
text: string;
begin
text := bla;
for i := 0 to high(QuizAntwort) do
begin
if lowercase(text) = lowercase(QuizAntwort[i].text) then // wenn text schon im array ist
begin
inc(QuizAntwort[i].Antworten);
Showmessage(IntToStr(QuizAntwort[i].Antworten)); // müsste 2 zeigen, zeigt aber nichts an
b := true;
end;
if b = false then
begin
SetLength(QuizAntwort, length(QuizAntwort)+1);
QuizAntwort[high(QuizAntwort)].text := text;
QuizAntwort[high(QuizAntwort)].Antworten := 1;
ShowMessage(IntToStr(QuizAntwort[high(QuizAntwort)])); // zeigt 1
end;
end;
end;
beim ersten mal wenn "text"(bla) noch nicht in dem array ist wird der teil NACH dem "b = false" ausgeführt, sonst wird nur alles VOR dem "b = false" ausgeführt... also beim ersten mal wird mir "1" angezeigt, dann existierts also und beim 2ten aufruf der procedure wird alles vor "b = false" ausgeführt. ich habe da "inc(QuizAntwort[i].Antworten);" also müsste aus der "1" doch eine "2" werden, das wird es aber nicht, ich seh nichtmal die "1", das sowmessage zeigt mir nichts an
woher kommt das?