Einzelnen Beitrag anzeigen

fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#40

AW: Tetris mit Canvas funktioniert nicht wie es soll

  Alt 21. Mär 2013, 14:40
Das mit dem array funktioniert nicht so recht. Jetzt habe ich das mal mit einer TObjectlist probiert. Eigentlich sollte ich den ganzen code nochmal neuschreiben oder zumindest anpassen aber da ich mir nicht sicher bin ob des so klappt probiere ich es erst mal so.
Delphi-Quellcode:
procedure THaupt.findelinie;
var
x,x2 : TObjectlist;
i,j,tmp : integer;
test : TBlock;

weiter,start : Boolean;

begin
x := Tobjectlist.Create;
x2 := Tobjectlist.create;
weiter := true;
start := false;
for i := 1 to high(Block) do
  begin
    x.Add(Block[i]);
  end;
for j := 1 to 27 do
begin
  if weiter then // damit nicht schon die nächste
                  // unterrsucht wird bevor die davor
                  // gelöscht wird
    begin

    x2.clear;
    x2:= Tobjectlist.Create;
    for i := 0 to x.Count-1 do
     begin
     test := TBlock(x.Items[i]) ;
     if test.fPosition.Y = j then
     begin
      showmessage(inttostr(j));
      x2.Add(x.items[i]);

       if x2.Count+1 = 16 then
        begin
          weiter := false;
          start := true;
        end;
      end;
     end;
    end;
end;
if start then
begin
  for i := 0 to x2.Count - 1 do
   begin
     tmp := x.IndexOf(x2.Items[i]);
     x.Delete(tmp);
   end;
setlength(Block,x.Count+1);
for i := 1 to x.Count do
  begin
    Block[i] := TBlock(x.Items[i-1]);
  end;
  weiter := true;
  start := false;
  x.Free;
end;
end;
Das funktioniert nur leider nicht es löscht jedesmal etwas aber nicht das was es soll.
  Mit Zitat antworten Zitat