Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   [D2005 PE] FadeForm (https://www.delphipraxis.net/68475-%5Bd2005-pe%5D-fadeform.html)

fkerber 30. Apr 2006 14:06

Re: [D2005 PE] FadeForm
 
Hi!

Das tust du doch bereits:
Delphi-Quellcode:
inherited
Ciao Frederic

xZise 30. Apr 2006 14:08

Re: [D2005 PE] FadeForm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Doppelt hält besser ;) Okay danke!

1. Compilieren funzt
2. Siehe Attachement: Da hin möchte ich es haben

[edit]
@ Override:
[Fehler] UFadeForm.pas(14): E2170 Eine nichtvirtuelle Methode kann nicht überschrieben werden
[Fehler] UFadeForm.pas(15): E2170 Eine nichtvirtuelle Methode kann nicht überschrieben werden
[/edit]

GuenterS 30. Apr 2006 14:16

Re: [D2005 PE] FadeForm
 
Nur zum Testen, kannst Du die Unit auch in ein Projekt einbinden und händisch erstellen.

Delphi-Quellcode:
uses
   UFadeForm;

procedure Test;
var
  lFadeForm: TFadeForm;
begin
  lFadeForm := TFadeForm.CreateNew(nil);
  lFadeForm.FadeIn := true;
  lFadeForm.FadeOut := true;
  lFadeForm.Show;
  sleep(10000);
  lFadeForm.Free;
end;
und bezüglich

[Fehler] UFadeForm.pas(14): E2170 Eine nichtvirtuelle Methode kann nicht überschrieben werden
[Fehler] UFadeForm.pas(15): E2170 Eine nichtvirtuelle Methode kann nicht überschrieben werden

überschreibst Du am besten die Methoden DoShow bzw. DoHide, die sind in TCustomForm als Protected deklariert, kannst Du also auch in deiner TFadeForm dort deklarieren (Ich hoffe das hat sich von D7Pro zu D2005PE nicht geändert).

xZise 30. Apr 2006 17:56

Re: [D2005 PE] FadeForm
 
Also ich habe folgenden Quelltext:
Delphi-Quellcode:
program Project1;

uses
  Forms,
  UFadeForm in 'Codes\FadeForm\UFadeForm.pas',
  Unit1 in 'Unit1.pas';

{$R *.res}

begin
  Application.Initialize;
  Unit1.Test;
  Application.Run;
end.
Delphi-Quellcode:
unit Unit1;

interface

uses
  UFadeForm, SysUtils;

procedure Test;

implementation

procedure Test;
var
  lFadeForm: TFadeForm;
begin
  lFadeForm := TFadeForm.CreateNew(nil);
  lFadeForm.AlphaBlend := true;
  lFadeForm.FadeIn := true;
  lFadeForm.FadeOut := true;
  lFadeForm.Show;
  sleep(10000);
  lFadeForm.Free;
end;

end.
Delphi-Quellcode:
unit UFadeForm;

interface

uses
  SysUtils, Forms;

type
  TFadeForm = class(TForm)
  private
    pFadeIn, pFadeOut : Boolean;

  protected
    procedure DoShow; override;
    procedure DoHide; override;
  published
    property FadeIn : Boolean read pFadeIn write pFadeIn;
    property FadeOut : Boolean read pFadeOut write pFadeOut;
  end;

implementation

procedure TFadeForm.DoShow;
begin
  // AlphaBlend runtersetzen
  if pFadeIn then
    AlphaBlendValue := 5;

  // Show "ausführen"
  inherited Show;

  // Einblenden
  if pFadeIn then
    while AlphaBlendValue < 255 do begin
      AlphaBlendValue := AlphaBlendValue + 10;
      Sleep(10);
    end;
end;

procedure TFadeForm.DoHide;
begin
// Ausblenden
  if pFadeOut then begin
    AlphaBlendValue := 255;
    while AlphaBlendValue > 5 do begin
      AlphaBlendValue := AlphaBlendValue - 10;
      Sleep(10);
    end;
  end;

  // Close "ausführen"
  inherited Close;
end;

end.
Also Fehler etc. gibts nicht, nur ist es, wie eine normale Form... "An" und "Aus" ^^

[edit]is natürlich auch AlphaBlend an :D [/edit]

arbu man 30. Apr 2006 17:59

Re: [D2005 PE] FadeForm
 
mach mal
Delphi-Quellcode:
 
  public
    procedure Show; override;
    procedure Hide; override;

xZise 30. Apr 2006 18:01

Re: [D2005 PE] FadeForm
 
Zitat:

[Fehler] UFadeForm.pas(14): E2170 Eine nichtvirtuelle Methode kann nicht überschrieben werden
[Fehler] UFadeForm.pas(15): E2170 Eine nichtvirtuelle Methode kann nicht überschrieben werden
Ohne Do ;) Hatte schon einen Sinn ^^

Und mit Do: Keine Änderung!

GuenterS 30. Apr 2006 18:23

Re: [D2005 PE] FadeForm
 
Du solltest in den DoShow und DoHide Proceduren auch nicht die Show und Close Proceduren aufrufen, sondern nur die elternmethode DoShow bzw. DoHide.

xZise 30. Apr 2006 18:27

Re: [D2005 PE] FadeForm
 
Hmmm auch geändert... Tut sich nix :(

GuenterS 30. Apr 2006 18:49

Re: [D2005 PE] FadeForm
 
Ausblenden funktioniert so
Delphi-Quellcode:
procedure TFadeForm.DoHide;
begin
// Ausblenden
  if pFadeOut then
  begin
    AlphaBlendValue := 255;
    while AlphaBlendValue > 5 do
    begin
      AlphaBlendValue := AlphaBlendValue - 10;
      Refresh;
      Sleep(10);
    end;
  end;
  inherited;
end;
Beim Einblenden ist es plötzlich da.

arbu man 30. Apr 2006 18:56

Re: [D2005 PE] FadeForm
 
Oder man macht das ganze als Komponente TAFade

Auch wenn man die Massages Abfragt SHOWWINDOW funktioniert es beim starten nicht. Aber mit dem Timer geht es bei mir.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:24 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz