AGB  ·  Datenschutz  ·  Impressum  







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

Komponente mit ChildControls entwickeln

Ein Thema von torud · begonnen am 21. Okt 2010 · letzter Beitrag vom 27. Okt 2010
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

AW: Komponente mit ChildControls entwickeln

  Alt 21. Okt 2010, 19:58
hm, Name scheint leer zu sein.

Siehe nun etwas andere Fehlermeldung:

Im Projekt Project1.exe ist eine Exception der Klasse EComponentError aufgetreten. Meldung: 'Komponente mit der Bezeichnung _DataToolbar existiert bereits'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Komponente mit ChildControls entwickeln

  Alt 21. Okt 2010, 20:34
Wenn Du einer Komponente einen Namen gibst, muss der in der Anwendung eindeutig sein.
Wenn Du Komponenten zur Laufzeit erzeugst, wird dieser jedoch erst mal kein Name zugewiesen.

Ich habe das mal so gelöst:

Delphi-Quellcode:
constructor TXyz.Create(AOwner: TComponent);
begin
  inherited;
  Name := FindUniqueName(ClassName);
end,
Delphi-Quellcode:
unit ssClasses;

interface

function FindUniqueName(BaseName: String; OwnerName: String = ''): String;

implementation

uses
  SysUtils, Forms, Windows;

var
  UN: LongWord = 0;

function FindUniqueName(BaseName: String; OwnerName: String = ''): String;
var
  N: String;
begin
  if OwnerName <> 'then
    BaseName := OwnerName + '_' + BaseName;
  BaseName := BaseName + '_';
  Inc(UN);
  N := BaseName + IntToStr(UN);
  Result := N;
  //OutputDebugString(PChar(N));
end;

end.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Komponente mit ChildControls entwickeln

  Alt 21. Okt 2010, 21:03
Jede Komponente, welche als "Owner" fungiert, kann bei ihren Childs keine mehrfachen Namen verwalten.
>>> Namen müssen eindeutig sein.

Einzige Ausnahme ist "kein Name", ala '' .

Dynamisch erstellte Komponenten müssen/können eh ohne Name genutzt werden, da man sie auch über ihre Instanz referenzieren/verwalten kann.
(ist auch schneller/optimaler, als FindComponent)

Es ist also nicht nötig an seine SubKomponenten Namen zu vergeben.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (21. Okt 2010 um 21:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Komponente mit ChildControls entwickeln

  Alt 21. Okt 2010, 21:07
Richtig, eine Namensvergabe kann aber beim Debuging hilfreich sein.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Komponente mit ChildControls entwickeln

  Alt 21. Okt 2010, 21:45
ich kann hier nichts testen aber wenn Du Namen verwenden willst
warum erzeugst Du hier auf AOwner und nicht auf self?
FToolbar := TAdvToolBar.Create(AOwner);
FToolbar.Name := 'DataToolbar';
Wenn Du wg. Eigenheiten des TAdvToolBar tatsächlich auf Owner "Createn" muß knallt es bei vergebenem Namen auf dem Owner.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Komponente mit ChildControls entwickeln

  Alt 21. Okt 2010, 21:49
Bei mehreren Instanzen würde dann mehrfach der gleiche Name vergeben. Das ist unzulässig.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Komponente mit ChildControls entwickeln

  Alt 21. Okt 2010, 22:11
@stahli
jepp, allerdings nur wenn er wie in seinem bisherigen Code Owner verwendet...

Die Namen müssen nur innerhalb des Owners eindeutig sein, bei Self wäre es jedes mal ein neuer Owner.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  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 18:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz