Autor Beitrag
iglesias
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 04.12.06 10:06 
Hallo,

ich möchte gerne ein Label von der Größe 0 auf eine beliebige Größe einblenden, ähnlich dem Fade-In von Flash.
Das Problem ist, wenn ich das mit der Schriftgröße mache, dann flickert das natürlich.

Drum meine Frage, wie könnte man das am geschicktesten machen?
Gibt es da schon was fertiges?

Der Gedanke wäre so:
- Das label von Größe 0 auf eine bestimmte Größe einblenden
- Dann soll das Label bis zu einem bestimmten Zeitpunkt immer pulsieren
- Dann soll das Label wieder auf Größe 0 ausblenden
- Caption ändern und dann wieder von vorne...

Hat so etwas in der Art schon einmal jemand gemacht?

Bin für jeden Tip dankbar.

martin
DaKirsche
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 187

Win XP Pro, SuSe Linux 7.3 - 10.2, Win 2k3 Server, Win 2000, Win NT 4.0
Delphi 2006 Pro, Java, HTML, SQL, PHP, CSS
BeitragVerfasst: Mo 04.12.06 10:38 
Also wenn ich dich recht verstehe willst du das Label animieren, dass es quasi vom Rand her sich erweitert und einen Text beinhaltet....

Also ich würde es mit einem Timer lösen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Procedure TForm1.Timer1OnTimer(Sender: TObject);
begin
if Label1.Width<200 then Label1.Width:=Label1.Width+1;
end;


Damit "fährt" das Label schonmal heraus.
Wie groß es sein wird kannst du ja rausfinden, indem du kurzzeitig das Label auf Invisible stellt und dann auf AutoSize:=True setzt und die Größe ausliest.

Dann prüfen, ob er rein oder rausfahren soll.

Das "flickern" bekommst du so weg, indem du in das FormCreate einfach
ausblenden Delphi-Quelltext
1:
doublebufferd:=True;					

setzt.

_________________
Die simpelsten Fehler sind meist die Schwersten...
iglesias Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 04.12.06 11:53 
Danke für den guten Tipp!

Funktioniert ansatzweise so, wie ich mir das vorgestellt habe, aber wie könnte ich das machen, dass das label nicht von links nach rechts praktisch eingeblendet wird, sondern mittig.

Wenn ich das Wort Hallo einblenden will, also nicht von H->o sondern H<-l->o, also vom l auf beide Seiten sich erweiternd??
DaKirsche
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 187

Win XP Pro, SuSe Linux 7.3 - 10.2, Win 2k3 Server, Win 2000, Win NT 4.0
Delphi 2006 Pro, Java, HTML, SQL, PHP, CSS
BeitragVerfasst: Mo 04.12.06 12:33 
ausblenden Delphi-Quelltext
1:
2:
Label1.Top:=round((Form1.Height-Label1.Height)/2); //Höhe Mittig;
Label1.Left:= round((Form1.Width-Label1.Width)/2); //Mitte seitig


ausblenden Delphi-Quelltext
1:
2:
label1.Left:=Label1.left-1;
label1.width:=label1.width+2;


und dann halt solange, bis die Breite überschritten ist, die du haben willst....

_________________
Die simpelsten Fehler sind meist die Schwersten...