Autor Beitrag
JRegier
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Di 24.05.05 16:06 
Hallo, ich habe vor ca. eine Woche angefangen Komponenten zu entwickeln!

Im constructor wo ich Owner übergebe stelle ich auch Owner als Parent der neuen Komponente!
Ist das richtig?

Wenn ich die neue Komponente aus der Komponentenpalette wähle und auf z.B. eine GroupBox klicke dann wird die Komponente ins Formular und nicht in die GroupBox gesetzt!

Ich muß die Komponente dann im Objectinspector auf die GroupBox ziehen!

Wie wird dann Parent bei der Entwicklung einer Komponente richtig gesetzt?

Ich mache das so:Self.Parent := TWinControl(Owner);
Oder z.B habe ich von einer TCustomPanel abgeleitet und ich setze Caption := '';
aber er zeigt mir trotztdem Caption an!

Moderiert von user profile iconTino: Titel geändert.
Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.
Grendel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Di 24.05.05 16:19 
Titel: Re: Frage zu Komponentenentwicklung!!!!!!!!!!!!!!!!!!!!!!!!!
user profile iconJRegier hat folgendes geschrieben:
Im constructor wo ich Owner übergebe stelle ich auch Owner als Parent der neuen Komponente!
Ist das richtig?

Jein! Es ist nicht ganz falsch aber auch nicht richtig. Der Owner ist nicht zwangsläufig das selbe Object wie der Parent.
Üblicherweise weist man bei Steuerelementen den Parent nach den Create manuell zu.
Der Owner ist der Besitzer des Objektes, der es auch wieder freigibt. Der Parent ist das Fensterelement (WinControl) auf dem es angezeigt wird. Manchmal ist es das selbe Object aber nicht zwingend.

user profile iconJRegier hat folgendes geschrieben:
Wenn ich die neue Komponente aus der Komponentenpalette wähle und auf z.B. eine GroupBox klicke dann wird die Komponente ins Formular und nicht in die GroupBox gesetzt!

Also mein Delphi 7 verhält sich nicht so. Da landet der Button in der GroupBox.
Oder passiert das bei einer deiner Komponenten?
Dass wäre dann nämlich der typische Fall von Owner in Parent umgebogen.
Der Owner des Buttons ist das Formular der Parent aber die GroupBox. Wenn Du nun Parent := TWinControl(Owner) setzt wird das Form zum Parent und nicht der Owner.

user profile iconJRegier hat folgendes geschrieben:
Wie wird dann Parent bei der Entwicklung einer Komponente richtig gesetzt?

Normalerweise musst Du dich darum nicht kümmern. Zur Designzeit setzt die IDE den Parent und zur Laufzeit muss man das selber machen.
Wenn Du z.B. einen TButton zur Laufzeit erzeugst musst Du den Parent auch manuell zuweisen.

user profile iconJRegier hat folgendes geschrieben:
Ich mache das so: Self.Parent := TWinControl(Owner);

Lass es. s.o.

user profile iconJRegier hat folgendes geschrieben:
Oder z.B habe ich von einer TCustomPanel abgeleitet und ich setze Caption := '';
aber er zeigt mir trotztdem Caption an!

Dazu müsste ich mal den Code sehen.

Bis neulich ...
JRegier Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Mi 25.05.05 12:41 
Titel: Re: Frage zu Komponentenentwicklung!!!!!!!!!!!!!!!!!!!!!!!!!
Also ich setze auf ein TCustomPanel mehrere Componenten! Wenn ich den Parent des TCustomPanel
nicht gleich setze dann kommt ne Fehlermeldung!

Und das mit dem Caption habe ich einfach bei
GetCaption der published properties auf '' <-leer gesetzt
und Delphi diese function aufruft um Caption anzuzeigen dan wird die
eben '' hmm...
Grendel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Mi 25.05.05 12:45 
Titel: Re: Frage zu Komponentenentwicklung!!!!!!!!!!!!!!!!!!!!!!!!!
user profile iconJRegier hat folgendes geschrieben:
Wenn ich den Parent des TCustomPanel
nicht gleich setze dann kommt ne Fehlermeldung!

Wenn Du den Parent nicht gleich was setzt?

user profile iconJRegier hat folgendes geschrieben:
Und das mit dem Caption habe ich einfach bei
GetCaption der published properties auf '' <-leer gesetzt
und Delphi diese function aufruft um Caption anzuzeigen dan wird die
eben '' hmm...

Sorry, aber ich verstehe beim besten Willen nicht, was Du mir damit sagen möchtest :?

Bis neulich ...
JRegier Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Mi 25.05.05 12:55 
Titel: Re: Frage zu Komponentenentwicklung!!!!!!!!!!!!!!!!!!!!!!!!!
Also hauptsächlich dass Caption det TCustomPanel verschwindet! Als ich habe in den published Properties eine Eigenschaft die Delphi beim erzuegen der Komponente aufruft und da setze ich Caption auf leer -> ''

Oder gibts andere Panels auf die ich bei der Komponentenentwicklung aufsetzen kann?
Grendel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Mi 25.05.05 13:08 
Titel: Re: Frage zu Komponentenentwicklung!!!!!!!!!!!!!!!!!!!!!!!!!
user profile iconJRegier hat folgendes geschrieben:
Wenn ich Parent nicht gleich Owner setze!

Und welche Meldung? Denn eigentlich müssen Parent und Owner nicht gleich sein. Sieht man ja schon dadran, daß Owner TObject und Parent TWinControl ist.

user profile iconJRegier hat folgendes geschrieben:
Also hauptsächlich dass Caption det TCustomPanel verschwindet! Als ich habe in den published Properties eine Eigenschaft die Delphi beim erzuegen der Komponente aufruft und da setze ich Caption auf leer -> ''

Ich verstehe immer noch nicht wo das Problem ist bzw. was Du gemacht hast. Zeig mal den Quellcode her.

user profile iconJRegier hat folgendes geschrieben:
Oder gibts andere Panels auf die ich bei der Komponentenentwicklung aufsetzen kann?

Nö, TCustomPanel ist schon korrekt.

Bis neulich ...
JRegier Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Mi 25.05.05 13:21 
Titel: Re: Frage zu Komponentenentwicklung!!!!!!!!!!!!!!!!!!!!!!!!!
user profile iconGrendel hat folgendes geschrieben:

Ich verstehe immer noch nicht wo das Problem ist bzw. was Du gemacht hast. Zeig mal den Quellcode her.


Hmm.. leider hab ich den Code auf einem anderen Computer!
Und mit dem Caption mach ich schon!

Aber mit dem Parent .. wen ich den Parent vom Panel nicht setze auf Owner da meldet er mir
"Komponente hat kein Übergeordnetes Fenster", wenn ich versuche einer anderen
Componente den Parent auf Panel setzen!