AGB  ·  Datenschutz  ·  Impressum  







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

Feststellen ob eine Komponente vorhanden ist?

Ein Thema von Chemiker · begonnen am 8. Apr 2008 · letzter Beitrag vom 8. Apr 2008
Antwort Antwort
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

Re: Feststellen ob eine Komponente vorhanden ist?

  Alt 8. Apr 2008, 07:27
Moin Chemiker,

meine zur Laufzeit erstellten Komponenten bekommen alle einen eindeutigen Namen. Laut OH soll '' auch gültig sein, aber das scheint dich und mich ja nicht zu interessieren. Hier meine Methode meiner Basiskomponente einen gültigen Namen beim Create zu finden.
Delphi-Quellcode:
procedure TBaseCustomControl.SetFirstName;
var Counter : Integer;
    Component : TComponent;
    NewComponentName : String;
begin
  // neuer Name
  if not Assigned(Application) then begin
    if self.Owner = nil then
      Component := self
  end else
    Component := Application.MainForm;
  Counter := 0;
  NewComponentName := '';
  try
    while NewComponentName = 'do begin
    NewComponentName := GetNewComponentName(
      Copy(ClassName + InttoStr(Counter), 2, Length(ClassName + InttoStr(Counter))),
      Component);
      Inc(Counter);
    end;
  finally
    SetName(NewComponentName);
  end;
end;

function GetNewComponentName(NewName: string; Component: TComponent): String;
var Counter : Integer;
begin
  Result := NewName;
  for Counter := 0 to Component.ComponentCount - 1 do begin
    if Component.Components[Counter].ComponentCount > 0 then
      Result := GetNewComponentName(NewName, Component.Components[Counter]);
    if Result = 'then
    Exit;
    if Component.FindComponent(NewName) <> nil then begin
      Result := '';
      Exit;
    end;
  end;
end;
Ob das nun der Brüller ist, keine Ahnung. Aber es funzt.


Gruß oki
42
  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 17:57 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