Einzelnen Beitrag anzeigen

r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#27

Re: OnTimer unter Laufzeit Problem...

  Alt 21. Aug 2005, 13:48
Wie stellst du dir das vor? Wie soll das funktionieeren? Überleg mal: Was machst du da:

Delphi-Quellcode:
var
  Form1: TForm1;
  NewTimer: TTimer;
  NewImage: TImage; // auch hier: willst du jetzt das array nehmen oder die Variable?
  i: Integer; // Warum deklarierst du i global? Mal davon abgesehen, dass man globale Variablen sowieso meiden sollte(siehe hierzu entsprechenden Thread), warum i? Diese wird noch nicht mal benutzt, weil später ein lokales i verwendet wird
  ImageArray: array[1..10] of TImage; // Normal fängt man mit 0 an, aber das is nicht so schlimm

implementation

{$R *.dfm} 

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Assigned( NewTimer ) then begin
    NewTimer := TTimer.Create (Nil); // Wo gibts du den Timer wieder frei? Sowas nennt sich dann Speicherleiche
    NewTimer.Interval := 20;
    NewTimer.Enabled := True;
    NewTimer.OnTimer := DoTimer;
  end;
  begin // warum noch mal n begin?
    NewImage := TImage.Create(Nil); // warum nimmst du denn nicht das array? Eigentlich müsste der Compiler dir auch mitteilen, dass dein array gar nicht verwendet wird. Und der Compiler zeigt die Meldungen nicht zum Spaß an...
    with NewImage do
      begin
      Top := 144;
      Left := 8;
      Picture.LoadFromFile('xxx.bmp');
      Parent := Form1;
      Name := 'xxx'; // Name musst du IMHO nicht zuweisen, du organisierst ja alles im array (eigentlich)
      end;
  end;
end;

procedure TForm1.DoTimer(Sender: TObject);
var
  i: integer;
begin
  for i := Low(ImageArray) to High(ImageArray) do
    with ImageArray[i] do
      Top := Top - 3;
end;
Alles in allem würde ich dir dringend raten dir nochmal die Grundlagen anzugucken...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat