Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Form (zur Laufzeit erstellt) richtig schliessen. (https://www.delphipraxis.net/186792-form-zur-laufzeit-erstellt-richtig-schliessen.html)

nuclearping 30. Sep 2015 15:16

AW: Form (zur Laufzeit erstellt) richtig schliessen.
 
Zitat:

Zitat von IMPEGA (Beitrag 1317336)
Eine Zusatzfrage:
Hat schon Jemand XE10 am laufen?
Gibt es Vorteile zu XE7?

D10 hat, so wie XE7, entscheidente Vorteile gegenüber D7, ja. Aber das gehört hier nicht hin. Ein Thread - eine Frage. :P

frankyboy1974 30. Sep 2015 15:33

AW: Form (zur Laufzeit erstellt) richtig schliessen.
 
hallo,

Zitat:

Forms und deren Inhalte per Code erstellen. Oder findest du das etwa praktisch?

Das kann man in Delphi doch alles per Form-Designer machen und dann statt ellenlangen redundanten Spaghetticode zu schreiben, einfach die Form dort instanzieren wo man sie braucht und dann am Ende wieder freigeben. Vorallem wenn man (nach einem längeren Zeitraum) mal was ändern / verschieben / hinzufügen will, fängt man an zu suchen und zu basteln.
Also das man Spaghetticode verursacht, nur weil man keinen Editor zum Erstellen einer GUI verwendet, solltest du mal einen Java-Entwickler erzählen. Ich erzeuge grundsätzlich alle Oberflächen ohne Editor (In Delphi genauso wie in Java). Ich würde das zwar auch nicht so machen wie der TE. Das Benutzen eines Editors würde ich aber als Kinderprogrammierung bezeichnen.:twisted:

mfg

frank

Hansa 30. Sep 2015 15:44

AW: Form (zur Laufzeit erstellt) richtig schliessen.
 
Zitat:

Zitat von frankyboy1974 (Beitrag 1317347)
hallo,

Also das man Spaghetticode verursacht, nur weil man keinen Editor zum Erstellen einer GUI verwendet, solltest du mal...Das Benutzen eines Editors würde ich aber als Kinderprogrammierung bezeichnen.:twisted:

Was für ein Editor ?

IMPEGA 30. Sep 2015 15:57

AW: Form (zur Laufzeit erstellt) richtig schliessen.
 
Danke noch Mal. Ja mit der Vorlage kann ich klar kommen.
Tatsächlich scheint es einfacher zu gehen. Wie das mit der Deklaration funktionieren soll, finde ich schon heraus.
Ich kenne die Zahl nicht wirklich. Ich kann die Formen nicht fest deklarieren.
Das scheint mir aber echt nicht wirklich schwer zu sein.
Es kann ruhig geschlossen werden. Ich bin mehr als bedient.

nuclearping 30. Sep 2015 15:59

AW: Form (zur Laufzeit erstellt) richtig schliessen.
 
Zitat:

Zitat von frankyboy1974 (Beitrag 1317347)
Das Benutzen eines Editors würde ich aber als Kinderprogrammierung bezeichnen.:twisted:

Ich als effektiv und zeitsparend. :mrgreen:

Man hat halt mehr Zeit, die man in die Programmierung der eigentlichen Anwendung stecken kann, statt sich die Oberfläche zusammenzufrickeln.
Ich habe das mit Delphi ein Mal gaaaaaaaaaanz früher gemacht. Und es war (wie Hansa schon anmerkte) entsetzlich zu pflegen. Aber es war gut, diese Erfahrung gemacht zu haben. Weil dadurch lernt man dann, wie man es nicht machen sollte.

Aber gibt ja auch noch genug Masochisten unter den Programmierern. :P

Zitat:

Zitat von Hansa (Beitrag 1317349)
Was für ein Editor ?

Ich denke er meint den Form-Designer.

nuclearping 30. Sep 2015 16:00

AW: Form (zur Laufzeit erstellt) richtig schliessen.
 
Zitat:

Zitat von IMPEGA (Beitrag 1317353)
Wie das mit der Deklaration funktionieren soll, finde ich schon heraus.

Was für 'ne Deklaration?

IMPEGA 30. Sep 2015 16:11

AW: Form (zur Laufzeit erstellt) richtig schliessen.
 
In deinem Beispiel hast du gewisse Sachen fest deklariert.
Ich bin kein Profi, habe mir nur schnell im Editor das angeschaut.
Momentan habe ich noch kein Plan wie ich die richtige Parameter mit der richtigen Form synchronisieren soll.
In meinem Fall darf ich die Namen oder andere Parameter nicht festlegen.
Etwas Ruhe, etwas testen und schon komme ich weiter.
Wie aber schon gesagt, damit kann ich gut leben, ich komme schon klar damit, dein Beispiel ist sehr gut.
Danke dafür.

Delphi-Quellcode:
type
   TFormType = (
     ftForm1 = 0,
    ftForm2 = 1,
    ftForm3 = 2);
Delphi-Quellcode:
const
   FORM_TITLES: Array[TFormType] of String = (
     'Dynamische Form 1',
    'Super Titel für Form 2',
    'Modale Form 3'
  );

nuclearping 30. Sep 2015 16:26

AW: Form (zur Laufzeit erstellt) richtig schliessen.
 
Zitat:

Zitat von IMPEGA (Beitrag 1317358)
In deinem Beispiel hast du gewisse Sachen fest deklariert.

Wenn du sagst, dass die Forms optisch alle gleich aussehen und nur durch Logo / Überschrift unterschieden werden, kannst du mit dem
Delphi-Quellcode:
TFormType
-Typ (zB) rausfinden, von welcher Form die Daten kommen. Statt der
Delphi-Quellcode:
type
-Deklaration kannst du auch einen
Delphi-Quellcode:
Integer
mit einer fortlaufenden Nummer nutzen.

Wenn du zB für den "OK"-Button auf der Form beim Instanzieren den gleichen Handler zuweist, kannst du an Hand dessen unterscheiden.

Zum Beispiel:
Delphi-Quellcode:
unit Unit1;

interface

// ...

type
  TForm_Main = class(TForm)
    // ...
  private
    // ...
    procedure Form_Input_OKClick(Sender: TObject);
  end;

// ...

implementation

// ...

procedure TForm_Main.Form_Input_OKClick(Sender: TObject);
var
  SenderForm: TForm_DynamicForm;
  FormType: TFormType;
begin
  SenderForm := GetParentForm(TControl(Sender));
  FormType := SenderForm.FormType;

  case FormType of
    ftForm1:
      DoSomethingForForm1;
    ftForm2:
      DoSomethingForForm2;
    // ...
  end;
end;

procedure TForm_Main.Button_Form1Click(Sender: TObject);
begin
  with TForm_DynamicForm.Create(Self) do
    begin
      FormType := ftForm1;
      Button_OK.OnClick := Form_Input_OKClick;
      Show;
    end;
end;

procedure TForm_Main.Button_Form2Click(Sender: TObject);
begin
  FDialogForm := TForm_DynamicForm.Create(Self);
  FDialogForm.FormType := ftForm2;
  FDialogForm.Button_OK.OnClick := Form_Input_OKClick;
  FDialogForm.Show;
end;
Ich weiss aber nicht, ob GetParentForm schon in D7 verfügbar ist. http://docs.embarcadero.com/products...arentForm.html

Sherlock 1. Okt 2015 12:31

AW: Form (zur Laufzeit erstellt) richtig schliessen.
 
Zitat:

Zitat von Hansa (Beitrag 1317339)
sag ich nochmals : Objektablage. Aber ich sags gleich : im Internet danach suchen, das bringt nichts, weil das seltsamerweise keiner verwendet (ausser mir). Nicht mal Marco Cantu hat dafür eine Erklärung. :shock:

Ich verwende den auch ;)

Sherlock

Hansa 1. Okt 2015 14:14

AW: Form (zur Laufzeit erstellt) richtig schliessen.
 
Zitat:

Zitat von Sherlock (Beitrag 1317395)
Zitat:

Zitat von Hansa (Beitrag 1317339)
sag ich nochmals : Objektablage. Aber ich sags gleich : im Internet danach suchen, das bringt nichts, weil das seltsamerweise keiner verwendet (ausser mir). Nicht mal Marco Cantu hat dafür eine Erklärung. :shock:

Ich verwende den auch ;)

Sherlock

Dann sag mal noch, wen du denn da verwendest!


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 Uhr.
Seite 2 von 3     12 3      

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