Entwickler-Ecke

Sonstiges (Delphi) - Begrüssungsform langsam einblenden lassen !


Jagg - Fr 29.10.04 00:06
Titel: Begrüssungsform langsam einblenden lassen !
Hallo Leute !
Ich habe so ein Programm geschrieben, das läuft auch gut..ich möchte jetzt so eine Art Begrüssungsform eintritt bevor mein Programm startet !
ich habe mir so so überlegt :
Es soll dadrin erscheinen,welche funktionen im moment das programm hat und welche features es is zukunft gibt...das anzeigen ist kein problem...ich möchte aber das es LANGSAM eingeblendet wird
das heisst es soll so aussehen, das die form so in der art von nix bis zum anzeigen der ganzen form ist, man kann das so vergleichen als ob jemand die Form einbeamt(StarTrek) und dasselbe soll die form beim verlassen sein (ausbeamen) und der text soll so sein das es langsam von unten bis oben läuft,das kann man so vergelichen,wenn man beim schluss einen kinofilms ist und der text mit den darsteller etc. eingeblendet wird....
ich hoffe ihr versteht mich was ich meine !
wie bekomme ich sowas hin ?

Jagg


blackbirdXXX - Fr 29.10.04 04:58

Guckst du:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var i: Integer;
begin
    for i := 51 downto 0 do
        begin
            AlphaBlendValue := i * 5;
            sleep(50);
            Application.ProcessMessages;
        end;
end;


Beim Enblenden machst du es umgekehrt.
Und vergiss nicht:

Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.FormCreate(Sender: TObject);
begin
    AlphaBlend := true;
end;


Und das mit dem Text kannst du auf einem Canvas machen, oder einfach Labels verschieben.


Jagg - Fr 29.10.04 09:44

was ist den alphablend ???


jasocul - Fr 29.10.04 09:48

Gibts erst ab Delphi 6. Sch* ich hab nur D5. Aber bei der RoadShow schlag ich zu.


Jagg - Fr 29.10.04 10:30

habe alphablend = boolean genommen und alphablendvalue = integer und das ergebnis meine ich nicht...die form wird ja nur ausgeblendet(an einem stück)und das langsam....was ich meine :
z.b beim Film Startrek wird eine person zu einem ort gebeamt und das passiert ja nicht an einem stück,sondern seine moleküle werden einzeln rübergebeamt und soll auch mit der form passieren


sourcehunter - Fr 29.10.04 11:16

Wenn es einfach nur ein Schriftzug oder ein Bild ist, der sich langsam einbelendet, dann probiers doch mit nem AVI.


Jagg - Fr 29.10.04 13:41

was ist ein avi ????


Jagg - Fr 29.10.04 13:45

ich glaube ihr versteht mich nicht

ich meine eine Form Pixel für Pixel einblenden/ausblenden lassen...bis die ganze Form zusehen ist....


Jagg - Fr 29.10.04 16:42

ich habe nur delphi 5 professional

geht da auch damit alphablend und alphavalue ????


Jagg - Fr 29.10.04 16:43

ich glaube das was ich miene ist Transparenz die form einblenden und ausblenden lassen


GSE - Fr 29.10.04 16:56

Zitat:
ich glaube das was ich miene ist Transparenz die form einblenden und ausblenden lassen
und das macht der code den blackbirdXXX dir gegeben hat

mfg
GSE


Basti - Fr 29.10.04 17:08

Anstatt der Version von BlackbirdXXX würde ich aber einen Timer nehmen,
denn obwohl er Application.ProcessMessages; verwendet, gibt'S da manchmal Probleme.
Ich hatte das selber mal: Wenn man die Maus nicht bewegt bearbeitet der gar keine Messages...
Beim Timer ist das kein Problem...


wh89 - Fr 29.10.04 18:27

Kann man nicht auch alle Pixel tranparent machen und dann nacheinander(for x:=0 ... for y:=0)
alle Pixel setzen(mit nem Timer oder so)
Ich glaub das entspricht eher seinen Vorstellungen. *hab Entenscheiß gesehn* :P

tschöö
wh89


Basti - Fr 29.10.04 18:34

Äh - ich bin mir nicht sicher.
Du könntest den Splash-Screen als Image machen, dass so groß ist wie das Form.
Dann lädst du das das Image rein und merkst dir die einzelnen Pixelfarben.
Danach löscht du das Bild, wodurch du den Hintergrund siehst.
Anschließend kannst du dann zeilenweise das Bild wieder zusammensetzen und dann siehst
du wie das Pixel immer zeilenweise von links nach rechts eine neue Zeile des Bildes wird.
Allerdings würde ich da keinen Timer für verwenden,
das dauert schon so lange genug, wenn das Bild größer ist... :(

Was lernen wir aus meiner Antwort: Es ist eine schlechte Lösung.


Jagg - Fr 29.10.04 20:04

hmmmm wie bekomme ich das hin ?
ich weiss nicht mehr weiter...


Jagg - Fr 29.10.04 20:07

zu GSE :
ich habe delphi 5 und alphablend ist erst ab delphi 6 da oder nicht ?
oder kann man alphablend die komponente runterlöaden oder geht das auch anders ?


GSE - Fr 29.10.04 20:38

Zitat:
oder kann man alphablend die komponente runterlöaden oder geht das auch anders ?
es geht auch anders, denn TForm kapselt auch nur die API-Aufrufe fürs AplhaBlending, siehe hier [http://www.swissdelphicenter.ch/de/showcode.php?id=924]

mfg
GSE


sourcehunter - Sa 30.10.04 16:40

Ein avi ist ein Video. Aber das hat sich erledigt.
Pobiers mal mit transparentcolor und transparentcolorvalue. Du musst einfach alle Pixel die nicht sichtbar sein sollen mit transparentcolorvalue malen.