![]() |
Neue Dialogklasse: TColorForm (Alpha-Version)
Liste der Anhänge anzeigen (Anzahl: 2)
So, ich habe jetzt die Alpha-Version meiner Dialogklasse fertiggestellt: TColorForm. Bitte lest den Beitrag hier bis zum Ende durch, es werden einige Informationen gegeben.
Was ist TColorForm? TColorForm ist eine Formularklasse, die einen farbigen Hintergrund mit Rand anbietet, und nicht nur einen einfärbigen. Und wieso der Aufwand für so einen Hintergrund? Ich benötige das Ganze in meinen Programmen. Der Grund wieso diese Klasse hier landet, ist einfach: Ich habe nicht viele Testmöglichkeiten, und deshalb bitte ich euch, mir Erfahrungsberichte zu geben. Was ist das Problem mit der Klasse? Wie bereits erwähnt habe ich nur begrenzte Testmöglichkeiten. Auf meinem WinXP (mit neuem XP-Stil) und D7 Ent lief das Ganze wunderbar. Wie verwende ich TColorForm? Die beiden gezippten Dateien müssen einfach ins Projektverzeichnis oder in das Lib-Verzeichnis von Delphi gegeben werden. Im Programm sind folgende Anpassungen nötig: Die Unit QColorForm muss in das Programm eingebunden werden. Dies muss im interface-Teil geschehen. Die Klassendeklaration muss angepasst werden:
Delphi-Quellcode:
wird geändert in:
type
TForm1 = class(TForm)
Delphi-Quellcode:
Zusätzlich muss in den Behandlungsroutinen für OnCreate und OnResize gegebenenfalls noch die Zeile
type
TForm1 = class(TColorForm)
Delphi-Quellcode:
am Anfang hinzugefügt werden.
inherited;
Ich hab alles gemacht, wieso sehe ich nichts? Dazu werden die in diesen Bereich beschriebenen Methoden benötigt: procedure DisableBackground; Mit dieser Prozedur wird der farbige Hintergrund deaktiviert, die Originalfarbe des Formulars wird wiederhergestellt. procedure DrawBackground; Diese Prozedur zeichnet den Hintergrund neu. procedure EnableBackground; EnableBackground kann verwendet werden, nach einem Aufruf von DisableBackground den farbigen Hintergrund wieder zu aktivieren. function GetBGColor: TColor; Diese Funktion liefert die Hintergrundfarbe zurück. function GetBorderColor: TColor; Diese Funktion liefert die Randfarbe zurück. function GetBorderWidth: Integer; Diese Funktion liefert die Randbreite zurück. procedure InitBackground(BGColor, BorderColor: TColor; BorderWidth: Integer); Diese Prozedure initalisiert den Hintergrund. BGColor ist die Hintergrundfarbe, BorderColor die Randfarbe und BorderWidth die Randbreite in Pixel. Es empfiehlt sich, diese Prozedur in der Behandlungsroutine für OnCreate aufzurufen. procedure SetBGColor(Color: TColor); Diese Prozedure setzt die Hintergrundfarbe und zeichnet den Hintergrund neu. procedure SetBorderColor(Color: TColor); Diese Prozedure setzt die Randfarbe und zeichnet den Hintergrund neu. procedure SetBorderWidth(Width: Integer); Diese Prozedure setzt die Randbreite und zeichnet den Hintergrund neu. Wie sieht das Ganze aus? Seht auch dazu den angehängten Screenshot an. Welche Probleme sind bekannt? Ich weiß dass es beim Zeichnen zu einem Flimmern kommt. Dieses Problem werde ich aber so schnell wie möglich beheben. Außerdem zählt zur Zeit der Rand auch noch zum Clientbereich des Formulars, das heißt dass Komponenten darübergezeichnet werden können. Auch dieses Problem werde ich versuchen bald loszuwerden. Da war doch noch was... Die Klasse ist eine Alpha-Version, weshalb auch beim Start eines Programms, das TColorForm verwendet, eine Infobox angezeigt wird. Sobald die Klasse fertiggestellt ist, werdet ihr sie natürlich gleich als erstes erhalten. [edit]Sorry, falsche Version hochgeladen.[/sorry] |
Re: Neue Dialogklasse: TColorForm (Alpha-Version)
[Push] :mrgreen:
Und, haben die 4 Herrschaften, die die Klasse heruntergeladen haben schon was dazu zu sagen? |
Re: Neue Dialogklasse: TColorForm (Alpha-Version)
Toll, und warum nicht ein TShape mit Pen.Width = 10 und Pen.Color := clBlue, .Align := alClient und .Brush.Color := clBaluXYZ. Heist, um das gleiche wie du zu erreichen benötigt man ca. 6 Mausklicks mit den Delphi Standard Komponenten.
Gruß Hagen |
Re: Neue Dialogklasse: TColorForm (Alpha-Version)
Daran habe ich erstens nicht gedacht, zweitens geht es ja darum, dass man sich im Programm nach Möglichkeit nicht mehr darum kümmern muss, und vor allem keine zusätzliche Komponente auf das Form..
Wie gesagt, es hat vor allem für mich einen Nutzen, wenn jemand einfach die Kompilierbarkeit testen könnte wäre das Spitze... |
Re: Neue Dialogklasse: TColorForm (Alpha-Version)
hoi alcaeus,
gute idee mit der kompo, auch wenn ich sie noch nicht getestet habe. :] Achja, wenn dir komponente nur für dich einen nutzen hat und sie bei dir auch funzt, brauchen sie andere ja nicht testen oder ;). Aber so können sie andere auch mit benutzen, das ist gut :) |
Re: Neue Dialogklasse: TColorForm (Alpha-Version)
Zitat:
Greetz alcaeus |
Re: Neue Dialogklasse: TColorForm (Alpha-Version)
Das stimmt natürlich ;)
|
Re: Neue Dialogklasse: TColorForm (Alpha-Version)
Der Grund für das Erstellen der Kompo hängt mit dem
![]() @Hansa: Ich plane, die Kompo auf Bilder auszuweiten, das heißt du brauchst nur eine Datei, ein Bild in einer Imagelist oder irgendwas in der Art anzugeben, der Rest wird für dich erledigt. Greetz alcaeus |
Re: Neue Dialogklasse: TColorForm (Alpha-Version)
pen ist der rand :lol:
das weißt du jetzt eh ... und was machst du jetzt machst es mit deiner oder mit den "normalen" methoden |
Re: Neue Dialogklasse: TColorForm (Alpha-Version)
Ich machs natürlich mit meiner Methode, ich schreibe eine Zeile zusätzlich, und ändere eine Vorgängerklasse, und schon hat sich die Sache erledigt. IMHO ist das viel bequemer, als noch eine Kompo auf dem Formular liegen zu haben, das war es auch, was mich an der alten Methode gestört hat und schließlich auch dazu gebracht hat, diese Klasse hier zu schreiben.
Zusätzlich arbeite ich noch an einer ähnlichen Nachfolgerklasse für TPanel. Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 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