Einzelnen Beitrag anzeigen

Mazen

Registriert seit: 6. Okt 2011
66 Beiträge
 
Delphi 7 Professional
 
#1

Delphi Auf Komponente in zur Laufzeit festgelegtem Frame zugreifen

  Alt 17. Mai 2013, 12:54
Hallo Leute,
wahrscheinlich ist der Titel mehr als verwirrend, ich hoffe ich kann mein Anliegen trotzdem möglichst verständlich klar machen.

Ich möchte je nach ausgewähltem Item einer Combobox verscheidene andere Komponenten anzeigen. Wird z.B. Item 1 ausgewählt soll cbMenge und cbGewicht eingeblendet werden. Wird aber Item 2 ausgewählt soll nurnoch cbMenge angzeigt werden.

Das wäre jetzt ein Beispiel mit 2 Möglichen Optionen, aber in meinem Fall sind es mehrere.

Die einfachste Möglichkeit wäre wohl einfach mit der Visible Eigenschaft der jeweiligen Komponente zu arbeiten, aber ich möchte das nachfolgende Komponenten dann "nachrücken" um den freigewordenen Raum zu füllen. Und das kam mir etwas aufwändig vor.

Also habe ich für jedes Item der Combobox ein Frame angelegt mit entsprechenden Komponenten die sichtbar sein sollen.
Wie ich diese Frames einblende weiß ich schon, nur wie kann ich nun auf die in den Frames liegenden Komponenten zugreifen? Es ist ja nicht immer das gleiche Frame eingebunden.

Mein Ansatz sah so aus:
Wenn in der Combobox ein Item ausgewählt wird weise ich einer von mit angelegten Instanz der Klasse TFrame (frameEins) das entsprechende Frame zu.

Delphi-Quellcode:
  if liste = '16006then
  begin
    frameEinst := frm16006;
  end else if liste = '16008then
  begin
    frameEinst := frm16008;
  end;
Und so versuche ich dann auf die Komponenten der Frames zuzugreifen:

Delphi-Quellcode:
parameter[11] := frameEinst.cbMenge.Text;
parameter[12] := frameEinst.cbGewicht.Text;
Nur bekomm ich dann natürlich die Meldung 'Undefinierter Bezeichner 'cbMenge' da diese Komponente zum Entwicklungszeitpunkt ja noch gar nicht in frameEinst ist.

Wie kann ich das lösen?

Gruß,
Matthias
  Mit Zitat antworten Zitat