AGB  ·  Datenschutz  ·  Impressum  







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

Form aus zweiter Unit erstellen.

Ein Thema von Zodi · begonnen am 24. Jul 2021 · letzter Beitrag vom 26. Jul 2021
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Zodi
Zodi

Registriert seit: 18. Jul 2017
Ort: Berlin
45 Beiträge
 
Delphi XE7 Ultimate
 
#1

Form aus zweiter Unit erstellen.

  Alt 24. Jul 2021, 17:14
Hi Delphianer ich habe eine form mit einem Knopf der beim Drücken eine neue Form erstellen soll.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Unit2;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private-Deklarationen }

  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 CreateNewForm('Hallo');
end;

end.
Unit 2 zum erzeugen der 2. Form

Delphi-Quellcode:
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons;

type
  TForm2 = class(TForm)
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

function CreateNewForm(Message: String) : string;

var
  Form2: TForm2;

implementation

procedure Tform2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form2.Free;
end;


function CreateNewForm(Message: String) : string;

begin

  Form2 := TForm2.Create(application);
  Form2.Show;
  Form2.OnClose := Form2.FormClose; // assign onclick handler
result := '';
end;

end.
irgendwie funktioniert das nicht weis wer was ich falsch mache?


grüsse Zodi
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Form aus zweiter Unit erstellen.

  Alt 24. Jul 2021, 17:34
irgendwie funktioniert das nicht weis wer was ich falsch mache?
Meine Glaskugel ist gerade kaputt.

Was genau meinst Du mit "irgendwie funktioniert das nicht"?
Thomas Mueller
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Form aus zweiter Unit erstellen.

  Alt 24. Jul 2021, 17:35
Hi Zodie

Hi Delphianer ich habe eine form mit einem Knopf der beim Drücken eine neue Form erstellen soll.
...
irgendwie funktioniert das nicht weis wer was ich falsch mache?
Was heisst denn "Irgendwie..." ? Welche Fehlermeldung erhälst du?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von Zodi
Zodi

Registriert seit: 18. Jul 2017
Ort: Berlin
45 Beiträge
 
Delphi XE7 Ultimate
 
#4

AW: Form aus zweiter Unit erstellen.

  Alt 24. Jul 2021, 17:48
Fehlermeldung ist. "Resource nicht gefunden."

Geplant ist es so das mein programm das eine Konsole App soll bei einem Ereignis eine Form erzeugen
Pascal
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Form aus zweiter Unit erstellen.

  Alt 24. Jul 2021, 18:34
Hi Zodi

Das ist schon im Ansatz falsch - Ironie der Geschichte: Deine erste Unit ist zwar für eine Formunit fehlerfrei. Aber wenn du eine Konsolenanwendung erstellen willst, völlig falsch.
Ich hab sowas noch nie gemacht (der Ansatz könnte aber interessant sein), aber ich denke, die Konsolen- und die VCL-Anwendung müssen zwei verschiedene Apps sein.

Wenn Delphi mit der Fehlermeldung abbricht: "Resource nicht gefunden." wo steht dann der Cursor?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
mmw

Registriert seit: 10. Sep 2019
Ort: OWL
322 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Form aus zweiter Unit erstellen.

  Alt 24. Jul 2021, 18:42
hallo,

koennte daran liegen

in unit2

Delphi-Quellcode:
implementation

{$R *.dfm}
einfugen


Gruß
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#7

AW: Form aus zweiter Unit erstellen.

  Alt 25. Jul 2021, 17:33
Fehlermeldung ist. "Resource nicht gefunden."

Geplant ist es so das mein programm das eine Konsole App soll bei einem Ereignis eine Form erzeugen
Erstelle mal eine "Leere" konsolen Anwendung
und eine Leere Windows Anwendung.
dann schau dir mal die beiden generierten .dpr dateien in einem Texteditor an.

Das dürfte dir die Schwierigkeit deines Ansatzes erklären.
Formulare brauchen eine message loop. Diese Loop liefert Application.run;
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
614 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Form aus zweiter Unit erstellen.

  Alt 26. Jul 2021, 12:16
dann schau dir mal die beiden generierten .dpr dateien in einem Texteditor an.
Dazu braucht man aber keinen Texteditor, das geht in Delphi. -> Menue/Project/"Quelltext anzeigen".

Ich kenne einige Programme die ein Konsolenfenster haben und trotzdem eine normale Programmoberfläche. Das bekannteste ist wohl Blender.
Die einzige Frage die sich mir stellt ist, was passiert wenn man ein Application object erstellt und das Hauptform erzeugt, ob das den Consolenoutput zerhaut.
Aber probieren geht über studieren!
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.135 Beiträge
 
Delphi 12 Athens
 
#9

AW: Form aus zweiter Unit erstellen.

  Alt 26. Jul 2021, 12:55
Ja, aber dennoch ist das nötig, was genannt wurde

* VCL-Anwendung erstellen und {$APPTYPE CONSOLE} in die DPR
* VCL-Anwendung erstellen und Bei Google suchenAllocConsole/AttachConsole/FreeConsole
* VCL-Anwendung erstellen und ein eigenes console-ähnliches VCL-Fenster bauen (z.B. mit einem Memo drin)
* Konsole-Anwendung erstellen, aber für die VCL "manuell" regelmäßig die Messages behandeln


https://www.delphipraxis.net/103940-...v2-0-15-a.html
hier hatte ich mal mit AllocConsole/AttachConsole rumgespielt
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Form aus zweiter Unit erstellen.

  Alt 26. Jul 2021, 13:06
Hi Sinspin

Ich kenne einige Programme die ein Konsolenfenster haben und trotzdem eine normale Programmoberfläche. Das bekannteste ist wohl Blender.
Mein erster Gedanke war: Blender ist wohl kaum in Delphi programmiert. Abgesehen davon, dass teile eventuell doch mit Delphi erstellt wurden (DLG): Was hindert ein Delphi-VCL-Programm (oder FMX) daran, einen Prozess zu starten? Ob der nun in einer Konsole läuft oder als VCL/FMX-Anwendung, dürfte schon mal egal sein.

Die einzige Frage die sich mir stellt ist, was passiert wenn man ein Application object erstellt und das Hauptform erzeugt, ob das den Consolenoutput zerhaut.
Aber probieren geht über studieren!
Oder auch anders: was nicht wirklich läuft, kann nichts schreddern. Und ob wirklich beides in ein und demselben Prozess laufen kann, bezweifle ich stark.
Inzwischen hab ich himitsus Beitrag gesehen, und da wurde ja offensichtlich das Gegenteil bewiesen.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:33 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