![]() |
Re: [D2005 PE] FadeForm
Hi!
Das tust du doch bereits:
Delphi-Quellcode:
Ciao Frederic
inherited
|
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] |
Re: [D2005 PE] FadeForm
Nur zum Testen, kannst Du die Unit auch in ein Projekt einbinden und händisch erstellen.
Delphi-Quellcode:
und bezüglich
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; [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). |
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:
Also Fehler etc. gibts nicht, nur ist es, wie eine normale Form... "An" und "Aus" ^^
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. [edit]is natürlich auch AlphaBlend an :D [/edit] |
Re: [D2005 PE] FadeForm
mach mal
Delphi-Quellcode:
public procedure Show; override; procedure Hide; override; |
Re: [D2005 PE] FadeForm
Zitat:
Und mit Do: Keine Änderung! |
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.
|
Re: [D2005 PE] FadeForm
Hmmm auch geändert... Tut sich nix :(
|
Re: [D2005 PE] FadeForm
Ausblenden funktioniert so
Delphi-Quellcode:
Beim Einblenden ist es plötzlich da.
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; |
Re: [D2005 PE] FadeForm
Oder man macht das ganze als Komponente
![]() 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. |
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