AGB  ·  Datenschutz  ·  Impressum  







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

Komponenten-Entwicklung-Problem

Ein Thema von DrTosh · begonnen am 3. Dez 2015 · letzter Beitrag vom 4. Dez 2015
Antwort Antwort
DrTosh

Registriert seit: 3. Dez 2015
7 Beiträge
 
#1

Komponenten-Entwicklung-Problem

  Alt 3. Dez 2015, 14:44
Guten Tag,
Ich habe eine Komponente geschrieben, die von TPanel abgeleitet ist.
Dieses erzeugt ein weiteres Panel.
Soweit kein Problem.
Ich möchte aber, das auch das zweite Panel aus dem Designer heraus größer gemacht werden kann
oder weitere Objekte darauf gelegt werden können.
Damit dies gewährleistet wird, muss der Owner von dem zweiten Panel
ebenfalls die Form sein, auf der die Komponente auch liegt.
Das klappt auch soweit.
Das Problem ist nur, das es zwei stellen gibt, wo das zweite Panel erzeugt wird.
Einmal in meiner Komponente und einmal von der Form selber.
Wenn das Programm startet, ist das kein Problem, da ich in der Komponente nach
dem csDesigning Flag frage und daher nicht noch einmal erzeuge.

Das Porblem tritt erst auf, wenn ich mein Projekt schließe und wieder
öffne, dann erzeugt die Form und meine Komponente ein zweites Panel und
ich habe dieses nun doppelt.

Ich habe bereits versucht in dem Constructor das doppelte Panel direkt wieder zu
zerstören, was natürlich nur Zugriffsverletzungen aufwirft. Das ganze auch im AfterConstruction.

Kann ich irgendwie im Create entscheiden, dass diese Komponente doch nicht erzeugt wird??

Ich hoffe irgendjemand kann mir da helfen D

MfG
DrTosh
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Komponenten-Entwicklung-Problem

  Alt 3. Dez 2015, 15:42
Hallo DrTosh und herzlich willkommen.

So ganz genau kann ich Deine Erklärung nicht nachvollziehen.
Warum soll das zweite Panel als Owner das Formular haben?

Schau mal hier -> http://www.delphipraxis.net/79726-un...der-gruen.html
ob Du hier eine Anregung findest.

Die Subcontrols werden von dem Maincontrol erzeugt und in der DFM serialisiert.

Wenn das Subcontrols zum Formular gehören sollen, dann darfst Du das nicht aus Deinem Hauptcontrol erzeugen sondern nur in Deinem Formular und es dann einer Property Deines Hauptcontrols zuweisen (wie ein Dataset zu einem DBTable).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
DrTosh

Registriert seit: 3. Dez 2015
7 Beiträge
 
#3

AW: Komponenten-Entwicklung-Problem

  Alt 4. Dez 2015, 18:17
Erstmal vielen Dank für deine Antwort.
Ich bin deinem Link gefolgt, jedoch hilft der mir nicht weiter,
weil du ein Subcomponent kreirst.
Das möchte ich aber eben nicht, weil ich das zweite Panel auch im IO
mit der Maus größer und kleiner machen will und vorallem weitere Koponenten
darauf droppen lassen möchte.
Das geht nur wenn es ein eigenständiges Object ist und eben nicht "nur" ein
SubComponent.

Ich würde es aber gerne dabei belassen, das mein MainControl die weiteren
selber erzeugt, weil ich zur laufzeit mit ihnen agiere.

Mit dem Zuweisen ist an sich ein guter Anhaltspunkt. Ich glaube daraus lässt
sich vielleicht was machen.

Erstmal vielen Dank,
ich werde mich nochmal melden
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Komponenten-Entwicklung-Problem

  Alt 4. Dez 2015, 18:24
Ja, dann erzeuge eine oder mehrere Properties, denen Du dann bei Bedarf externe Panels zuweisen kannst (oder die halt sonst nil bleiben).

Ich denke, die Zuweisung müsste dann die IDE schon automatisch ermöglichen.
Ggf. frag halt nochmal nach.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:49 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