Entwickler-Ecke

Open Source Units - FrmEffects - Visuelle Effekte fürs Formular


FinnO - So 18.01.09 16:41
Titel: FrmEffects - Visuelle Effekte fürs Formular
Ist vielleicht etwas sinnbefreit, aber trotzdem ganz nett anzusehen.
Die Unit enthält eine Klasse "TEffect". Momentan gibt es 3 Prozeduren,

Update1 : Es sind zwei neue Prozeduren hinzugekommen!!!
Bugs beseitigt?


Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TEffect.MoveOut(Form : TForm; Speed   : Byte; Direction : TDirection; Close : Boolean);
procedure TEffect.FadeOut(Form : TForm; periode : Integer; Close : Boolean);
procedure TEffect.FadeIn (Form : TForm; periode : integer);
procedure ToolOut(Form : TForm; Speed : Byte; Distance : Byte);
procedure ToolIn (Form : TForm; Speed : Byte; Left : Integer);


Die Parameter sind hoffentlich selbsterklärend. TDirection enthält die Elemente

type TDirection = (dLeft,dRight,dUp,dDown);.

Ich bitte um Wünsche für weiter Funktionen, sowie um Verbesserungsvorschläge, vom Programmierstil mal abgesehen ;)

Zu den Prozeduren im Einzelnen:

MoveOut: Das Formular wird in angegebene Richtung mit angegebener Geschwindigkeit aus dem Fenster bewegt.

FadeOut: Das Formular wird während der angegebenen Zeit ausgeblendet. Optional kann das Formular nach dem ausblenden geschlossen werden.

FadeIn :
Das Formular wird während der angegebenen Zeit eingeblendet.

ToolOut: Das Formular wird an den Linken Bildschirmrand bewegt und schaut dort die angegeben Distance hervor. Dies ist mit der Funktion der Windows-Schrifterkennung zu vergleichen

ToolIn : Das Formular wird bis Left nach rechts bewegt. Gegenteil von ToolOut.


Jakob_Ullmann - So 18.01.09 18:16

Beschreib doch mal genauer, worum es geht. In der Form sehe ich mir das bestimmt nicht an.


Delete - So 18.01.09 18:22

Einige Effekte bekommt man auch mit AnimateWindow [http://msdn.microsoft.com/en-us/library/ms632669.aspx] hin, das könnte man ja noch entsprechend kapseln und einbauen.


jaenicke - So 18.01.09 18:27

user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
Beschreib doch mal genauer, worum es geht. In der Form sehe ich mir das bestimmt nicht an.
Ehrlich gesagt verstehe ich nicht ganz was an der Beschreibung unklar ist. :nixweiss:

Die Namen der Prozeduren sind doch recht eindeutig. ;-)

Ich werde einmal ausprobieren wie gut diese Implementierung funktioniert. Ich habe da selbst schon einige Möglichkeiten ausprobiert (bisher mit nicht ganz idealem Erfolg). ;-)


FinnO - So 18.01.09 20:27

Ich habe mal eine Beispielanwendung hinzugefügt...
Siehe erster Post.


GTA-Place - So 18.01.09 20:47

Bitte nicht psDesktopCenter, sondern psScreenCenter nutzen. Wenn man zwei Bildschirme hat, ist es grad in der Kante. Ähnliches gilt für MoveOut: das sollte schon den gesamten Desktop entlang laufen und nicht nur den Screen.


FinnO - So 18.01.09 20:59

ich benutze bei MoveOut eigentlich WorkAreaWidth... solllte das nicht reichen?


GTA-Place - Mo 19.01.09 11:38

Nein, WorkAreaWidth gibt nur den Teil an, den die Taskleiste einnimmt. Richtig ist DesktopWidth.


FinnO - Mo 19.01.09 14:56

ist behoben ;)

gibt es vielleicht noch irgendwelche Wünsche?