Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Neue Dialogklasse: TColorForm (Alpha-Version) (https://www.delphipraxis.net/23143-neue-dialogklasse-tcolorform-alpha-version.html)

alcaeus 29. Mai 2004 14:09


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:
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
Delphi-Quellcode:
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]

alcaeus 30. Mai 2004 19:20

Re: Neue Dialogklasse: TColorForm (Alpha-Version)
 
[Push] :mrgreen:

Und, haben die 4 Herrschaften, die die Klasse heruntergeladen haben schon was dazu zu sagen?

negaH 30. Mai 2004 19:53

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

alcaeus 30. Mai 2004 19:55

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...

Pseudemys Nelsoni 30. Mai 2004 20:19

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 :)

alcaeus 30. Mai 2004 20:22

Re: Neue Dialogklasse: TColorForm (Alpha-Version)
 
Zitat:

Zitat von Pseudemys Nelsoni
Achja, wenn dir komponente nur für dich einen nutzen hat und sie bei dir auch funzt, brauchen sie andere ja nicht testen oder ;).

Ich sehe den Nutzen hauptsächlich für mich. Wenn jemand anderes die Kompo verwenden will, dann kann er das gerne (sobald sie fertig ist). Ich lasse die Kompo deshalb testen, da ich in Zukunft aus Arbeits- und Studengründen mit verschiedenen Delphi-Versionen auf verschiedenen Rechnern (und deshalb teilweise auch verschiedenem OS) arbeiten muss. Die Kompo sollte da von Anfang an lauffähig sein. Bewährt sie sich in den Tests nicht, so werde ich mir was anderes einfallen lassen (müssen).

Greetz
alcaeus

Pseudemys Nelsoni 30. Mai 2004 20:23

Re: Neue Dialogklasse: TColorForm (Alpha-Version)
 
Das stimmt natürlich ;)

alcaeus 30. Mai 2004 20:28

Re: Neue Dialogklasse: TColorForm (Alpha-Version)
 
Der Grund für das Erstellen der Kompo hängt mit dem Chat zusammen, den ich gemacht habe. Da ich auch die Methode mit Pen nicht kannte, habe ich mit zwei TImage-Kompos gearbeitet, bei welchen nur der Rand freiblieb. Das war dann natürlich ungeschickt, das Ganze gab es auf allen Forms und Panels.

@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

Nicodius 1. Jun 2004 06:13

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

alcaeus 1. Jun 2004 06:16

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.
Seite 1 von 2  1 2      

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