Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   TImer wechselt bilder nicht aus (https://www.delphipraxis.net/145639-timer-wechselt-bilder-nicht-aus.html)

Mr.XYZ 5. Jan 2010 17:18


TImer wechselt bilder nicht aus
 
Hi,
dieser Timer läuft eigentlich normal nur wechselt er die Bilder nicht aus und das ist blöd.
Delphi-Quellcode:
procedure TForm2.Time_GalierTimer(Sender: TObject);
begin
if(i < 6) then
begin
 Memo1.Lines[3]:='Titmer_galier on';
 galier.GetBitmap(i,Char.Picture.Bitmap);
 Memo1.Lines[4]:='galier_pic'+IntToStr(i);
 i:=i+1;
 end
 else
 Memo1.Lines[5]:='Titmer_galier off';
 i:=0;
 Time_Galier.Enabled:=false;
 end;
end;

end.
es heißt aber auch immer das ein END zu viel wäre aber warum?

himitsu 5. Jan 2010 17:28

Re: TImer wechselt bilder nicht aus
 
jetzt siehst du mal, wozu eine ordentliche Einrückung gut ist,
denn dann kommt bei dem Code dieses raus
Delphi-Quellcode:
procedure TForm2.Time_GalierTimer(Sender: TObject);
begin
  if(i < 6) then
  begin
    Memo1.Lines[3]:='Titmer_galier on';
    galier.GetBitmap(i,Char.Picture.Bitmap);
    Memo1.Lines[4]:='galier_pic'+IntToStr(i);
    i:=i+1;
  end
  else
    Memo1.Lines[5]:='Titmer_galier off';
  i:=0;
  Time_Galier.Enabled:=false;
end;
end; << END zuviel
vermmutlich meinst du es aber so
Delphi-Quellcode:
procedure TForm2.Time_GalierTimer(Sender: TObject);
begin
  if i < 6 then
  begin
    Memo1.Lines[3] := 'Titmer_galier on';
    galier.GetBitmap(i, Char.Picture.Bitmap);
    Memo1.Lines[4] := 'galier_pic' + IntToStr(i);
    i := i + 1;
  end
  else
  begin // <<<<<<<<<<<<<<<<<<<<<<<<<<
    Memo1.Lines[5] := 'Titmer_galier off';
    i := 0;
    Time_Galier.Enabled := false;
  end;
end;

Noedel 5. Jan 2010 17:28

Re: TImer wechselt bilder nicht aus
 
guck dir doch mal den code an. Da siehst du, dass die Anzahl von "Begin" micht gleich der Anzahl der "End" ist.
Delphi-Quellcode:
procedure TForm2.Time_GalierTimer(Sender: TObject);
begin
  if(i < 6) then
  begin
    Memo1.Lines[3]:='Titmer_galier on';
    galier.GetBitmap(i,Char.Picture.Bitmap);
    Memo1.Lines[4]:='galier_pic'+IntToStr(i);
    i:=i+1;
  end
  else
  Begin //fehlt
    Memo1.Lines[5]:='Titmer_galier off';
    i:=0;
    Time_Galier.Enabled:=false;
  end; //<- Das End ist zu viel, oder aber oben fehlt ein Begin
end;

Mr.XYZ 5. Jan 2010 17:32

Re: TImer wechselt bilder nicht aus
 
ja ich sehe es aber warum klappt das mit den Bildern nicht?

himitsu 5. Jan 2010 17:37

Re: TImer wechselt bilder nicht aus
 
Zitat:

Zitat von Mr.XYZ
ja ich sehe es aber warum klappt das mit den Bildern nicht?

Dann sieh nochmal genauer hin und prüfe mal nach, was dein Code ohne dieses BEGIN macht,
denn dein Code macht quasi dieses hier:
Code:
[b]procedure[/b] TForm2.Time_GalierTimer(Sender: TObject);
[b]begin[/b]
  [b]if[/b] (i < 6) [b]then
  begin[/b]
    Memo1.Lines[3]:='Titmer_galier on';
    galier.GetBitmap(i,Char.Picture.Bitmap);
    Memo1.Lines[4]:='galier_pic'+IntToStr(i);
    i:=i+1;
  [b]end
  else[/b]
  [color=silver][b]begin[/b][/color]
    Memo1.Lines[5]:='Titmer_galier off';
  [color=silver][b]end[/b];[/color]
  i:=0;
  Time_Galier.Enabled:=false;
[b]end[/b];
[b]end[/b]; [color=green]// END zuviel[/color]
Tipp: schau mal, was die letzen 2 Befehle machen

Mr.XYZ 5. Jan 2010 17:40

Re: TImer wechselt bilder nicht aus
 
ich habe das mit dem begin schon geändert aber es geht immer noch nicht. Er wechselt die Bilder nicht!!

Blackheart 5. Jan 2010 19:55

Re: TImer wechselt bilder nicht aus
 
Delphi-Quellcode:
procedure TForm2.Time_GalierTimer(Sender: TObject);
begin
  if i < 6 then // Die Klammern brauchst du hier nicht unbedingt
  begin
    Char.Picture:=nil; //Altes Bild löschen
    Memo1.Lines[3]:='Titmer_galier on';
    galier.GetBitmap(i,Char.Picture.Bitmap);
    Memo1.Lines[4]:='galier_pic'+IntToStr(i);
    Inc(i); // Ist das selbe wie i:=i+1; nur kürzer
  end
  else
  begin
    Memo1.Lines[5]:='Titmer_galier off';
    i:=0;
    Time_Galier.Enabled:=false;
  end;
end;

Mr.XYZ 5. Jan 2010 20:03

Re: TImer wechselt bilder nicht aus
 
Ähmm.. jetzt verschwindet einfach das vorherige Bild es ändert sich aber sonst nichts.

Jens Hartmann 5. Jan 2010 20:08

Re: TImer wechselt bilder nicht aus
 
Hallo,

ich bin mir nicht ganz sicher, aber fehlt da nicht so eine Art...

Delphi-Quellcode:

galier.Refresh;

//oder

galier.Repaint;
Gruß Jens

Mr.XYZ 5. Jan 2010 20:15

Re: TImer wechselt bilder nicht aus
 
ne das fehlt nicht aber ich hatte noch ne variable vertauscht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz