AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Maximiert

Ein Thema von Störtebeker · begonnen am 19. Jul 2007 · letzter Beitrag vom 20. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#1

Maximiert

  Alt 19. Jul 2007, 20:40
Ich habe ein Programm, das maximiert startet und einen schwarzen Background hat.

Die erste Form ist ein SplashScreen, die zweite eine "Login"-Form. Beide haben einen schwarzen Hintergrund. Wenn der SplashScrenn nach erfolgreichem Laden zur zweiten Form wechselt, funktioniert das nicht ganz so, wie das mir vorstelle. Zum einen, blitzt zwischen den beiden Formen, kurz der Desktop auf und wie kann ich es realisieren, dass die Formen praktisch seicht eingeblendet werden, wie man das zum Beispiel von "GTA San Andreas" kennt.
Also quasi einen Einblendeffekt.
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#2

Re: Maximiert

  Alt 19. Jul 2007, 20:51
Nun ich nehme mal an beide Formen gehen ganzen Bildschirm (Titel). Mach doch einfach ein schwarzes Hintergrund Formular. Darauf erstellst du dann den SplashScreen und danach die Login-Form.
Für einen Slide Effekt musst du AlphaBlending benutzen, du setzt AlphaBlendValue auf 0, nach dem Erstellen der Form, also wenn die Form angezeigt wird (OnShow), setzt du in einer Schleife AlphaBlendValue auf 255. In der Schleife ein Sleep nicht vergessen sonst siehst du nichts.
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#3

Re: Maximiert

  Alt 19. Jul 2007, 20:57
deinen ersten text zu meinem Problem des aublitzenen desktops verstehe ich nicht ganz, denn ich glaube so wie du es meinst habe ich es gemacht und zu dem zweiten meckert er mit wenn ich OnShow:

Delphi-Quellcode:

procedure TForm2.FormShow(Sender: TObject);
begin
AlphaBlend:=255;
end;
eingebe mit >>incompatible types 'boolean' and 'integer'<< und zu dem sleep, muss ich das über AlphaBlend setzen? Ich bin zwar kein Delphi-Neuling, dennoch hbae ich bis jetzt auf Schleifen verzichten können, und habe daher leider nich so den Schimmer, wie ich das in ne Schleife packen könnte. Und welches
Delphi-Quellcode:
begin
Sleep(?)
end;
nehme ich da am besten?
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Maximiert

  Alt 19. Jul 2007, 21:02
Die Eigenschaft .AlphaBlend gibt an ob geblendet wird.
Delphi-Quellcode:
AlphaBlendValue:=255;
AlphaBlend := True;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#5

Re: Maximiert

  Alt 19. Jul 2007, 21:11
Und zu dem sleep, muss ich das über AlphaBlend setzen? Ich bin zwar kein Delphi-Neuling, dennoch hbae ich bis jetzt auf Schleifen verzichten können, und habe daher leider nich so den Schimmer, wie ich das in ne Schleife packen könnte. Und welches
Delphi-Quellcode:
begin
Sleep(?);
end;
nehme ich da am besten?
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Maximiert

  Alt 19. Jul 2007, 21:14
Sleep hält das Programm für eine bestimmte Zeit an. Ein Timer wäre besser.

Delphi-Quellcode:
For i := 0 to 255
begin
  AlphaBlendValue := i;
  Sleep(100);
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#7

Re: Maximiert

  Alt 19. Jul 2007, 21:16
Also du erstellst eine kleine Schwarze Form die du anzeigst. Danach erstellst deinen SplashScreen du zeigt diesen auf der ersten Form an. Danach erstellst du deine LoginForm und zeigst auch diese auf der ersten Form an. Somit siehst du denn Desktop nicht mehr.

Zum Alpha Blending: hier mal meine Klasse dazu:
Delphi-Quellcode:
unit uBlendForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TBlendForm = class(TForm)
  private
    { Private-Deklarationen }
    FBlendValue: Byte;
    FFirstShow: Boolean;
    FBlendTimer: TTimer;
    FBlendOut: Boolean;
    procedure TimerProc(Sender: TObject);
    procedure SetBlendOut(const Value: Boolean);
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    procedure DoClose(var Action: TCloseAction); override;
    procedure DoShow; override;
  published
    property BlendOut: Boolean read FBlendOut write SetBlendOut;
  end;

var
  BlendForm: TBlendForm;

implementation

{$R *.dfm}

constructor TBlendForm.Create(AOwner: TComponent);
begin
  inherited;
  FBlendOut := false;
  FBlendValue := 0;
  FFirstShow := true;
  FBlendTimer:= TTimer.Create(Self);
  FBlendTimer.Enabled := false;
  FBlendTimer.Interval := 1;
  FBlendTimer.OnTimer := TimerProc;
end;

procedure TBlendForm.DoClose(var Action: TCloseAction);
var
  i: integer;
begin
  inherited;
  if FBlendOut then begin
    for i := 255 downto 0 do begin
      AlphaBlendValue := i;
      Sleep(1);
      Application.ProcessMessages;
    end;
  end;
end;

procedure TBlendForm.DoShow;
begin
  inherited;
  if FFirstShow then begin
    FBlendTimer.Enabled := true;
  end;
end;

procedure TBlendForm.SetBlendOut(const Value: Boolean);
begin
  FBlendOut := Value;
end;

procedure TBlendForm.TimerProc(Sender: TObject);
begin
  if FBlendValue < 255 then begin
    inc(FBlendValue);
    if FBlendValue = 255 then begin
      FBlendTimer.Enabled := false;
    end;
    AlphaBlendValue := FBlendValue;
  end;
end;

// oder das Ganze in FormActivate
//
//procedure TBlendForm.FormActivate(Sender: TObject);
//var
// i: integer;
//begin
// for i := 0 to 255 do begin
// AlphaBlendValue := i;
// Sleep(1);
// Application.ProcessMessages;
// end;
//end;

end.
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#8

Re: Maximiert

  Alt 19. Jul 2007, 21:28
thx. arbu man. hat mir schon weitergeholfen dein text zum AlphaBlend. Jetz noch die Frage, kann man die Farbe des AlphaBlend beeinflussen. Ist ja so ein weißes Alphablend. geht das auch in schwarz?
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Maximiert

  Alt 19. Jul 2007, 21:30
Alphablend verschmilzt mit dem Hintergrund
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#10

Re: Maximiert

  Alt 19. Jul 2007, 21:38
zu deinem Vorschlag wegen des aufblitzenden Desktops:

das mit dieser schwarzen hintergrund form, kann ich das auch nachträglich machen? oder meinst du Frames?
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz