Entwickler-Ecke
Multimedia / Grafik - Programm einfaden.
No0B - Sa 01.05.10 20:38
Titel: Programm einfaden.
Würde gerne mein Programm beim öffnen einfaden oder sonst irgendwie "weicher" öffnen lassen.
Beim schliessen habe ich nen Timer drin mit Alphablend, würde es beim öffnen aber gerne anders machen vll wie bei Windows.
Hat da jemand ne Idee ?
Webo - Sa 01.05.10 20:41
Warum denn beim Öffnen nen anderen Weg gehen ? AlphaBlend ist dafür doch eine sehr gut Möglichkeit, die ja schon funktioniert. Warum also nicht ein zweites mal anwenden (dann vielleicht mit anderen Timereinstellungen).
No0B - Sa 01.05.10 20:52
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.Timer2Timer(Sender: TObject); begin Form1.AlphaBlend:=True; Form1.AlphaBlendValue:=Form1.AlphaBlendValue + 5; if Form1.AlphaBlendValue = 30 then Start; |
oder so ?
No0B - Sa 01.05.10 21:21
Habs mal so versucht, aber der Timer läuft kontinuierlich weiter. Also Programm auf - zu auf zu, wie bleibts offen ?
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.Timer2Timer(Sender: TObject); begin Timer2.Enabled:=True; Form1.AlphaBlend:=True; Form1.AlphaBlendValue:=Form1.AlphaBlendValue + 20; |
ALF - Sa 01.05.10 21:45
Hi, Du must natürlich mal das AlphaBlendValue abfragen und dann den Timer auf false setzten :wink:
Gruss Alf
No0B - Sa 01.05.10 21:49
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Timer2Timer(Sender: TObject); begin Timer2.Enabled:=True; Form1.AlphaBlend:=True; Form1.AlphaBlendValue:=Form1.AlphaBlendValue + 20; if Form1.AlphaBlendValue = 100 then Timer2.Enabled:=false;
end; |
geht aber leider auch nicht :(
ALF - Sa 01.05.10 21:58
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Timer2Timer(Sender: TObject); begin Timer2.Enabled:=True; Form1.AlphaBlend:=True; Form1.AlphaBlendValue:=Form1.AlphaBlendValue + 20; if Form1.AlphaBlendValue = 100 then Timer2.Enabled:=false;
end; |
nimm mal das markierte raus und setzt es dahin wo Du das blending starten willst, nicht im Timer selbst.
und ändere mal
Delphi-Quelltext
1: 2:
| if Form1.AlphaBlendValue >= 100 then Timer2.Enabled:=false; |
das müsste dann auch funcen!
Gruss Alf
No0B - So 02.05.10 16:19
@ALF
habs mal so versucht , geht aber leider auch nicht. Wo liegt mein Problem. Das ist die erste Procedure im Code. Timer 2 steht auf False Interval 20. Das Programm ist aber nur leicht zu sehen. Das Alphablend zum ausfaden habe ich mal weggeschalten.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.FormCreate(Sender: TObject); begin Timer2.Enabled:=True; Form1.AlphaBlend:=True; end;
procedure TForm1.Timer2Timer(Sender: TObject); begin
Form1.AlphaBlendValue:=Form1.AlphaBlendValue + 20; if Form1.AlphaBlendValue >= 100 then Form1.AlphaBlend:=false; Timer2.Enabled:=false;
end; |
ALF - So 02.05.10 16:31
wenn dann nur so
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| Form1.AlphaBlendValue:=Form1.AlphaBlendValue + 20; if Form1.AlphaBlendValue >= 100 then begin Form1.AlphaBlend:=false; Timer2.Enabled:=false; end; |
Gruss Alf
No0B - So 02.05.10 17:04
Hab ich gemacht, aber wie vorher Fadet die Form ein wie gewünscht und nach dem einfadem schliesst sie sich wieder und Fadet erneut ein usw. wie ein Blinklicht :D Fehlt da ne Procedure oder so ?
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| Form1.AlphaBlendValue:=Form1.AlphaBlendValue + 20; if Form1.AlphaBlendValue >= 100 then begin Form1.AlphaBlend:=false; Timer2.Enabled:=false; end; |
No0B - So 02.05.10 17:24
Vielleicht hilft das ja weiter, hab beim Compilieren ne Warnung
[DCC Warnung] main.pas(59): W1021 Der Vergleich ergibt immer False
ALF - So 02.05.10 17:28
Ich befürchte, da hast Du irgenwo noch was stehen, was das ganze zum fade in/out führt!
Die Fehlerzeile ohne Quelltext nützt gar nichts!
Hier mal nen Vorschlag, so funct es Super :wink:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64:
| private FadeInOut: Boolean; public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin FadeInOut := True; AlphaBlendValue := 0; AlphaBlend := True; Timer1.Interval := 50; Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject); begin if FadeInOut then begin AlphaBlendValue := AlphaBlendValue + 5; if AlphaBlendValue >= 255 then begin FadeInOut := False; Timer1.Enabled := False; end; end else begin AlphaBlendValue := AlphaBlendValue - 5; if AlphaBlendValue <=0 then begin Timer1.Enabled := False; Application.Terminate; end; end; end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if canclose then begin canclose := False; Timer1.Enabled := True; end end;
procedure TForm1.Button1Click(Sender: TObject); begin close; end;
end. |
Gruss Alf
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!