AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein In Abhängigkeit vom Herkunftsformular neues Formular optisch dynamisch zur Laufzeit..
Thema durchsuchen
Ansicht
Themen-Optionen

In Abhängigkeit vom Herkunftsformular neues Formular optisch dynamisch zur Laufzeit..

Ein Thema von Bornholdt · begonnen am 8. Feb 2018 · letzter Beitrag vom 8. Feb 2018
Antwort Antwort
Bornholdt
(Gast)

n/a Beiträge
 
#1

In Abhängigkeit vom Herkunftsformular neues Formular optisch dynamisch zur Laufzeit..

  Alt 8. Feb 2018, 07:36
..anpassen.

Hallo zusammen,

eine Frage von einem Programmieranfänger: ich habe ein Dialog, bei dem ich wenn er von Formular A geöffnet wird 4 Buttons anzeigen möchte, wird der selbe Dialog von Formular B geöffnet sollen nur 2 Buttons angezeigt werden.

Kurzzm: "in Abhängigkeit vom Herkunftsformular soll das sich öffnende Formular (Dialog) unterschiedlich aussehen".

Gibt es dafür Codebsp/Anleitungen/Hilfe?

Viele Grüße
Bornholdt
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: In Abhängigkeit vom Herkunftsformular neues Formular optisch dynamisch zur Laufze

  Alt 8. Feb 2018, 07:53
Bevor du deinen Dialog zeigst (vermutlich mit ShowModal), schreibst du folgendes:
Delphi-Quellcode:
  DeineDialogform.Button3.Visible := False; // oder True
  DeineDialogform.Button4.Visible := False; // oder True
Ob False oder True, hängt davon ab, aus welchem Formular du den Dialog aufrufst.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.350 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: In Abhängigkeit vom Herkunftsformular neues Formular optisch dynamisch zur Laufze

  Alt 8. Feb 2018, 08:05
Im Sinne der objektorientierten Programmierung wäre es sinnvoller das zu kapseln:
Delphi-Quellcode:
TDialogForm = class
private
  FCanCancel: Boolean;
public
  property CanCancel: Boolean read FCanCancel write SetCanCancel;
end;

procedure TDialogForm.SetCanCancel(const Value: Boolean);
begin
  FCanCancel := Value;
  btnCancel.Visible := Value;
end;
Auf diese Weise fummelt man nicht von außen an internen Elementen der Klasse herum und hat zudem mit der Property auch eine sinnvolle Benennung warum da etwas sichtbar ist oder nicht.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: In Abhängigkeit vom Herkunftsformular neues Formular optisch dynamisch zur Laufze

  Alt 8. Feb 2018, 08:29
.. auch im Sinne von OOP könntest Du Dialog.create überladen (polymorphy)
z.b. Dialog.create(Parameter).

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: In Abhängigkeit vom Herkunftsformular neues Formular optisch dynamisch zur Laufze

  Alt 8. Feb 2018, 09:14
Im Sinn von OOP und vernünftiger Kapselung habt ihr beide Recht. Bedenkt aber, dass der TE ein Anfänger ist und evtl. erstmal eine einfache Lösung benötigt. Trotzdem sollte er natürlich eure Hinweise beachten.

Auch ich programmiere anders. Bei mir gibt es zum Beispiel immer eine Klassen-Prozedur, die alle notwendigen Parameter bekommt. In dieser Prozedur wird die Form erzeugt, eingestellt, verwendet und wieder zerstört. Zugriffe von außen gibt es praktisch gar nicht.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: In Abhängigkeit vom Herkunftsformular neues Formular optisch dynamisch zur Laufze

  Alt 8. Feb 2018, 11:10
Auch ich programmiere anders. Bei mir gibt es zum Beispiel immer eine Klassen-Prozedur, die alle notwendigen Parameter bekommt. In dieser Prozedur wird die Form erzeugt, eingestellt, verwendet und wieder zerstört. Zugriffe von außen gibt es praktisch gar nicht.
Bei mir seit 2-3 Jahren genau so. Bei alten Projekten gibt es ein refactoring, sobald ich an alten Formularen arbeite. Eine Form hat dann immer folgende Kassenfunktion

Delphi-Quellcode:
class function TMeineForm.Execute:boolean;overload;
class function TMeineForm.Execute(aEinBesondererParameter:boolean):boolean;overload;
In den Funktionen wird das Form erzeugt und bei Dialogen auch freigegeben.

Aufgerufen wird das Formular dann so:
Delphi-Quellcode:
if TMeineForm.Execute then
  ...


if TMeineForm.Execute(true) then
  ...
Alles viel Übersichtlicher geworden.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
hoika

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

AW: In Abhängigkeit vom Herkunftsformular neues Formular optisch dynamisch zur Laufze

  Alt 8. Feb 2018, 11:49
Hallo,
Frage wurde ja bereit mit verschiedenen Lösungen beantwortet.
Welche Lösung am schnellsten ist, hängt vom aktuellen Quellcode ab.

Den hier bitte auszugsweise posten.
Heiko
  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 15:58 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