Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: Form einblenden andere forms laden und form ausblenden

  Alt 28. Jul 2005, 17:01
Zitat von Christian18:
ja so ähnlich bloß das die erste form eingeblendet wird, dann soll die anderen forms geladen werden und dann soll die lade forn wieder ausgeblendet werden und die haupt form angezeigt werden.
Ich habe mal schnell was gebastelt (ohne sakuras Tutorial als Grundlage, es geht ja nur um das Alphablending)

(Beispiel als *.zip im Anhang)

Delphi-Quellcode:
program Project1;
////////////////////////////////////////////////////////////////////////////////
// Splash Beispiel mit Alphablending (Ein- und Ausblenden)
// written in 2005 by MaBuSE for [url]www.delphipraxis.net[/url]
////////////////////////////////////////////////////////////////////////////////
uses
  Forms,
  Unit1 in 'Unit1.pas{Form1}, // Hauptformular
  Unit2 in 'Unit2.pas{Form2}, // Dummyformular ohne Funktion
  Unit3 in 'Unit3.pas{Form3}; // Splash

{$R *.res}

begin
  Application.Initialize;
  Form3 := TForm3.Create(nil);
  Form3.Show;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
Delphi-Quellcode:
unit Unit1;
////////////////////////////////////////////////////////////////////////////////
// Splash Beispiel mit Alphablending (Ein- und Ausblenden)
// written in 2005 by MaBuSE for [url]www.delphipraxis.net[/url]
////////////////////////////////////////////////////////////////////////////////
interface

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

type
  TForm1 = class(TForm)
    procedure FormActivate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses unit3;

{$R *.dfm}

{$J+}
procedure TForm1.FormActivate(Sender: TObject);
const
  FirstTime: Boolean = True;
begin
  // Wenn Hautformular sichtbar (also nach Application.Run in *.dpr)
  // Splash wieder ausblenden und aus Speicher entfernen
  if FirstTime then
  begin
    FirstTime := False;
    Form3.Close;
  end;
end;
{$J-}

end.
Delphi-Quellcode:
unit Unit3;
////////////////////////////////////////////////////////////////////////////////
// Splash Beispiel mit Alphablending (Ein- und Ausblenden)
// written in 2005 by MaBuSE for [url]www.delphipraxis.net[/url]
////////////////////////////////////////////////////////////////////////////////
interface

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

type
  TForm3 = class(TForm)
    Shape1: TShape; // optisch, keine Funktion
    Label1: TLabel; // optisch, keine Funktion
    procedure FormShow(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
begin
  // Wird beim Create aufgerufen
  BorderStyle := bsNone;
  FormStyle := fsStayOnTop;
  Position := poMainFormCenter;
  Color := clRed; // :-)
end;

procedure TForm3.FormShow(Sender: TObject);
begin
  // Wird beim Show aufgerufen, aber Form ist noch nicht sichtbar
  Form3.AlphaBlendValue := 0;
  Form3.AlphaBlend := true; // Form ist nun trasparent (=unsichtbar)
end;

procedure TForm3.FormActivate(Sender: TObject);
var
  i: Integer;
begin
  // wird aufgerufen, wenn Form auf dem Schirm "sichtbar" ist. (ist ja noch transparent)

  // In Schleife einblenden
  for i := 0 to 255 do
  begin
    Form3.AlphaBlendValue := i;
    Application.ProcessMessages;
  end;
  sleep(500); // eine halbe Sek. warten (kann natürlich entfernt werden)
end;

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
var
  i: Integer;
begin
  // Wenn Form geschlossen wird, ausblenden und "Self.Free" machen
  for i := 255 downto 0 do
  begin
    Form3.AlphaBlendValue := i;
    Application.ProcessMessages;
  end;
  Action := caFree;
end;

end.
Angehängte Dateien
Dateityp: zip splashscreen_158.zip (3,8 KB, 132x aufgerufen)
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat