Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TImage als Parent (https://www.delphipraxis.net/121567-timage-als-parent.html)

m.r.m. 30. Sep 2008 13:50


TImage als Parent
 
Gibt es eine Möglichkeit TImage so zu verändern, dass es ähnlich wie TPanel Parent von anderen Controls sein kann?

jfheins 30. Sep 2008 13:57

Re: TImage als Parent
 
Wenn TImage von TGraphicControl abstammt nicht, wenn es von TWinControl abstammt, ja.

Hab grad kein Delphi zur Hand, aber das wäre meine erste Überlegung.

uligerhardt 30. Sep 2008 13:58

Re: TImage als Parent
 
Zwei Ideen, beide ungetestet:
  • Eine Komponente ableiten und im Konstruktor csAcceptsControls zu ControlStyle hinzufügen.
  • Zur Laufzeit die Eigenschaft Parent der Kind-Controls auf das Image umbiegen.
HTH,
Uli.

m.r.m. 30. Sep 2008 14:02

Re: TImage als Parent
 
Zitat:

Zitat von uligerhardt
Eine Komponente ableiten und im Konstruktor csAcceptsControls zu ControlStyle hinzufügen.

Wie sieht der Code dafür aus?

uligerhardt 30. Sep 2008 14:34

Re: TImage als Parent
 
Zitat:

Zitat von m.r.m.
Zitat:

Zitat von uligerhardt
Eine Komponente ableiten und im Konstruktor csAcceptsControls zu ControlStyle hinzufügen.

Wie sieht der Code dafür aus?

Wofür? Das Ableiten? Den Konstruktor überschreiben? Das Manipulieren von ControlStyle?

m.r.m. 30. Sep 2008 14:41

Re: TImage als Parent
 
Ich habe jetzt folgendes geschrieben, aber das funktioniert nicht.
Delphi-Quellcode:
unit ImagePanel;

interface

uses
  SysUtils, Classes, Controls, ExtCtrls;

type
  TImagePanel = class(TImage)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    constructor Create(AOwner: TComponent); override;
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Standard', [TImagePanel]);
end;

constructor TImagePanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle + [csAcceptsControls];
end;

end.

uligerhardt 30. Sep 2008 14:50

Re: TImage als Parent
 
Zitat:

Zitat von m.r.m.
Ich habe jetzt folgendes geschrieben,

Schaut soweit gut aus.
Zitat:

Zitat von m.r.m.
aber das funktioniert nicht.

Was meinst du denn mit "funktioniert nicht"? Gibt's ne Fehlermeldung?
Hast du das Ganze in der IDE installiert - d.h. in ein Package gepackt und dieses compiliert und installiert?

m.r.m. 30. Sep 2008 14:57

Re: TImage als Parent
 
Zitat:

Zitat von uligerhardt
Hast du das Ganze in der IDE installiert - d.h. in ein Package gepackt und dieses compiliert und installiert?

Ja.

Ich konnte nicht wie bei Panels andere Controls in mein TImagePanel einfügen.

Hawkeye219 30. Sep 2008 15:02

Re: TImage als Parent
 
Hallo,

auch durch Ableiten kann man aus einem TImage keinen TWinControl-Nachfolger machen. Es wird also weder über ein Controls-Array verfügen, noch kann es Parent eines anderen Controls werden. Die erste Überlegung von Julius (Beitrag #2) war somit richtig.

Warum möchtest du das Image unbedingt als Parent haben? Kannst du dein Ziel nicht auf einem anderen Weg erreichen?

Gruß Hawkeye

m.r.m. 30. Sep 2008 15:29

Re: TImage als Parent
 
Mir würde auch ein transparentes Panel ausreichen.
Dieses müsste aber auch auf einem GlassFrame transparent sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr.
Seite 1 von 2  1 2      

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