Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bilder erscheinen und verschwinden lassen! (https://www.delphipraxis.net/560-bilder-erscheinen-und-verschwinden-lassen.html)

Chriss 8. Aug 2002 15:33


Bilder erscheinen und verschwinden lassen!
 
Ihr müsst mich für blöd halten, dass ich schon wieder Hilfe brauche :oops:

Habe folgendes vor:
Ich will, wenn ich ein Form öffne/starte, dass nach ca. 1 Sekunde ein Bild erscheint und nach einer weitere Sekunde wieder verschwindet. Das müsste doch eigentlich mit einem Timer zu machen sein, oder? Ich hab die Bilder erst auf "visible:=false" gesetzt, den Timer auf "enabled:= fasle". Wenn sich das Form nun öffnet soll der Timer auf "enabled:= ture" gesetzt werden (soweit bin ich) aber das Bild will nicht erscheinen!!!!!

Chriss

Sharky 8. Aug 2002 15:39

Re: Bilder erscheinen und verschwinden lassen!
 
Hai,

setzt Du in deinem OnTimer Ereigniss auch visible := True für das Bild?

Post doch einmal deine Code für das OnTimer Ereigniss.

Chriss 8. Aug 2002 15:41

Ja, mach ich eigntlich...

Code:
procedure THauptfenster.FormCreate(Sender: TObject);
begin

timer1.Enabled:= true;

end;

procedure THauptfenster.Timer1Timer(Sender: TObject);
begin

image1.Visible:= true;

end;

Daniel 8. Aug 2002 15:43

Re: Bilder erscheinen und verschwinden lassen!
 
Zitat:

Zitat von Chriss
Ihr müsst mich für blöd halten, dass ich schon wieder Hilfe brauche

... eigentlich nicht. Sinn und Zweck dieses Forums ist es ja gerade, Antworten auf Fragen zu liefern. :wink: Habe keine Hemmungen, Fragen zu stellen. Hier lauern immer irgendwelche anderen, die sie Dir gerne beantworten werden.


Grüße,
Daniel
Delphi-PRAXiS Admin

Chriss 8. Aug 2002 15:47

Re: Bilder erscheinen und verschwinden lassen!
 
okay, das beruhigt mich ja :D [/quote]

Sharky 8. Aug 2002 15:50

Hai chriss,

sollte eigentlich gehen.

Ich habe es mit diesem Code gemacht und es läuft

Code:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 timer1.Enabled := False;
 If (ausblenden) then
  begin
    Image1.Visible := False;
  end
 else
  begin
   Image1.Visible := True;
   timer1.Enabled := True;
  end;
 ausblenden := Not (ausblenden);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 ausblenden := False;
 Timer1.Enabled := True;
end;
ausblenden ist eine globale Variable vom Typ Boolean;

sind noch andere Objekte auf dem Formular oder "nur" das Bild?

Chriss 8. Aug 2002 16:01

hi, danke! ich versuchs mal so!!
es sind noch andere sachen auf der from, die sollten aber so bleiben, warum?

Chriss 8. Aug 2002 16:04

Dann muss ich "ausblenden" als Variable deklarieren, oder wie?

Sharky 8. Aug 2002 16:07

Naja,

wenn du extrem "aufwendige" Objekte (z.b: Datenbankschnittstellen) hast
könnte es ja passieren das dein Image schon wieder weg ist bevor das Formular überhaupt angezeigt wird.

Du startes ja im OnCreate des Formulares des Timer. Bis ein
Formular mit allen seinen Objekten erzeugt ist kann es ja länger als die von dir gewünschten zwei sek. dauern.

P.S.: Ja, ausblenden musst Du als Variable deklarieren.

Chriss 8. Aug 2002 16:10

tja, ich hab jetzt die variable deklariert, denn ohne, startet er nicht (undefinierter Bezeichner) und mit passiert gar nix :?

MathiasSimmack 8. Aug 2002 17:20

Ich hab´s mit dieser Zeile gemacht:
Code:
[b]procedure[/b] TForm1.Timer1Timer(Sender: TObject);
[b]begin[/b]
  Image1.Visible := [b]not[/b](Image1.Visible);
[b]end[/b];
Mehr ist IMHO gar nicht erforderlich. Wenn man den Timer an anderer Stelle (Menü, Button ...) deaktiviert, dann kann man auch dafür sorgen, dass das Bild sichtbar bleibt.

Wozu Variablen, sharky :?:

MathiasSimmack 8. Aug 2002 18:23

Soll das vielleicht so was wie ein Splash-Screen werden?
Wenn ja, da gibt´s ´ne günstigere Lösung, die sich sogar nach der benötigten Startzeit deines Programms richtet.

Chriss 8. Aug 2002 19:36

:bounce2: Hey das is ja super! DAmit geht das gut! Die andere Lösung hat dann doch funktioniert, hab nur was auf der Form gehabt, womit sich das nicht so ganz vertragen hat :oops:
Kann man bei deiner Lösung jetzt auch dafür sorgen, dass das irgendwann aufhört? Oder setze ich da besser nen zweiten Timer ein, um den aneren abzuschalten????

Chriss

Daniel B 8. Aug 2002 19:56

Zitat:

Zitat von Chriss
Kann man bei deiner Lösung jetzt auch dafür sorgen, dass das irgendwann aufhört? Oder setze ich da besser nen zweiten Timer ein, um den aneren abzuschalten????

Dann würde der ja weiter laufen. Wenn du es ohne Splash machst;
Wenn du also dein eingeblendetes Bild auschaltest, dann mach im OnClose den Timer aus.

Chriss 8. Aug 2002 20:14

okay, danke für den tipp!!!!!

Chriss

MathiasSimmack 9. Aug 2002 06:39

Zitat:

Zitat von Chriss
Kann man bei deiner Lösung jetzt auch dafür sorgen, dass das irgendwann aufhört?

Aha, dann ist das also so, dass das Bild nur einmal zu sehen sein soll (1 Sekunde), und in der 2. Sekunde soll es dann wieder verschwinden, aber auch nicht mehr auftauchen. Hm, streng genommen steht davon nichts in deiner Frage, weswegen ich dachte, dass du so ein "Geblinke" haben willst. Also, in dem Fall erweitere ich mein o.g. Codeposting um eine Variable und zwei zusätzliche Anweisungen:
Code:
[b]var[/b]
  two_seconds_2_die : byte = 0;

[b]procedure[/b] TForm1.Timer1Timer(Sender: TObject);
[b]begin[/b]
  Image1.Visible := [b]not[/b](Image1.Visible); inc(two_seconds_2_die);
  Timer1.Enabled := (two_seconds_2_die < 2);
[b]end[/b];
Das war´s ... 8)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 Uhr.

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