![]() |
Form Type ändern
Hi,
also ich benutze die Carbon Copy- Looks Like Mac Os X Komponenten für meinen Media Player. Eingebunden wird das Mac Style Form indem man bei
Delphi-Quellcode:
reinschreibt und in die uses oben ccform einfügt.
type
Form1 = class(TccForm) Meine Frage ist jetzt ob es irgenwie möglich ist in der laufenden Anwendung das Design wieder zu entfernen. Logischerweise klapp folgendes in einem Button nicht :) :
Delphi-Quellcode:
Weiß einer ob das geht oder muss ich zwei Exe Dateien anbieten und dann umschalten obwohl ich das eigentlich nicht will?
type
Form1 = class(TForm) |
Re: Form Type ändern
Objekt freigeben und neu erstellen.
|
Re: Form Type ändern
Wie geht das? Also Form1.Free; und dann?
|
Re: Form Type ändern
Du könntest auch die Komponenten um eine Eigenschaft "Enabled" erweitern. Oder einfach eine andere Skinengine verwenden, wo das geht.
|
Re: Form Type ändern
Und wie kann ich das Form jetzt neu erstellen?
|
Re: Form Type ändern
Delphi-Quellcode:
<Objekt> := <Klasse>.Create(<Owner>, <weitere Params>);
|
Re: Form Type ändern
Könnte aber Probleme geben, wenn er sein Mainform vorher releasen muss.
|
Re: Form Type ändern
Dann müsste er halt eine unsichtbare Dummy-Mainform verwenden.
War auch nicht als Musterlösung, sondern als Denkanstoss gedacht. Obwohl ich bezweifele, das er einen solchen bei ihm auslöst. Man sollte das Ganze sowieso anders lösen. |
Re: Form Type ändern
|
Re: Form Type ändern
Aber wie soll ich das denn um ein Enabled erweitern? Ist doch nichtmal eine Komponente oder?
|
Re: Form Type ändern
Eine Form ist auch eine Komponente
Delphi-Quellcode:
Nicht getestet, sollte aber funktionieren
type
TForm1 = class(TForm) private FSkinEnabled: Boolean; public constructor Create( AOwner: TComponent); overload; override; constructor Create( AOwner: TComponent; EnableSkin: Boolean); overload; end; var Form1: TForm1; implementation {$R *.dfm} constructor TForm1.Create(AOwner: TComponent); begin if Self.FSkinEnabled then Self := TccForm.Create() else inherited Create( AOwner); end; constructor TForm1.Create(AOwner: TComponent; EnableSkin: Boolean); begin Self.FSkinEnabled := EnableSkin; Self.Create( AOwner); end; |
Re: Form Type ändern
Geht nicht.
[DCC Fehler] Unit1.pas(171): E2035 Nicht genügend wirkliche Parameter |
Re: Form Type ändern
Dann erweitere doch die Komponente/Klasse oder was auch immer das ist um diese Eigenschaft, ist doch viel sinnvoller IMHO.
|
Re: Form Type ändern
Delphi-Quellcode:
Self := TccForm.Create( AOwner)
|
Re: Form Type ändern
Ähm, so funktionieren Konstruktoren eindeutig nicht. Self wird bereits in _ClassCreate erzeugt und Änderungen im Konstruktor werden nicht gespeichert. Dass man einem TForm1 nicht einfach ein TccForm zuweisen kann, sofern keine besondere Vererbungshierarchie vorliegt, sollte auch klar sein.
|
Re: Form Type ändern
Zitat:
Wenn du einen abschlatbaren Skin willst, dann verwende eine Skin Engine. Alles andere ist sowieso keine Lösung und für dich vermutlich eh nicht implementierbar :roll: |
Re: Form Type ändern
Schau Dir mal die Lite-Edition der
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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