ListView mit Editfeldern? - Zeichnen von Komponenten in Komponenten
-
Ich bin mir sicher, dieses Thema gehört zum Grundverständnis der seriösen C++-Programmierung und wurde wahrscheinlich auch schon mehrfach angesprochen, aber kann mir jemand mal ein gutes Tutorial geben, in dem gezeigt wird, wie man einzelne Komponenten in anderen Komponenten zeichnet z.B. eine ListView mit Editfeldern anstatt der normalen Einträge? Ich weiß bloß, daß hier die Fensterprozedur der jeweiligen Komponente "umgebogen" werden muß, aber nicht, wie man das macht.
Danke schon mal vorab.
Gruß
Darkheart
-
Ich möchte hier nur anmerken, dass du ein "ListView mit Editfeldern" in Form eines StringGrids von Borland angefertigt bekommen hast. OK, es ist kein ListView, aber funktional gesehen ist es wohl das, was du suchst.
-
Ja, das schon, aber es geht nicht nur um ein ListView. Ich möchte es halt mal generell wissen, wie man das bei Komponenten macht.
Hintergrund ist, daß ich demnächst mehr solche Komponenten benötige. Nicht nur eben ein ListView sondern auch ne ComboBox etc.Gruß
Udo
-
In einem Edit kann man sowas hinbekommen. Leg zB. ein Label auf ein unsichtbares Panel (irgendwo auf der Form) ab. Durch die Positionierung des Labels steuerst du, wo es im Edit erscheint. Dann einfach ein
Label1->Parent = Edit1;
In einer ComboBox kann ich es nicht anzeigen. Kannst ja noch weiter expirimentieren. :p
-
Na ja Omega, im Prinzip ein guter Vorschlag. Aber ich brauch ne generelle Lösung, wie ich die Komponenten als Inhalt von anderen Komponenten zeichne. Das mit der Combo muß irgendwie hinhauen. Microsoft nutzt solche Komponenten in Word und Excel für die Suchoption (z.B. ne Combo mit Checkboxes). Und ungefähr genausowas brauch ich auch.
Gruß
Udo
-
Klar, das ist erst mal nicht das, was du suchst sondern zeigt nur einen möglichen Aufbau. Falls du nicht fündig wirst, könntest du etwa durch abgeleitete Klassen ohne völligen Neuaufbau zu kombinieten Kompos kommen. Die ComboBox zB. beinhaltet ein Editfeld, die Stringliste und einen Schalter. Wenn sie sich deinen Forderungen wiedersetzt, kann sie wieder aus den Einzelteilen mit neuen Eigenschaften zusammengesetzt werden. Erreichbar sollte dein Ziel also sein.
Hmmm, hab die URL nicht mitgespeichert; im Thread "Bezugsquelle für VCL-Komponenten" werden einige sehr interessante Komponentenseiten genannt.
-
Na, da werd ich mich doch mal umschauen. Nachdem ich auch teilweise in Delphi programmiere und ich in einem anderen Forum auch diese Frage für Delphi gestellt habe, werde ich wohl den dort vorgeschlagenen Lösungsweg mal versuchen.
Die User dort meinten, am einfachsten wäre es, ins OnDrawItem-Ereignis des Parents entsprechende Routinen einzubinden, die dem Editfeld (etc.) das Rectangle des Items zuweisen. Hoffe bloß, daß das bei C++ auch ohne größere Schwierigkeiten funktioniert. In C++ hatte ich mal ein Beispiel gesehen, in dem zusätzlich die Fensterprozedur des Parents umgebogen wurde.
Danke für Euere Hilfe !
Udo
P.S.: Wenn vielleicht doch noch jemand ein gutes Tut weiß, dann wäre es super, wenn er den entsprechenden Link hier noch ergänzend posten könnte !