Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eigene visuelle Komponente (https://www.delphipraxis.net/96932-eigene-visuelle-komponente.html)

engel90 1. Aug 2007 21:59


Eigene visuelle Komponente
 
Hallo,
ich habe mich in letzter Zeit mit der Entwicklung von eigenen Komponenten beschäftigt. Ich weiß nun auch, wie man nicht-visuelle Komponenten entwickelt und implementiert. Aber was mir immer noch ein Rätsel ist, ist die Entwicklung von eigenen visuellen Komponenten, welche nicht von irgendwelchen Standard-Komponenten wie zum Beispiel TMemo oder TListBox abgeleitet sind.
Zudem würde ich auch genre wissen wie man zum Beispiel eine TRichEdit-Komponente so verändern kann, dass sie den mit 'SelAttributes'-markierten Text nicht im RichTextFormat formatiert sondern zum Beispiel mit HTML-Elementen oder LaTeX-Elementen.

Wenn jemand eine Antwort drauf weiß bitte hier posten.
Schon einmal DANKE im vorraus ^^

Gruß engel90

Phoenix 1. Aug 2007 22:25

Re: Eigene visuelle Komponente
 
TWinControl ist ne gute Basisklasse für eigene Visuelle Komponenten.

engel90 2. Aug 2007 09:30

Re: Eigene visuelle Komponente
 
Zitat:

Zitat von Phoenix
TWinControl ist ne gute Basisklasse für eigene Visuelle Komponenten.

Hmm das sagt mir jetzte eigentlich garnix... sorry...

Muetze1 2. Aug 2007 12:18

Re: Eigene visuelle Komponente
 
Ich verstehe nicht, was an der Antwort unverständlich ist. Du fragtest schliesslich nach einer Basisklasse von der du deine Komponente ableiten kannst um das o.g. zu erreichen. Dazu hast du doch nun die passende Antwort bekommen: TWinControl. Was ist genau das Verständnisproblem?

SirThornberry 2. Aug 2007 12:25

Re: Eigene visuelle Komponente
 
TWinControl finde ich etwas übertrieben, da ist man ja schon fast bei TObject angelangt. Sinvoller (aus meiner Sicht) finde ich TCustomControl und TGraphicControl

engel90 2. Aug 2007 12:44

Re: Eigene visuelle Komponente
 
Zitat:

Zitat von Muetze1
Ich verstehe nicht, was an der Antwort unverständlich ist. Du fragtest schliesslich nach einer Basisklasse von der du deine Komponente ableiten kannst um das o.g. zu erreichen. Dazu hast du doch nun die passende Antwort bekommen: TWinControl. Was ist genau das Verständnisproblem?

Das Verständnisproblem liegt eifnach darin, das ich mit TWinControl nix anfangen kann es sagt mir nix

SirThornberry 2. Aug 2007 12:51

Re: Eigene visuelle Komponente
 
TWinControl, TGraphicControl, TCustomControl sind genauso klassen wie TPanel, TMemo, TImage etc.
Also sind es mögliche Komponenten von denen man da ableiten kann/sollte

shmia 2. Aug 2007 13:00

Re: Eigene visuelle Komponente
 
In der Online-Hilfe sind die Unterschiede zwischen TWinControl und TGraphicControl beschrieben.
Bei TGraphicControl brauchst du eigentlich nur die Methode Paint überschreiben und kannst so auf dem Canvas zeichnen.
Schau dir einfach das Control TShape in der Unit ExtCtrls an, dann wird alles klar.

SirThornberry 2. Aug 2007 13:01

Re: Eigene visuelle Komponente
 
bei TCustomControl braucht er auch nur Paint überschreiben (ist ein Nachfahre von TWinControl)

engel90 2. Aug 2007 18:01

Re: Eigene visuelle Komponente
 
ok danke für die schnelle hilfe
ich werd es mal versuchen ^^

scrat1979 2. Aug 2007 18:08

Re: Eigene visuelle Komponente
 
So habe ich es gelernt:

Einfach bei torry.net ein paar interessante (und einfache!!!!) visuelle Komponenten herunterladen (z.B. Labels mit "Hyperlinkfunktion" oder Labels, die als Uhren verwendet werden und evtl. noch einen Rahmen haben oder auch eigene ProgressBars) und den Source STUDIEREN (nicht einfach nur abschreiben). So habe ich mich in die Entwicklung von visuellen Komponenten eingelesen und die Funktionen der wichtigsten Befehle, mit denen man Dinge auf ein Canvas schreiben kann, verstanden. Mittlerweile bekomme ich damit schon ganz schöne grafische Komponenten hin. Wie gesagt, zuerst mal die grundlegenden Befehle zum "malen" auf ein Canvas lernen und dann kann man weitermachen. Die Properties etc. sind ja schon bei den nicht-visuellen Komponenten dabei.

Grüße und viel Glück,

SCRaT

SirThornberry 2. Aug 2007 18:14

Re: Eigene visuelle Komponente
 
Genau, die eigentliche Arbeit bei visuellen Komponenten besteht darin auf die Canvas zu malen und gegebenfalls schöne Effekte wie Transparenz etc. zu erzeugen. Aber bei den Effekten hat es dann mehr mit dem verständnis der Bilddaten zu tun als mit der eigentlichen Komponentenprogrammierung.

MaBuSE 2. Aug 2007 18:25

Re: Eigene visuelle Komponente
 
Zitat:

Zitat von scrat1979
So habe ich es gelernt:...

Ich habe mir einfach den Quelltext der VCL angeschaut ;-)
Der war ja schon immer in den "großen" Versionen dabei.
engel90 wird da aber Pech haben, in der D7PE Version war er glaube ich nicht dabei.

siehe auch: C:\Programme\Borland\Delphi7\Demos\PropEdit\pielib .dpk

scrat1979 2. Aug 2007 18:30

Re: Eigene visuelle Komponente
 
Zitat:

Zitat von MaBuSE
Zitat:

Zitat von scrat1979
So habe ich es gelernt:...

Ich habe mir einfach den Quelltext der VCL angeschaut ;-)
Der war ja schon immer in den "großen" Versionen dabei.
engel90 wird da aber Pech haben, in der D7PE Version war er glaube ich nicht dabei.

siehe auch: C:\Programme\Borland\Delphi7\Demos\PropEdit\pielib .dpk

Hmm, naja ok. Also erstens bin ich ehrlich gesagt nie auf die Idee gekommen :oops: und zweitens wollte ich ja nicht lernen, wie die Standardkomponenten geschrieben wurden, sondern wie man diese erweitert etc. Falls dies auch im Quelltext der VCL steht (genauso "einleuchtend" [Source -> Endprodukt auf Form]) dann hätte ich mal früher auf die Idee kommen sollen, hehe. Der Vorteil der einzelnen Komponenten auf torry.net ist - finde ich - dass der Source z.T. sehr sehr kurz ist und das Ergebnis leicht nachzuvollziehen ist. Im VCL-Code haben die UNits immer hunderte (tausende?) von Zeilen. Da weiß man anfangs nicht wo was hingehört. Später mit sicherheit eine gute Alternative.

Trotzdem bereuhe ich es nicht, auf Torry's vorbeigeschaut zu haben :cyclops:

SCRaT


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz