AGB  ·  Datenschutz  ·  Impressum  







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

Weitere Fenster (Formulare) öffnen - Wie?

Ein Thema von Whistler · begonnen am 19. Aug 2004 · letzter Beitrag vom 21. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
Whistler

Registriert seit: 2. Mär 2004
98 Beiträge
 
Delphi 2006 Professional
 
#1

Weitere Fenster (Formulare) öffnen - Wie?

  Alt 19. Aug 2004, 21:22
Guten Abend,

ich will, dass wenn ich auf einen Button klicke, ein neues Form geladen wird. Während dieses Formular zu sehen ist, darf es nicht möglich sein, dass "Hauptformular" zu nutzen.

Ich weiß leider nur bruchteilhaft wie das gehen soll. Ich wäre für eine genaue Anleitung/Link wo's erklärt wird sehr dankbar.
mfg

Whistler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Weitere Fenster (Formulare) öffnen - Wie?

  Alt 19. Aug 2004, 21:26
Annahme: In Fom2Unit.pas liegt dein zweites Formular TForm2:
Delphi-Quellcode:
uses Form2Unit;
 
procedure Button1Click(Sender: TObject)
var
  NewForm: TForm2;
begin
  NewForm := TForm2.Create(self);
  NewForm.ShowModal;
  NewForm.Free;
end;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Whistler

Registriert seit: 2. Mär 2004
98 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Weitere Fenster (Formulare) öffnen - Wie?

  Alt 19. Aug 2004, 21:34
Danke für die schnelle Antwort.
Leider bekomme ich immer Exception beim Aufruf...

Code Mainform:
Delphi-Quellcode:
unit mTest;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls;

type
  TMainform = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Mainform: TMainform;

implementation

uses mTest2;

{$R *.dfm}

procedure TMainform.Button1Click(Sender: TObject);
var pr1 : TEditor;
begin

pr1 := TEditor.Create(self);
pr1.ShowModal;
pr1.Free;
end;

procedure TMainform.Button2Click(Sender: TObject);
begin
ShowMessage('Blub!');
end;

end.
Code Editor-Form:
Delphi-Quellcode:
unit mTest2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TEditor = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Editor: TEditor;

implementation

{$R *.dfm}

procedure TEditor.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:= caFree;
end;

procedure TEditor.Button1Click(Sender: TObject);
begin
Close;
end;

end.
Formstyle "Mainform" = fsMidForm
Formstyle "Editor" = fsMidChild

Hinweis:
Unter "Proejekt" -> "Optionen" -> "Formulare" befindet sich "Editor" auf der rechten Seite, wird also nicht autom. mitgeladen - was auch sein soll.
mfg

Whistler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Weitere Fenster (Formulare) öffnen - Wie?

  Alt 19. Aug 2004, 21:39
Entweder gibt sich das Formular selbst Frei
Action:= caFree; oder du gibst es frei
pr1.Free; Da du das Formular Modal anzeigen willst um evtl. irgendwelche Rückgabewerte zu erhalten würde ich sagen du leerst einfach den Eventhandler TEditor.FormClose, damit sich das Formular nicht selbst freigibt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Whistler

Registriert seit: 2. Mär 2004
98 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Weitere Fenster (Formulare) öffnen - Wie?

  Alt 19. Aug 2004, 21:43
Danke auch für deine Antwort!
Ich habe so eben eine neue Anwendung erstellt.

Code "Form1" (=Main-Form):
Delphi-Quellcode:
unit mTest;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, mTest2;

type
  TForm1 = class(TForm)
    btForm2: TButton;
    btMSG: TButton;
    procedure btMSGClick(Sender: TObject);
    procedure btForm2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btMSGClick(Sender: TObject);
begin
ShowMessage('Blub');
end;

procedure TForm1.btForm2Click(Sender: TObject);
var
  NewForm: TForm2;
begin
  NewForm := TForm2.Create(self);
  NewForm.ShowModal;
  NewForm.Free;
end;

end.
Code "Form2" (=weireres Fenster):
Delphi-Quellcode:
unit mTest2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    btClose: TButton;
    procedure btCloseClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.btCloseClick(Sender: TObject);
begin
Close;
end;

end.
Wenn ich "FormStyle" auf "fsnormal" lasse, klappt es auch, wie es soll
mfg

Whistler
  Mit Zitat antworten Zitat
Whistler

Registriert seit: 2. Mär 2004
98 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Weitere Fenster (Formulare) öffnen - Wie?

  Alt 19. Aug 2004, 21:46
Argh - ich blicke nicht mehr durch!
Nachdem ich den Beitrag verfasst hatte und den FormStyle wieder auf "fsNormal" zurück gestellt hatte, kommt auch hier ein Except.
----------
Update:
Wenn ich Delphi schließe und neu lade, geht alles. Irgendwie führt er den Prozess, trotz per "STRG + F2" aus bzw. hat was kaputt gemacht :/
mfg

Whistler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Weitere Fenster (Formulare) öffnen - Wie?

  Alt 20. Aug 2004, 07:02
Der Code schaut normal aus.

Kannst Du evtl. ein kleines Beispielprogramm posten, so das wir das auch nachvollziehen können?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von plumper
plumper

Registriert seit: 15. Jul 2004
Ort: Ahrensburg
88 Beiträge
 
Delphi 7 Professional
 
#8

Re: Weitere Fenster (Formulare) öffnen - Wie?

  Alt 20. Aug 2004, 07:07
Muß man, wenn man mit ShowModal arbeitet nicht auch ModalResult auf -1 setzen? Oder bin ich im falschen Zusammenhang...

Jens
  Mit Zitat antworten Zitat
Whistler

Registriert seit: 2. Mär 2004
98 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Weitere Fenster (Formulare) öffnen - Wie?

  Alt 20. Aug 2004, 12:44
Zitat von Bernhard Geyer:
Der Code schaut normal aus.

Kannst Du evtl. ein kleines Beispielprogramm posten, so das wir das auch nachvollziehen können?
Der Code des Programms steht genau 1:1 über deinem Posting.
Interessant ist eben:

Lade ich das Programm frisch - läuft alles.
Ändere ich den Style auf ffMDI... -> Fehler.
Drücke ich STRG + F2 um das Programm zurück zu setzen und stelle den Style auf den Ausgangswert, kommt der Fehler immer noch - obwohl nichts anderes geändert. Hier muss ich erst das Projekt schließen und neu laden.
mfg

Whistler
  Mit Zitat antworten Zitat
emploi

Registriert seit: 21. Jun 2004
Ort: Ilmtown
40 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Weitere Fenster (Formulare) öffnen - Wie?

  Alt 20. Aug 2004, 12:48
kann man ein MdiChildWindow überhaupt modal anzeigen lassen?

läuft es denn wenne es nur mit Show anstatt mit ShowModal aufrufst?
Also wenn du nicht fsNormal sondern MdiChild nimmst?

mfg emploi
  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 19:35 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