Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   wert "durchreichen" ? (https://www.delphipraxis.net/159931-wert-durchreichen.html)

khh 19. Apr 2011 10:30

wert "durchreichen" ?
 
hallo zusammen,
ich habe eine Form mit einem Eingabefeld Tedit.

Auf dem Form befindet sich auch eine Scollbox mit diversen Buttons. (Artikelgruppen)
Beim Klick auf einen dieser Buttons wird (vom Artikelgruppenbutton) eine weitere Scollbox mit weiteren Buttons (Artikel) erzeugt und auf dem Form angezeigt.
Beim Klick auf einen dieser Artikel-Buttons braucht dieser Artikel-Button den Wert der in besagtem Tedit steht um diesen in eine DB-tabelle einzutragen.
Ohne Zirkelbezug muss ich den Wert durch alle übergelagerten Instanzen( also Scollbox, Button, scollbox) durchreichen um ihn in dem Button zur Verfügung zu haben, oder gibts noch ne andere Möglichkeit?

Wie gesagt, Zirkelbezug möchte ich, wenn möglich vermeiden.

danke für eure ideen
Gruss KHH

shmia 19. Apr 2011 10:36

AW: wert "durchreichen" ?
 
Zitat:

Zitat von khh (Beitrag 1095971)
... muss ich den Wert durch alle übergelagerten Instanzen( also Scollbox, Button, scollbox) durchreichen ...

Heisst das, dass du Ableitungen von TScrollbox und TButton in deinem Programm hast?

Deep-Sea 19. Apr 2011 10:36

AW: wert "durchreichen" ?
 
Du hast also nur eine einzige Form? Wieso greifst du dann nicht einfach auf das Edit zu? :gruebel:

khh 19. Apr 2011 10:38

AW: wert "durchreichen" ?
 
Zitat:

Zitat von shmia (Beitrag 1095977)
Zitat:

Zitat von khh (Beitrag 1095971)
... muss ich den Wert durch alle übergelagerten Instanzen( also Scollbox, Button, scollbox) durchreichen ...

Heisst das, dass du Ableitungen von TScrollbox und TButton in deinem Programm hast?

richtig,
und Tbutton erzeugt beim Klick eine weitere Scollbox mit weiteren Buttons.
Diese Buttons benötigen den Wert aus dem TEdit.

khh 19. Apr 2011 10:39

AW: wert "durchreichen" ?
 
Zitat:

Zitat von Deep-Sea (Beitrag 1095978)
Du hast also nur eine einzige Form? Wieso greifst du dann nicht einfach auf das Edit zu? :gruebel:

wie?

wie bekomme ich den Wert an den Button übergeben, von dem die Form ja gar nix weis :-(

shmia 19. Apr 2011 10:44

AW: wert "durchreichen" ?
 
Ich habe nach einer Ableitung gefragt; anscheinend reden wir aneinander vorbei:
Das ist eine (relativ sinnfreie) Ableitung von TButton:
Delphi-Quellcode:
type
  TMySpezialButton = class(TButton)
  ...
  public
    property ArtkelNr:string ...;
  end;
Verwendest du also abgeleitete Controls?

khh 19. Apr 2011 10:47

AW: wert "durchreichen" ?
 
Zitat:

Zitat von shmia (Beitrag 1095983)
Ich habe nach einer Ableitung gefragt; anscheinend reden wir aneinander vorbei:
Das ist eine (relativ sinnfreie) Ableitung von TButton:
Delphi-Quellcode:
type
  TMySpezialButton = class(TButton)
  ...
  public
    property ArtkelNr:string ...;
  end;
Verwendest du also abgeleitete Controls?


ja, genau so.
Dieser MySpezialbutton erzeugt eine Scollbox mit MyspezialArtikelButtons, die beim Klick eben jenen Wert aus dem TEdit benötigen.

Deep-Sea 19. Apr 2011 10:52

AW: wert "durchreichen" ?
 
Das ist mir gerade zu verwirrend ...
Ein Button erzeugt Controls, von denen er nicht der Parent ist? (Kann er ja auch nicht.)
Wer ist denn nun der Owner dieser Controls, wer der Parent?

khh 19. Apr 2011 11:00

AW: wert "durchreichen" ?
 
Zitat:

Zitat von Deep-Sea (Beitrag 1095989)
Das ist mir gerade zu verwirrend ...
Ein Button erzeugt Controls, von denen er nicht der Parent ist? (Kann er ja auch nicht.)
Wer ist denn nun der Owner dieser Controls, wer der Parent?



Parent der Scrollboxen ist jeweils das Form.
parent der Buttons die zugehörende Scrollbox.

Bbommel 19. Apr 2011 11:10

AW: wert "durchreichen" ?
 
Wenn das Edit "Edit1" hieße, das Form "Form1" bzw. "TForm1" und der neue Button "ButtonNeu" (ja, verdammt kreativ, ich weiß), dann müsstest du doch von dem neuen Button aus so dorthin kommen:

Delphi-Quellcode:
TForm1(ButtonNeu.parent.parent).Edit1.Text

Mit dem ersten Parent bist du bei der Scrollbox, von da aus mit dessen Parent beim Form1 und dort findest du ja dann deine Edit-Komponente wieder.

Bis denn
Bommel


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 Uhr.
Seite 1 von 2  1 2      

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