Autor Beitrag
TheOutlaw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19


Delphi 6-7,2007
BeitragVerfasst: Fr 05.04.13 15:22 
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8549
Erhaltene Danke: 478

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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.

_________________
We are, we were and will not be.
TheOutlaw Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19


Delphi 6-7,2007
BeitragVerfasst: 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