AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Unerklärliche Fehlermeldung bei manueller Formerzeugung
Thema durchsuchen
Ansicht
Themen-Optionen

Unerklärliche Fehlermeldung bei manueller Formerzeugung

Ein Thema von Generalissimo · begonnen am 6. Jan 2004 · letzter Beitrag vom 11. Jan 2004
Antwort Antwort
Seite 1 von 2  1 2      
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#1

Unerklärliche Fehlermeldung bei manueller Formerzeugung

  Alt 6. Jan 2004, 00:34
Hi

ich bekomm die Fehlermeldung: "Aus einem sichtbaren Fenster kann kein modales gemacht werden"
Jedoch erzeuge ich das Formular manuell

Delphi-Quellcode:
With Tfrm1.Create(self) do
begin
  ShowModal;
  Free;
end;
Das Formular ist auch in die Liste der verfügbaren Forms gelegt,
sprich wird nicht automatisch beim Start erzeugt.
Der Witz ist das ich genau dieses Verfahren in anderen Projekten
schon angewendet habe und bis jetzt nie Probleme damit hatte.
Liegt es vielleicht an irgendeiner Einstellung an Tfrm1?

Hat jemand ne Idee?
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Unerklärliche Fehlermeldung bei manueller Formerzeugung

  Alt 6. Jan 2004, 00:42
Die Fehlermeldung bedeutet wohl: Wenn ein Fenster modal angezeigt werden soll, darf es wohl nicht schon vorher sichtbar sein.

Ich hab das mal mit:

Delphi-Quellcode:
procedure Tfrm1.BitBtn1Click(Sender: TObject);
begin
With Tfrm1.Create(self) do
begin
  ShowModal;
  Free;
end;
end;
probiert, hab also von dem Form, auf dem der Button liegt, weitere Instanzen erzeugt...das ging wunderbar. Hast du vielleicht etwas mehr Quelltext?

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Unerklärliche Fehlermeldung bei manueller Formerzeugung

  Alt 6. Jan 2004, 00:48
Das ist das Problem. Mehr Code habe ich nicht.
Ich habe ein Hauptformular (welches das wirkliche Hauptform ist, was am Anfang automatisch
erzeugt wird) und in dem befindet sich ein MainMenu mit dem Unterpunkt Fenster1.
Dieser Menüitem greift dann noch auf ein Action zurück das nichts weiter drinstehen hat,
als das oben genannte.
frm1 wird vorher definitiv nirgends erzeugt. Habs mit frm1.Show einfach mal probiert
und wie zu erwarten einen Fehler beim Zugriff im Speicher bekommen.
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#4

Re: Unerklärliche Fehlermeldung bei manueller Formerzeugung

  Alt 6. Jan 2004, 00:54
passiert das auch mit:
Delphi-Quellcode:
var DasFenster : TForm;
begin
  DasFenster := TForm.Create(self);
  DasFenster.ShowModal;
  DasFenster.Free;
end;
?
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Unerklärliche Fehlermeldung bei manueller Formerzeugung

  Alt 6. Jan 2004, 00:57
Leider ja.
Das passiert sogar auch, wenn ich das
Form in die Liste der automatisch zuerzeugenden Forms beim Start nehme
und dann

frm1.showmodal;

aufrufe. frm1.show; geht ohne Probleme
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#6

Re: Unerklärliche Fehlermeldung bei manueller Formerzeugung

  Alt 6. Jan 2004, 01:06
Und wie isses mit:
Delphi-Quellcode:
Unit DasProblem
type
  TForm2 = class(TForm)
  end;

  TForm1 = class(TForm)
    FSubForm : TForm2
  protected
    procedure OnIrgendWasClick(Sender : TObject);
  public
  Destructor Destroy; override;
  end;

var Form1 : TForm1;
implementation

procedure TForm1.OnIrgendwasKlick(Sender : TObject);
begin
  if not Assigned(FSubForm) then FSubForm := TForm2.Create;
  FSubForm.ShowModal;
end;

Destructor TForm1.Destroy;
begin
  if Assigned(FSubForm) then FreeAndNil(FSubForm);
end;
?
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Benutzerbild von Marcel Gascoyne
Marcel Gascoyne

Registriert seit: 18. Nov 2003
Ort: Uetersen
271 Beiträge
 
Delphi 2005 Architect
 
#7

Re: Unerklärliche Fehlermeldung bei manueller Formerzeugung

  Alt 6. Jan 2004, 07:50
Ich denke mal das dieses Problem viel einfacher zu lösen ist: Die Form darf sich beim Erstellen nicht sichtbar machen, da dann ein ShowModal fehlschlägt. Setz die Eigenschaft Visible der Form einfach mal auf False.

Gruß,
Marcel
Marcel Gascoyne
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Unerklärliche Fehlermeldung bei manueller Formerzeugung

  Alt 6. Jan 2004, 08:34
Hallo Generalissimo,
ich habe versucht Dein Problem nachzuvollziehen.
Leider ist es mir nicht geglückt.
Nur mit dem Hinweis von Marcel Gascoyne (Visible=True) erhalte ich den von Dir beschriebenen Fehler.
Aber sicherheitshalber noch ein paar Anmerkungen zu dynamisch erzeugten Formularen:

In den Projekt-Optionen das Formular in die Liste der verfügbaren Formulare aufnehmen.
- Dann wird das Formular nicht automatisch beim Start erzeugt.

Release anstatt Free verwenden. Siehe Delphi-Hilfe

Den Aufruf immer in einen Try/Finally Block kapseln
Delphi-Quellcode:
With TForm2.Create(self) do
begin
  Try
    ShowModal;
  Finally
    Release;
    end;
end;
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Unerklärliche Fehlermeldung bei manueller Formerzeugung

  Alt 7. Jan 2004, 00:11
Danke euch allen für die zahlreichen Antworten.
Ich hab das Formular einfach neu gemacht und fragt mich
nicht wieso, nun gehts wieder.
Keine Ahnung warum!!!
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Unerklärliche Fehlermeldung bei manueller Formerzeugung

  Alt 11. Jan 2004, 22:10
Das liegt tatsächlich an der visible Eigenschaft, wie Marcel Gascoyne schon sagte...

(sorry dass ich hier wieder alte Threads ausgrabe, aber vielleicht sucht ja mal jemand nach diesem Thema ..so wie ich gerade )
Dani H.
  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 17:50 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