Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

Neue Dialogklasse: TColorForm (Alpha-Version)

  Alt 29. Mai 2004, 14:09
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:
type
  TForm1 = class(TForm)
wird geändert in:
Delphi-Quellcode:
type
  TForm1 = class(TColorForm)
Zusätzlich muss in den Behandlungsroutinen für OnCreate und OnResize gegebenenfalls noch die Zeile
inherited; am Anfang hinzugefügt werden.

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]
Miniaturansicht angehängter Grafiken
tcolorform.jpg  
Angehängte Dateien
Dateityp: zip tcolorform_654.zip (4,0 KB, 21x aufgerufen)
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat