AGB  ·  Datenschutz  ·  Impressum  







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

Dynamischer Eigenschaftsdialog

Ein Thema von Phunkafizer · begonnen am 20. Mär 2017 · letzter Beitrag vom 22. Mär 2017
Antwort Antwort
Phunkafizer

Registriert seit: 9. Mär 2005
Ort: Fürth
18 Beiträge
 
#1

Dynamischer Eigenschaftsdialog

  Alt 20. Mär 2017, 22:33
Hallo liebe Delphingemeinde,

Ich brauche für meine Anwendung einen Dialog, dessen Inhalte sich je nach zu bearbeitenden Objekt ändern sollen. Angenommen ich habe ein TOfenrohr, TBratwurst, TDachlatte, die alle von TDings abgeleitet sind. Je nachdem welches Objekt ich zum Bearbeiten anklicke sollen in einer Box verschiedene Controls dargestellt werden, z.B. für das Ofenrohr ein Slider für den Durchmesser, bei TBratwurst eine Checkboxen und ein Colorwheel. Wie könnte man so was aufbauen?

Stefan
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: Dynamischer Eigenschaftsdialog

  Alt 20. Mär 2017, 23:49
Für jeden Nachkommen von TDings ein Frame machen, dass die entsprechende Darstellung enthält.

Das konkret benötigte Frame wird sichtbar gemacht, die anderen unsichtbar.

Oder

Für jeden Nachkommen von TDings einen Dialog machen und TDings-nachkommenabhängig dann den passenden Dialog nutzen.
Der TDings-Dialog kann dann der Vorfahre der Dialog für die TDings-Nachkommen sein.

Quasi sowas:

TDings -> TDingsDialog
TOfenrohr -> TOfenrohrDialog
TBratwurst -> TBratwurstDialog
TDachlatte -> TDachlatteDialog

so, wie TOfenrohr, TBratwurst und TDachlatte Nachkommen von TDings sind, werden die Dialoge Nachkommen von TDingsDialog.

Oder

Für alles, was zu TDings gehört einen Dialog machen und nachkommenabhängig dort die "Spezialitäten" per GroupBox, Panel ... sichtbar machen.

Oder

Könnte der Dialog eine Methode von TDings sein, wobei er für die Nachkommen entsprechend angepasst wird?

Geändert von nahpets (21. Mär 2017 um 11:58 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.379 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Dynamischer Eigenschaftsdialog

  Alt 21. Mär 2017, 07:35
Für jeden Nachkommen von TDings ein Frame machen, dass die entsprechende Darstellung enthält.
...
Für alles, was zu TDings gehört einen Dialog machen und nachkommenabhängig dort die "Spezialitäten" per GroupBox, Panel ... sichbar machen.
Ein TFrame schlage ich vor.
  Mit Zitat antworten Zitat
Phunkafizer

Registriert seit: 9. Mär 2005
Ort: Fürth
18 Beiträge
 
#4

AW: Dynamischer Eigenschaftsdialog

  Alt 21. Mär 2017, 16:34
Danke für die Idee mit dem Frame! Habe mir gedacht ich könnte ja in TDings eine virtuelle Methode einbauen wie
Function GetFrame: Tframe

Und z.B. in TBratwurst wird Bratwurstframe zurückgegeben. Wie schaffe ich es dann dynamisch etwa in einem Panel auf dem Hauptformular das entsprechende Frame zur Laufzeit einzublenden?

Stefan
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Dynamischer Eigenschaftsdialog

  Alt 21. Mär 2017, 16:40
Eher eine Faktory bei der du für jede Fachklasse eine Frameklasse registrierst.

Du erzeugts das Frame zur Laufzeit mit dem entsprechenden Owner.
Parent und Position zuweisen.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Dynamischer Eigenschaftsdialog

  Alt 22. Mär 2017, 09:50
Hallo,
Zitat:
Wie schaffe ich es dann dynamisch etwa in einem Panel auf dem Hauptformular das entsprechende Frame zur Laufzeit einzublenden?
Delphi-Quellcode:
Frame_Dings.Visible := False;
Frame_X.Visible := False;

Frame_Ofenrohr.Visible := True;
Ich gehe hier mal davon aus, die die Anzahl der verschiedenen Frames bekannt ist.

Oder habe ich die Frage nicht verstanden?
Heiko

Geändert von hoika (22. Mär 2017 um 09:53 Uhr)
  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 21: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