Einzelnen Beitrag anzeigen

delphi-n

Registriert seit: 6. Sep 2009
88 Beiträge
 
#54

Re: string durchsuchen und tipps zu while + for-schleifen

  Alt 6. Okt 2009, 21:07
ich habs mal geordnet: Trotzdem gibt es einen weiteren fehler:

Delphi-Quellcode:
while i<RichEdit1.Lines.Count do
    begin

      Image6.Top:=15*i+30;
      Button5.Caption := RichEdit1.Lines[i];
      Application.ProcessMessages;
      if StringEnthalten('+solange',RichEdit1.Lines[i]) then
        begin
        g:=ListBox1.Items.Count-1;
        i:=strtoint(ListBox1.Items[g]); //i soll die letze zahl aus der listbox auslesen, und zur dieser zeile springen. Das Problem: Wenn ich die while-schleife weiter durchlaufen lasse, dann wird unten i+1 gesetzt :(
//wenn ich hier aber i:=i-1; hinschreibe, klappt es trotzdem nicht. Kann man dem nicht sagen, dass er wieder am anfang der while schleife beginnen soll?
      

        
        end
     else if StringEnthalten('schritt',RichEdit1.Lines[i]) then
        Button1.Click
      else if StringEnthalten('linksdrehen', RichEdit1.Lines[i]) then
        Button3.Click
      else if StringEnthalten('rechtsdrehen', RichEdit1.Lines[i]) then
        Button4.Click
      else if StringEnthalten('umdrehen', RichEdit1.Lines[i]) then
         begin
        Button4.Click;
        Button4.Click;
        end
      else if StringEnthalten('solange', RichEdit1.Lines[i]) then
         begin //a

              if StringEnthalten('nichtistwand', RichEdit1.Lines[i]) then //hier alle dinge wie istwand ect.
              begin //b

                  if (posx<15) and (posy<15) then
                  begin //c
                      f:=ListBox1.Items.Count-1;
                      h:=Strtoint(ListBox1.Items[f]);
                      Label3.Caption:=Inttostr(h);
                      if i=h then //abfrage, ob i schon in der liste ist, wenn ja entferne es
                      begin //d
                      listbox1.Selected[ListBox1.Items.Count-1];
                      listbox1.DeleteSelected;
                        while not StringEnthalten('*solange', RichEdit1.Lines[i]) do
                        begin
                        i:=i+1;
                        end;
                      end //d



                  else //c
                      listbox1.Items.Add(inttostr(i));
                      continue;
                  end; //c
              end; //b


          end; //a

    i:=i+1;
    sleep(200);

    end; //while
  Mit Zitat antworten Zitat