AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder blinken lassen...

Ein Thema von NeoDeluxe · begonnen am 24. Feb 2003 · letzter Beitrag vom 9. Sep 2003
Antwort Antwort
Benutzerbild von NeoDeluxe
NeoDeluxe

Registriert seit: 4. Dez 2002
Ort: Behind the Firewall
240 Beiträge
 
Delphi 7 Personal
 
#1

Bilder blinken lassen...

  Alt 24. Feb 2003, 05:34
Moin.
Ich würede gerne wiessen, wie ich so machen kann, dass die Bilder blinken. Also ich habe zwei farbunterschiedlichen Bilder in Resource eingebunden und will nun die Bilder nacheinander laden, aber ich weis nicht nur wie. Ich glaube das geht mit Timer aber wie? Kann mir jemand helfen?
Alex
  Mit Zitat antworten Zitat
lodda

Registriert seit: 6. Dez 2002
65 Beiträge
 
Delphi 5 Standard
 
#2
  Alt 24. Feb 2003, 08:43
Hallo NeoDelux
also wenn du die beiden Bilder nacheinander zeigen willst, dann kannst du zwei Imagekomponenten erstellen und die dort die beiden Bilder speichern.
Die zwei Imagekomponenten kannst du übereinander legen und dann einfach mit der Sichtbarkeit arbeiten:

Code:
procedure TMainFrm.Timer1Timer(Sender: TObject);
begin
  if FShow1 then
  begin
    Image1.Visible := true;
    Image2.Visible := false;
  end
  else
    Image1.Visible := false;
    Image1.Visible := true;
  end;
  FShow1 := not FShow1;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Bilder blinken lassen...

  Alt 24. Feb 2003, 08:56
Zitat von NeoDeluxe:
Moin.
Ich würede gerne wiessen, wie ich so machen kann, dass die Bilder blinken. ...
Hai NeoDeluxe.

Du brauchst:

a) 1 Timer
b) 1 Image
c) zwei Bilder in der Resource mit den Namen Bitmap_1 und Bitmap_2

Delphi-Quellcode:
var
   bild_nr: Integer;

{***************************************************}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Interval := 1000;
  Timer1.Enabled := False;
  bild_nr := 1;
  Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'BITMAP_' + IntToStr(bild_nr));
  Timer1.Enabled := True;
end;

{***************************************************}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := False;
  case Bild_nr of
   1: bild_nr := 2;
   2: bild_nr := 1;
  end;
  Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'BITMAP_' + IntToStr(bild_nr));
  Timer1.Enabled := True;
end;
Und schon "blinkt es"
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#4
  Alt 24. Feb 2003, 10:41
Sharkys Vorschlag ist nicht schlecht, aber such mal im Forum nach "delay" und versuch eine Konstruktion damit...
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5
  Alt 24. Feb 2003, 11:20
Zitat von Nailor:
Sharkys Vorschlag ist nicht schlecht, aber such mal im Forum nach "delay" und versuch eine Konstruktion damit...

delay? Was soll ihm das den bringen?

Es soll ja blinken und dafür brauche ich ein Ereigniss das alle x ms auftritt. Und das ist dann ein Timer

Mit einem "Delay" erzeuge ich im Programm ja nur eine Pause!
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#6
  Alt 24. Feb 2003, 12:53
Delphi-Quellcode:
while (wie lange soll es blinken) do
begin
  Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'BITMAP_' + IntToStr(bild_nr));
  delay(XXX);
  Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'BITMAP_' + IntToStr(bild_nr));
  delay(XXX);
end;
würde einen Timer sparen...

-------------

whoops: Ich dachte, nur einmal wechseln... Wenn das natürlich die ganze Zeit wechseln soll, wäre ein Timer doch nicht schlecht. Mit ProcessMessages ist nicht das allerbeste.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von NeoDeluxe
NeoDeluxe

Registriert seit: 4. Dez 2002
Ort: Behind the Firewall
240 Beiträge
 
Delphi 7 Personal
 
#7
  Alt 24. Feb 2003, 12:59
Könntest du vielleicht dieses etwas schrittweise erklären. Was soll ich nach dem while schreiben? Da musst doch eine Abfrage statt finden, oder? Und was bedeutet delay(XXX)?
Alex
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#8
  Alt 24. Feb 2003, 13:07
delay ist eine (selbstgemachte) procedure, die den Ablauf des Programms um X Millisekunden verzögert, ohne dabei Sachen wie schließen, verschieben... verhindert.

Bei dem while: zb irgend was mit dem TickCount. Oder mach ne for-Schleife, und gib an wie oft.

Aber für deinen Gebrauch ist der Timer besser!
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

Registriert seit: 30. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#9

Re: Bilder blinken lassen...

  Alt 9. Sep 2003, 15:32
Hi,

War Delay(ms) nicht eine Procedure aus dem alten Turbo Pascal ?

Wie wär's mit Sleep ? (afaik aus Unit Windows oder so)
die macht das gleiche -> warten
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Bilder blinken lassen...

  Alt 9. Sep 2003, 15:43
Moin The-X,

sleep hält den Thread in dem es aufgerufen wird komplett an, es wird als z.b. nicht mehr neu gezeichnet, wohingegeben das, selbstgemachte, Delay die Verarbeitung von Messages weiterhin zulässt.
(wenn's so gemacht ist, wie die Version, die wir hier in der Code Libraray haben )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 Uhr.
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