Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - eine Komponente als TImage oder TMemo erstellen?
TheOutlaw - Fr 05.04.13 15:22
Titel: eine Komponente als TImage oder TMemo erstellen?
Mal schauen ob mir jemand helfen kann und ob es überhaupt möglich ist.
Ich würde gerne zur Laufzeit eine Komponente erstellen, die nicht fest von einer anderen abgeleitet wird, sondern ja nach Eigenschaft als TImage oder als TMemo auf der Form dargestellt wird.
Z.B. so
procedure TForm1.Button1Click(Sender: TObject);
var
mycomponent: TMyComponent;
s:string;
begin
mycomponent:=TMyComponent.Create(self);
// s:='c:\xxx\bild.bmp'; // SetData erkennt die Datei und soll nun mycomponent als TImage gestalten
s:='einfach nur ein Text'; // SetData erkennt nur Text und stellt nun mycomponent als TMemo dar.
mycomponent.SetData(s);
// einig nötige public propertys
mycomponent.top:=10;
mycomponent.left:=10;
mycomponent.Parent:=Form1;
mycomponent.visible:=true;
end;
Wie ich eine abgeleitete Komponente schreibe weiß ich, ich steige aber nicht dahinter wie man solch eine mit zwei verschiedenen Darstellungs-Arten schreiben kann :(
Gausi - Fr 05.04.13 15:33
Da würde ich von einem TPanel oder Vergleichbarem ableiten und in dem Setter für s entsprechend ein TMemo oder ein TImage auf diesem TPanel dynamisch erzeugen, was dann die entsprechenden Event-Handler durchgereicht bekommt und sich um die Anzeige kümmert.
TheOutlaw - Fr 05.04.13 15:37
Da sitze man an sowas und such und sucht und sucht und auf die einfachste Idee kommt man einfach nicht... Danke... werde es nun einfach so machen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!