AGB  ·  Datenschutz  ·  Impressum  







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

Cannot make a visible Window modal

Ein Thema von SvenLittkowski · begonnen am 25. Jan 2011 · letzter Beitrag vom 29. Jan 2011
Antwort Antwort
Seite 1 von 2  1 2      
SvenLittkowski

Registriert seit: 18. Dez 2004
98 Beiträge
 
#1

Cannot make a visible Window modal

  Alt 25. Jan 2011, 17:18
Hallo,

ich bekomme bei Aufruf von Form.ShowModal die folgende Fehlermeldung bei der Testausführung:

"Cannot make a visible Window modal". Woran liegt's?
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Cannot make a visible Window modal

  Alt 25. Jan 2011, 17:20
Weil das Fenster bereits sichtbar ist. Schließe es vorher
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#3

AW: Cannot make a visible Window modal

  Alt 25. Jan 2011, 17:42
Oder Visible auf false setzen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
SvenLittkowski

Registriert seit: 18. Dez 2004
98 Beiträge
 
#4

AW: Cannot make a visible Window modal

  Alt 25. Jan 2011, 17:50
Ich hatte bereits die Eigenschaft Visible auf "False" zu stehen. Hatte es nochmal in OnCreate hineingesetzt (False), was aber zu Access Violation beim Testlauf führt.
  Mit Zitat antworten Zitat
michaelthuma
(Gast)

n/a Beiträge
 
#5

AW: Cannot make a visible Window modal

  Alt 25. Jan 2011, 19:25
Sven!

Do you create the form with

An sich sollte...
var
myForm : TForm1;
begin
Application.CreateForm(TForm1, myForm); --> Windows is invisible
myForm.ShowModal

Das Form sauber anzeigen ... wobei TForm ist deine Fensterklasse ist. Oder Erzeuge es einfach mit

myFrom:=TForm1.Create;
myFrom.ShowModal;

Wenn das nicht geht, dann melde dich einfach. Werden das schon noch finden.

Ich hatte bereits die Eigenschaft Visible auf "False" zu stehen. Hatte es nochmal in OnCreate hineingesetzt (False), was aber zu Access Violation beim Testlauf führt.
  Mit Zitat antworten Zitat
SvenLittkowski

Registriert seit: 18. Dez 2004
98 Beiträge
 
#6

AW: Cannot make a visible Window modal

  Alt 25. Jan 2011, 21:29
Hier Auszüge meines Codes, wie er jetzt ist (und Fehler verursacht). "Beta" ist der Name des Windows, was geöffnet werden soll und nichht klappt.

Code:
procedure TAlpha.FormCreate(Sender: TObject);
begin
 ...
 Beta.Visible:=False;
 Randomize;
 SupportMe:=Random(1000);
end;

procedure TAlpha.TimerProgressTimer(Sender: TObject);
begin
 ...
 if Beta.Visible=False then
 begin
//  if SupportMe=1000 then Beta.ShowModal;
  Beta.ShowModal; // Zum Testen
 end;
end;
Code:
program AMC2;

uses
  Forms,
  Box1 in 'Box1.pas' {Alpha},
  Box2 in 'Box2.pas' {Beta};

{$R *.res}

begin
  Application.Initialize;
  Application.Title := 'FNR Ancient Measures Calculator v2.0';
  Application.CreateForm(TAlpha, Alpha);
  Application.CreateForm(TBeta, Beta); // Demo-Hinweis, Aufruf zu freiwilligem Support
  Application.Run;
end.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#7

AW: Cannot make a visible Window modal

  Alt 25. Jan 2011, 21:38
... was aber zu Access Violation beim Testlauf führt.
wahrscheinlich wird der Timer schon sofort gestartet. Da kann es sein, daß Beta schon angezeigt werden soll obwohl noch gar nicht erzeugt wurde.
...das eigentliche Problem ist unerklärlich, da es überall und hundertfach so gemacht wird...
- Form erzeugen (automatisch oder zur Laufzeit) ... ist damit Visible = False
- Form mit ShowModal anzeigen.


nimm das ShowModal mal aus dem Timer raus in einen ButtonClick (Testweise) und guck ob der Fehler auch da auftritt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Cannot make a visible Window modal

  Alt 25. Jan 2011, 21:46
Code:
procedure TAlpha.FormCreate(Sender: TObject);
begin
  ...
  Beta.Visible:=False;
  ...
end;


Application.CreateForm(TAlpha, Alpha);
Application.CreateForm(TBeta, Beta);
Beta wird nach Alpha erstellt, also existiert im OnCreate von Alpha das Beta noch nicht und es muß zwangsläufig knallen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#9

AW: Cannot make a visible Window modal

  Alt 25. Jan 2011, 21:50
Das erklärt wie ich schon sagte, die Zugriffsverletzung aber nicht die Meldung "Cannot make a visible Window modal". Ich tippe mal eher darauf, daß die Meldung irreführend ist und die Ursache in der Reihenfolge Erzeugung und Anzeige liegt.
  Mit Zitat antworten Zitat
SvenLittkowski

Registriert seit: 18. Dez 2004
98 Beiträge
 
#10

AW: Cannot make a visible Window modal

  Alt 25. Jan 2011, 22:38
Ja, das Problem ist nun gelöst. in der Tat war die Ursache die, daß ich den Form-Aufruf in einen Timer hineinverlegt hatte. Nun wird die Form beim Ereignis "OnChange" eines Textfeldes aufgerufen. Alle Fehler sind hiermit behoben, und ich will jedem von Euch für Eure gute Hilfe danken.

Vier weitere Fragen fallen mir aber noch ein:
- Wie kann ich den Text von ListBox.Hint den Eintrag (Item) anzeigen lassen,, über welchem sich die Mouse gerade befindet?
- Wie kann ich den Benutzer meines Programmes mir eine formatierte E-Mail mit den Inhalten zweier Textfelder zusenden lassen? *
- Wie kann ich das Verzeichnis vom Programm ermitteln lassen, um dort eine INI-Datei (Speichern von Koordinaten) zu erstellen?
- Oder, wie kann ich Daten in der Registry speichern und lesen?

* = Mein Programm rechnet antike Maße in heutige um. Bei Korrekturen oder Vorschlägen soll der Benutzer mir das antike Maß mit dem equivalenten Wert eines heutigen Maßes zusenden können.

Geändert von SvenLittkowski (26. Jan 2011 um 05:08 Uhr)
  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 16:30 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