AGB  ·  Datenschutz  ·  Impressum  







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

Label zur Laufzeit - Parent

Ein Thema von delphinia · begonnen am 12. Jan 2011 · letzter Beitrag vom 29. Mär 2011
Antwort Antwort
Seite 2 von 2     12   
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Label zur Laufzeit - Parent

  Alt 12. Jan 2011, 15:01
scheint nicht so!

ShowMessage((FindComponent('gb_' + IntToStr(tab.FieldAsInteger(tab.FieldIndex['pid']))) as TGroupBox).Name); Gibt ne Zugriffsverletzung..

Warum findet FindComponent die Box nicht? Die ist ja da ich sehe sie
Liegt das daran das die Box zur Laufzeit in eine zur Laufzeit erstellte Page (TpageControl) erstellt wird?
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#12

AW: Label zur Laufzeit - Parent

  Alt 12. Jan 2011, 15:09
es geht ja nicht ums sehen. Dann prüfe nochmal, wie du auf den Namen kommst.

Eine AV scheint mir hier aber sehr komisch. Steht nicht zufällig dabei, dass das Objekt nicht nach TGroupBox gecastet werden kann? Ansonsten hast du ne Komponente erwischt, die die Eigenschaft Name nicht hat.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Label zur Laufzeit - Parent

  Alt 12. Jan 2011, 15:55
Wie ist es, wenn Du DeinTabSheet.FindComponent verwendest?
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 himitsu
himitsu

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

AW: Label zur Laufzeit - Parent

  Alt 12. Jan 2011, 16:10
Wenn FindComponent nichts findet, dann gibt es NIL zurück.

 Parent := (FindComponent('gb_' + IntToStr(tab.FieldAsInteger(tab.FieldIndex['pid']))) as TGroupBox); .
Hier gab es deswegen noch kein Problem, außer daß .Parent auf NIL gesetzt wurde.

ShowMessage((FindComponent('gb_' + IntToStr(tab.FieldAsInteger(tab.FieldIndex['pid']))) as TGroupBox).Name); .
Wärend man hier auf .Name des "nicht" gefunden Objekts zugreifen wollte, was natürlich knallt.

Ergo: FindComponent findet nichts.
- Stimmt der Name?
- Wird im richtigen Owner gesucht?

Das was man beim Erstellen der GroupBox als Owner angegeben hat, darin muß man auch mit FindComponent suchen, um Diese wiederzufinden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Label zur Laufzeit - Parent

  Alt 13. Jan 2011, 10:35
Klar, woher soll FindComponent denn auch wissen, von welchem Objekt es die Unterobjekte durchsuchen soll. (Wenn man ihm es nicht sagen kann.)
Da ich es grad noch gesehn hab,

Wieso sollte man es diesem nicht mitgeben können?

Delphi-Referenz durchsuchenFindComponent ist eine Methode und Funktion.
Es steckt in TComponent damit auch in TForm.
Wenn man dieses nun aus einer Methode seiner Form aufruft, dann sucht es natürlich in TForm und findet somit alles, von welchem die Form der Owner ist.
Da die VCL die DFMs so läd, daß die Form von allen enthaltenen Komponenten der Owner ist, wird normalerweise auch alles gefunden, welches über die DFM automatisch erstellt wurde,
was aber nicht automatisch auf alles zutrifft, welches man manuell erstellt.

Heißt also, wenn man das FindComponent einer anderen Komponente aufruft, dann findet man das in dieser Komponente verwaltete Zeug.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Label zur Laufzeit - Parent

  Alt 13. Jan 2011, 10:39
Wenn man diese Kompos aber selber erzeugt, sollte man auch die Referenzen direkt ansprechen können
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

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

AW: Label zur Laufzeit - Parent

  Alt 29. Mär 2011, 09:40
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
Antwort Antwort
Seite 2 von 2     12   


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 03:42 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