Einzelnen Beitrag anzeigen

Astobix

Registriert seit: 26. Dez 2012
26 Beiträge
 
Delphi 6 Personal
 
#8

AW: Bei jedem Klick einen Text für bestimmte Zeit auf die Form setzten

  Alt 17. Nov 2013, 20:15
Okay, mit mehreren Labels klappt das gut soweit, vielen Dank.

Eine letzte Frage für Heute habe ich aber noch, denn wenn ich versuche statt einem Label das Ganze mit einem Image zu machen, bekomme ich eine Errormeldung.

Code:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
 case Key of
  37: PlayerIMG.Left:=PlayerIMG.Left-10;
  39: PlayerIMG.Left:=PlayerIMG.Left+10;
  $20: ErzeugeLaser('.\gfx\Laser.jpg');
 end;
end;
Code:
procedure TForm1.ErzeugeLaser(const Picture: String);
var
 ILaser:TImage;
begin
 ILaser := TImage.Create( nil );
 ILaser.Picture.LoadFromFile(Picture);
 ILaser.Width:=8;
 ILaser.Height:=16;
 ILaser.Left:=PlayerIMG.Left+12;
 ILaser.Top:=PlayerIMG.Top-32;
 ILaser.Parent:=Self;
 ILaser.Tag:=10;


 LaserList.Add(ILaser);
end;
Code:
procedure TForm1.LaserTimerTimer(Sender: TObject);
var
 i: Integer;
 ILaser: TImage;
begin
 i := 0;
 while i < LaserList.Count do
 begin
  ILaser := LaserList.Items[i] as TImage;
  if ILaser.Top = 0 then
   begin
    LaserList.Delete(i);
   end
  else
   begin
    ILaser.Top:=ILaser.Top - 5;
    Inc(i);
   end;
 end;
end;
Letzendlich habe ich genau den gleichen Code benutzt, nur eben auf ein Image übertragen. Doch mir wird eine Fehlermeldung in der Zeile
Code:
 while i < LaserList.Count do
angezeigt.
  Mit Zitat antworten Zitat