AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Parent Problem bei eigener Komponente

Ein Thema von Stegi · begonnen am 11. Mär 2015 · letzter Beitrag vom 23. Mär 2015
Antwort Antwort
Seite 1 von 3  1 23      
Stegi

Registriert seit: 11. Mär 2015
3 Beiträge
 
#1

Parent Problem bei eigener Komponente

  Alt 11. Mär 2015, 14:37
Hallo,

ich habe ein Problem und konnte im www bislang noch keine Lösung finden. Vielleicht fehlen mir auch nur die passenden Suchbegriffe. Vieleicht finde ich hier eine Lösung für mein Problem.

Ich habe mir eine Eigenen Komponente erzeugt. Um das Beispiel verständlich zu halten basiert meine Komponente auf ein TPanel.

Code:
  TMeineKompo = class(TPanel)
  public
    Pan1: TPanel;
    Pan2: TPanel;
    constructor Create(aOwner: TComponent); override;
  end;
Ich registriere die Kompononete entsprechend und kann diese dann auch aus meiner Toolpalete in meinem Dialog ziehen.
Jetzt möchte ich zur Designzeit in dem Dialog weitere Komponenten (z.B. Panel) in das Panel (Pan2) meiner Komponente platzieren. Ich kann zwar ein Panel unter der Komponente hängen, jedoch ist der Parent nicht mein gewünschtes Panel Pan2 sonder die Komponente selbst.

Wie bekomme ich das hin, dass ich weitere Komponenten zur Designzeit in delphi in das Panel Pan2 meiner Komponente packen kann?

Ich hoffe ich konnte mein Problem einigermaßen nachvollziehend erklären.

Viele Grüße
Stegi
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Parent Problem bei eigener Komponente

  Alt 11. Mär 2015, 14:42
Moin und willkommen in der Delphi-PRAXiS.

Nach Deiner Beschreibung fehlt Dir ein Wert im Set "ControlStyle". Dort kannst - musst - Du definieren, dass Du gern als Basis für andere Controls dienen möchtest:
http://docwiki.embarcadero.com/Libra...l.ControlStyle

In etwa wie folgt:

Delphi-Quellcode:
constructor TMeineKompo.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle + [csAcceptsControls];
//...
end;
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Parent Problem bei eigener Komponente

  Alt 11. Mär 2015, 19:11
Ohne es ausprobiert zu haben- Müsste er das nicht durch das Erben von TPanel bereits erledigt haben? Sein Problem ist ja nicht dass man auf dem Designer keine Controls hineinwerfen könne, sondern dass die hineingesteckten nicht direkt im TPanel -Nachfahren, sondern in einem da drin bereits enthaltenen Container landen sollen.

Spontan hätte ich gesagt, dazu müsste man einfach nur das von TWinControl geerbte procedure InsertControl(AControl: TControl); überschreiben. Aber das ist nicht virtuell.

Und somit hätte ich spontan auch keine Idee.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: Parent Problem bei eigener Komponente

  Alt 11. Mär 2015, 21:48
Aber das ist nicht virtuell.
Im Notfall kann man die Insert-Notification behandeln und die bereits hinzugefügte Komponente in das andere Panel verschieben (Parent ändern)

Aber ob der FormDesigner dann noch anbietet diese Komponenten zu bearbeiten, weiß ich auch nicht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Chris211183

Registriert seit: 19. Sep 2013
Ort: Braunschweig
204 Beiträge
 
Delphi 6 Professional
 
#5

AW: Parent Problem bei eigener Komponente

  Alt 12. Mär 2015, 08:54
im Constructor

Delphi-Quellcode:
Pan1 := TMein(bla).Create(Self);
Pan1.Parent := Self;
.
.
.
würde das mit den Panels über nen Setter machen

FPan1 usw
Christian
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: Parent Problem bei eigener Komponente

  Alt 12. Mär 2015, 09:04
Es geht um die Designzeit, da bringt es ja nichts, im Konstruktor den Parent setzen zu wollen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Parent Problem bei eigener Komponente

  Alt 12. Mär 2015, 09:07
Es geht um die Designzeit, da bringt es ja nichts, im Konstruktor den Parent setzen zu wollen.
Wieso nicht? Der Konstruktor einer Komponente wird auch zur Designzeit aufgerufen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

AW: Parent Problem bei eigener Komponente

  Alt 12. Mär 2015, 09:21
Ja nee is klar.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Chris211183

Registriert seit: 19. Sep 2013
Ort: Braunschweig
204 Beiträge
 
Delphi 6 Professional
 
#9

AW: Parent Problem bei eigener Komponente

  Alt 12. Mär 2015, 09:33
Es geht um die Designzeit, da bringt es ja nichts, im Konstruktor den Parent setzen zu wollen.
Wieso nicht? Der Konstruktor einer Komponente wird auch zur Designzeit aufgerufen
Denke ich auch...
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Parent Problem bei eigener Komponente

  Alt 12. Mär 2015, 09:41
Ja nee is klar.
Dann erkläre mir doch bitte einmal, was auf dieser Seite (TComponentState ) die Werte für csDesigning und csDesignInstance bedeuten.

Wenn also eine Komponente zur Designzeit niemals auch nur irgendwas da zum Leben erweckt, wozu sind denn diese komischen Dingsbums-Dinger da?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:40 Uhr.
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