AGB  ·  Datenschutz  ·  Impressum  







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

Parent eines Objektes herausfinden

Ein Thema von MisterNiceGuy · begonnen am 11. Jan 2010 · letzter Beitrag vom 18. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#1

Parent eines Objektes herausfinden

  Alt 11. Jan 2010, 22:07
Hi, ich hab schon das Forum durchsucht, bin aber nicht auf die Lösung gestoßen.

Mein Problem ist folgendes:
Ich habe in meinem Projekt dieses Struktur:
Delphi-Quellcode:
type TConfig = class(TObject)
   privat
      a:String;
      ConfigForm:TForm;
end;
Jetzt möchte ich wenn ich meine Form (ConfigForm) erstelle, den String "a" füllen.
Ich hätte gedacht, dass das ganze dann so gehen würde:
Delphi-Quellcode:
procedure ConfigForm.onCreate(...);
   (self.parent as TConfig).a := 'asd';
end;
Geht aber natürlich nicht. Auch mit (self.owner as TConfig).a komme ich nicht weiter.
Weiß jemand eine Lösung?

Danke schonmal!
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Parent eines Objektes herausfinden

  Alt 11. Jan 2010, 22:28
Versuch es mal mit Sender
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#3

Re: Parent eines Objektes herausfinden

  Alt 11. Jan 2010, 22:33
Sender hat weder Parent noch Owner, geht also leider auch nicht.

Mensch, dachte das wäre einfacher...
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Lumikki

Registriert seit: 11. Jan 2010
Ort: Hessen
3 Beiträge
 
#4

Re: Parent eines Objektes herausfinden

  Alt 11. Jan 2010, 22:34
Warum schreibst du (self.parent as TConfig) davor?
Wenn du das Object erzeugt hast und in dieser Ebene quasi arbeitest, musst du doch gar nichts davor schreiben. Die Variable ist doch innerhalb der Klasse deklariert.
Also einfach
a:= '...';
oder täusch ich mich da?
Allerdings hab ich bis jetzt bei der Erzeugung neuer Klassen immer nur visuelle Komponenten benutzt, (zB ein Panel abgeleitet,) bei denen man dann im Constructor direkt einen parent angeben musste, um das Objekt sichtbar zu machen. Ich weiß nicht wie das bei dir ist.

Liebe grüße =)

edit: Sender... also brauch die Variable irgendeinen Vorsatz? *interessiert ist*
Lucie
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#5

Re: Parent eines Objektes herausfinden

  Alt 11. Jan 2010, 22:38
Ne, wenn ich nur "Parent" schreibe, arbeite ich eine Ebene zu tief.
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

Re: Parent eines Objektes herausfinden

  Alt 11. Jan 2010, 22:42
Was zum Teufel machst du da? ConfigForm kennt keinerlei Instanz von TConfig, außer du hast eine Variable in ConfigForm, der du eine Referenz übergeben kannst. Das sinnvollste wäre, dass du TForm erweiterst, entweder um eine Referenz-Variable oder um eine entsprechende Methode.

Oder du gibst TConfig ein Handle mit und schickst aus ConfigForm eine Nachricht.

Aber das was du vor hast geht so nicht.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#7

Re: Parent eines Objektes herausfinden

  Alt 11. Jan 2010, 22:54
Das ist doch mal eine Aussage! Alles klar, dann geb ich der Form eine Referenz auf das Parentobjekt mit.
Danke!
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  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
 
#8

Re: Parent eines Objektes herausfinden

  Alt 11. Jan 2010, 23:08
Aber das ist doch auch irgendwie nix ...

Warum erstellst du nicht einen Nachfahren von TForm und packst dort eine Eigenschaft rein:
Delphi-Quellcode:
type
  TConfigForm = class( TForm )
    private
      FInfoFuerParent : string;
    public
      property InfoFuerParent : string read FInfoFuerParent write FInfoFuerParent;
    end;
Und alle Forms, die du dann haben möchtest leitest du wiederum von dieser Klasse ab.
Delphi-Quellcode:
type
  TEineTolleForm = class( TConfigForm )
  end;
Jetzt zu deiner Ausgangsklasse:
Delphi-Quellcode:
type
  TConfig = class(TObject)
    privat
      // a : String; Braucht kein Mensch mehr
      ConfigForm : TConfigForm;
  end;
Innerhalb der Klasse TConfig kannst du jetzt auf die Eigenschaft zugreifen:
ConfigForm.InfoFuerParent
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 s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#9

Re: Parent eines Objektes herausfinden

  Alt 11. Jan 2010, 23:10
Aber evtl. brauch er diese Variable als Property oder dergleichen? Oder hat diese eben *beabsichtigt* dort angelegt. Wobei dein Rat nicht missachten ist!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  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
 
#10

Re: Parent eines Objektes herausfinden

  Alt 11. Jan 2010, 23:18
Zitat von s.h.a.r.k:
Aber evtl. brauch er diese Variable als Property oder dergleichen? Oder hat diese eben *beabsichtigt* dort angelegt. Wobei dein Rat nicht missachten ist!
Wer hindert ihn daran, dass als property zu veröffentlichen?
Delphi-Quellcode:
type
  TConfig = class(TObject)
    privat
      // a : String; Braucht kein Mensch mehr
      ConfigForm : TConfigForm;
      function GetInfo : string;
      procedure SetInfo( Value : string );
    public
      property Info : string read GetInfo write SetInfo;
  end;

function TConfig.GetInfo : string;
  begin
    RESULT := ConfigForm.InfoFuerParent;
  end;

procedure TConfig.SetInfo( Value : string );
  begin
    ConfigForm.InfoFuerParent := Value;
  end;
Ich nicht, und Delphi schon mal garnicht
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
Antwort Antwort
Seite 1 von 2  1 2      


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 19:39 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