AGB  ·  Datenschutz  ·  Impressum  







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

FindComponent findet Label nicht

Ein Thema von day · begonnen am 30. Aug 2006 · letzter Beitrag vom 29. Mär 2011
Antwort Antwort
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#1

Re: FindComponent findet Label nicht

  Alt 30. Aug 2006, 11:42
Hi,

alternativ könntest Du mit
Delphi-Quellcode:
for i := 0 to Panel.ControlCount-1 do
   if TContol(Panel.Controls[i]).Name = xName then
   begin
      lFound := true;
      break;
   end;
über die Controls des Panels oder Groupbox etc. laufen und
Deine Componente bzw. Control finden.
(Das könnte man natürlich auch in eine Funktion FindControl kapseln)

Grüße

Frank
Frank
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
295 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: FindComponent findet Label nicht

  Alt 29. Mär 2011, 09:37
Moin Leute,

ich musste mich gerade mit dem Thema auseinandersetzen.

Also:
Der Owner ist die Form. Ganz wichtig. Jedes Control muss beim Create die Form übergeben bekommen. Die Form "besitzt" alle Controls, ist halt wie der König und sein Folk.

Bei dem neu erzeugten Control muss Parent auf seinen Vorfahr gesetzt werden, damit da die Verbindung für die Gui da ist.

FindComponent: NUR in der Form aufrufen. Die Funktion durchläuft die Components, die nur in der Form gesetzt sind.

FindControl: Die Funktion läuft über die Contols, die Nachfahren.
Will man über FindControls eine Komponente finden, muss man von der Form aus rekursiv alle Controls durchlaufen. Das kann man sich sparen, indem man gleich von der Form aus FindComponent aufruft.

Man kann Controls umhängen und verschieben, wie man will. In Components bleiben sie erhalten. Wird ein Control freigegeben, verschwindet der Eintrag auch aus dem Components.
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: FindComponent findet Label nicht

  Alt 29. Mär 2011, 09:50
Einmal genügt doch, dafür muss man doch keine Thread-Leichen aus dem Keller zerren.
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 MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
295 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: FindComponent findet Label nicht

  Alt 29. Mär 2011, 09:58
Die Seelen der Leichen irrten noch umher weil das Thema noch nicht beendet war.
Spaß beiseite. Wenn jemand auf der Suche ist, ärgert er sich wieder weil es heißt, jetzt funktioniert es, ich weiß aber nicht warum.
Sind wir hier nicht auf der Suche einer Lösung und nicht einer Halben?
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: FindComponent findet Label nicht

  Alt 29. Mär 2011, 10:02
Trotzdem muss man doch nicht uralte Threads raussuchen, bei denen die Lösung passt, sonst würde das Forum ganz schnell aus allen Nähten platzen. Da sucht man sich exemplarisch einen raus (z.B. den aktuellsten) und postet dort.
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
 
#6

AW: FindComponent findet Label nicht

  Alt 29. Mär 2011, 10:13
Noch besser wäre es einen neuen Thread zu eröffnen und die alten Threads darin zu verlinken.

Und dann auch noch irreführende Aussagen:
Der Owner ist die Form. Ganz wichtig. Jedes Control muss beim Create die Form übergeben bekommen. Die Form "besitzt" alle Controls, ist halt wie der König und sein Folk.
[...]
Wird ein Control freigegeben, verschwindet der Eintrag auch aus dem Components.
wenn ein Owner angegeben wird, dann ist dieser Owner für die Freigabe der Instanz zuständig.
(Darum ja auch der Unterschied Owner und Parent)
Dann ist es auch ganz doof so eine Instanz einfach so wieder freizugeben.

Faustregel:
Also wenn ein Owner mit angegeben wird, dann soll sich der auch um die Freigabe kümmern.
Will ich mich selber darum kümmern, dann keinen Owner mitgeben!

Ansonsten wird es kompliziert oder es knallt halt.
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 himitsu
himitsu

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

AW: FindComponent findet Label nicht

  Alt 29. Mär 2011, 16:39
Zitat:
FindComponent: NUR in der Form aufrufen. Die Funktion durchläuft die Components, die nur in der Form gesetzt sind.
Wieso nur da?

Man muß FindControl nur innerhalb des Namesspaces aufrufen, welcher als Owner für die gesuchten Componenten verwendet wurde.

Es ist also vollkommen egal wo die erstellten Komponenten verwaltet werden (also was der Owner ist) und von wo aus FindControl aufgerufen wird.

Die VCL nutzt, für alle über die DFM geladenen Componenten, die zugehörige Form als Owner, weswegen man innerhalb einer Methode der Form FindControl direkt aufrufen kann und da dann alles findet, wovon die Form als Owner fungiert.
Ein Therapeut entspricht 1024 Gigapeut.
  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 02:44 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 by Thomas Breitkreuz