![]() |
Neue Komponente mit 2 TEdit Komponenten
Hallo,
ich muss eine Komponente mit 2 Editfeldern und 6 Feldern mit Textausgabe erstellen. Bevor ich damit beginne wollte ich eure Meinung hören wie man das am besten angeht. Verwende ich TEdit oder besser TCustomEdit? Wie erzeuge ich die Editfelder an besten?Wie bekomme ich die Onchance Ereignise der Editfelder in ein gemeinsames OnChance Ereignis? Wie positioniert man die Editfelder auf seiner Komponente? usw. Ich bin für jeden Hinweis und Erklärung dankbar denn mit solchen zusammengesetzten Komponenten habe ich mich überhaupt noch nicht beschäftigt. Gruss Dieter |
Re: Neue Komponente mit 2 TEdit Komponenten
Schau dir doch mal die TFrame-Komponente an.
|
Re: Neue Komponente mit 2 TEdit Komponenten
TCustom<Kompo> sind die dafür geschaffenen Basisklassen
|
Re: Neue Komponente mit 2 TEdit Komponenten
|
Re: Neue Komponente mit 2 TEdit Komponenten
Falls schon etwas Basiswissen da ist, ist vielleicht auch der Quellcode von LabeledEdit ganz interessant. Der ist ja bei Delphi mit dabei (zumindest in der kostenlosen Turbo 2006, hoffe dann auch in der 2005 PE?).
|
Re: Neue Komponente mit 2 TEdit Komponenten
Hallo zusammen,
danke für eure schnellen Antworten. Zitat:
Zitat:
Zitat:
Dieter |
Re: Neue Komponente mit 2 TEdit Komponenten
Zitat:
TFRame ist einfach, Menü -> Datei -> Neu -> Frame. Ist dann wie ein neues Formular, in das man seine Einzelkomponenten plazieren kann. Das ergebnis ist aber mE. keine neue Komponente, sondern eben ein Frame. |
Re: Neue Komponente mit 2 TEdit Komponenten
Zitat:
Gründe: * unflexibel, die Komponente verbirgt das Innenleben meistens so stark, dass man häufig die Schnittstelle der Komponente ändern muss * umständliche Weitergabe des Projekts - das Installieren der Komponente nervt * die Komponente lässt sich nur in einem Projekt verwenden, weil sie zu speziell ist * wenn man öfters solche Spezialkomponenten erstellt, müllt man sich die IDE zu und schleppt den Code im Speicher mit Wie Bernhard Geyer schon gesagt hat, wäre ein Frame hier das Richtige. Dabei wichtig: vom Formular aus möglichst nicht direkt auf die Controls auf dem Frame durchgreifen, sondern über Properties abkapseln. |
Re: Neue Komponente mit 2 TEdit Komponenten
Zitat:
1. Warum nicht durchgreigen? 2. Wenn die Propertys aller enthaltenen Controls abkapseln soll, dann kann er doch auch gleich ein CustomPanel nehmen und daraus eine Komponente mit den enthaltenen Edits usw. schreiben. Das Kapseln macht er dann über einen zentralen Wrapper. Den hat er schön im Inspektor und setzt mit einem Ruck die Eigenschaften aller enthaltenen Controls (z.B. Color, Font etc.). Gruß oki |
Re: Neue Komponente mit 2 TEdit Komponenten
Zitat:
Beispiel: Das Edit-Control mit Namen EditKanal soll in eine HistoryCombobox (neuer Name CboKanal) umgewandelt werden. Diese Änderung könnte mehrere Änderungen am Rest der Anwendung nach sich ziehen. Wenn man dem Frame das Property "Kanal" gibt, dann beschränken sich die Änderungen auf das Frame. Ausserdem zeigt man so explizit, was in das Frame rein- und rausgeht. Zitat:
Aber ein Frame ist leichtgewichtig; man kann schnell mal etwas ändern und darf dann auch man direkt auf die innerliegenden Controls zugreifen. Eine Komponente ist dagegen schwergewichtig; die innerliegenden Controls sind nicht direkt erreichbar. Wenn man z.B. die Farbe eines inneren Controls von Aussen ändern möchte, dann muss man ein neues Property einführen. Dazu muss man das Package neu kompilieren und kann dann erst in der Anwendung das neue Property benützen. Und dann fällt einem ein, dass das mit der Farbe doch keine so tolle Idee war und man muss den Prozess wieder durchlaufen. Ich schätze mal, dass eine Änderung an einer Komponente 5 Mal mehr Zeit benötigt, als eine Änderung an einem Frame. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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