AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

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
16 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

Registriert seit: 11. Okt 2006
2.537 Beiträge
 
Delphi 7 Professional
 
#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?
Stephan
Weil die Lichtgeschwindigkeit höher als die Schallgeschwindigkeit ist, hält man viele Leute für helle Köpfe, bis man sie reden hört.

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

Registriert seit: 20. Mai 2010
65 Beiträge
 
Delphi 10 Seattle Professional
 
#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
16 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
1.123 Beiträge
 
Delphi 2007 Professional
 
#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
Online

Registriert seit: 5. Jul 2006
Ort: Magdeburg
5.656 Beiträge
 
Delphi XE4 Professional
 
#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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2017 by Daniel R. Wolf