AGB  ·  Datenschutz  ·  Impressum  







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

form1.enabled:=false geht nicht

Ein Thema von Helmut · begonnen am 15. Jan 2003 · letzter Beitrag vom 16. Jan 2003
Antwort Antwort
Seite 1 von 3  1 23      
Helmut

Registriert seit: 22. Nov 2002
64 Beiträge
 
#1

form1.enabled:=false geht nicht

  Alt 15. Jan 2003, 18:32
Hi,

während der computer rechnet (bei meinem spiel ein spielzug macht) soll bei mir eine form im vordergrund eingeblendet werden (form7). Währenddessen soll form1 (mainform) disabled werden (man kann kein knopf mehr drücken oder irgendetwas mit ihr machen.
Jetzt ruf ich die form7 auf:

form7.enabled:=true;
form7.visible:=true;
form1.enabled:=false;


und zusätzlich dazu noch ein form1.enabled:=false; in der onShow-prozedur der form7.
Ausserdem hab ich
SetWindowPos(Handle, HWND_TOPMOST, 0 , 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE); in form7 drin.

Aber es klappt nicht... die form 7 ist uwar im vordergrund, aber man kann noch alles mögliche bei der form1 machen. Ich hab schon alles durchgeschaut, ich find keinen fehler. Das verrückte ist ja, das ich noch eine form hab (auswertung) die auch aufgerufen wird, genau mit den gleichen befehlen und dort wird die form1 ordnungsgemäss disabled. Wenn man dann auf die form1 klickt kommt halt dieser warnton von windows. Ich hab alles ganau wie bei dieser form gemacht.

Bin ich verrückt?!

Ich stecke da jetzt richtig fest bei der sache..ich hab schon ne ganze weile probiert, aber ich komme keinen millimeter vorwärts
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2
  Alt 15. Jan 2003, 18:34
Ähm, mach doch Form7.ShowModal...

Chris
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#3

Re: form1.enabled:=false geht nicht

  Alt 15. Jan 2003, 18:34
Hallo Helmut,

Zitat von Helmut:
Wenn man dann auf die form1 klickt kommt halt dieser warnton von windows. Ich hab alles ganau wie bei dieser form gemacht.
Das liegt warscheinlich! daran das Du das Formular Modal öffnest und DU somit keinen Zugriff auf die anderen Formulare hast, dann kommt dieser Ton.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#4
  Alt 15. Jan 2003, 18:35
Probiers mal mit ShowModal...
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5
  Alt 15. Jan 2003, 18:46
Zitat von Nailor:
Probiers mal mit ShowModal...
Wenn ich mich nicht ganz irre, dann kann in diesem Fall Form1 keine Berechnungen mehr ausführen.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#6
  Alt 15. Jan 2003, 18:51
Stimmt, aber nur so lange halt das andere Formular nicht geschlossen wird.
Sonst musst du eben Show nehmen und enabled. Das hast du gemacht und Funktioniert nicht. Dann mach einen Schalter, ob Form7 aktiv ist und prüfe im OnActivate von Form1, ob es möglich ist, dass man Form1 anklickt.

Ist es das, was dz willst?

Chris
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#7
  Alt 15. Jan 2003, 18:54
Wenn es bei der einen Form geht, bei der anderen nicht, deutet das darauf hin, dass du Form1 im einen Fall aus Versehen zu früh wieder enablest.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Helmut

Registriert seit: 22. Nov 2002
64 Beiträge
 
#8
  Alt 15. Jan 2003, 19:16
also es kann sein das ich die eine form modal öffne... wenn dann aber unbewusst Ich glaube ihr meint diese mdi child oder so. Das ist aber nicht eingestellt. Bei der form die geht (also die im vordergrund ist und im hintergrund form 1 sichtbar aber nicht anklickbar) sind alle form-einstellungen genauso wie bei der form wos nicht klappt (hab jedes einzelne element verglichen . Auch der aufruf ist gleich.

Also was ich genau will:

Während der computer spielzüge auf form1 vollzieht (images werden verändert, labels gesetzt usw., also sollen die änderungen im hintergrund auch angezeigt werden) soll eine form im vordergrund darauf hinweisen das man warten soll bis der computer fertig ist.
Man soll nicht auf buttons klicken können die in form 1 sind. Wenn der computer ferzig ist wird die form vorne wieder invisible gemacht und man kann weiterspielen.

Ich möchte das so machen, weil ich viele bedingungen im spiel davon abhängig mache ob buttons enabled oder disabled sind. Deswegen kann ich nicht einfach alle elemente auf form1 auf disabled stellen.
Ausserdem soll der benutzer sehen können was der computer da macht (mit pausen zwischendurch).
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#9
  Alt 15. Jan 2003, 19:18
Irgendwann muss Form1 ja wieder enabled werden. Kuck dir mal an, wann die dazugehörige procedure aufgerufen wird.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#10
  Alt 15. Jan 2003, 19:22
In diesem Fall darfst du auf keinen Fall eine Form modal anzeigen, denn dann erhält die Form im Hintergrund keine Messages mehr. Also kein Verschieben von Grafiken.

Du musst eigentlich nix weiteres tun als die Hauptform zu disablen(Form1.Enabled := False), die andere Form mit Show (nicht ShowModal!!) anzeigen und zu warten, bis dann die Berechnungen fertig sind. Dann enablest du die Hauptform(Form1.Enabled := True) und schließt die andere Form(Form7.Close) (wichtig: in dieser Reihenfolge).
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:14 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