Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [BUG?] MainMenu reagiert nichtmehr (https://www.delphipraxis.net/56728-%5Bbug-%5D-mainmenu-reagiert-nichtmehr.html)

Angel4585 10. Nov 2005 07:25


[BUG?] MainMenu reagiert nichtmehr
 
Hallo zusammen

Ich hab folgendes Problem:

Ich habe zwei Formulare, auf denen jeweils ein MainMenu ist(also insgesamt 2)

Das zweite Formular wird irgendwann aus einem Thread heraus geöffnet, dass funzt alles wunderbar.
Wenn ich jetzt allerdings in dem MainMenu des Haupformulars aktiv bin und sich währenddessen das zweite Formular öffnet, ist dessen MainMenu "inaktiv", bzw. wenn ich auf die MenuItems klicke passiert nichts, nichtmal das Dropdown in dem MainMenu funzt. :gruebel:

Weis jemand wie ich das beheben kann?

shmia 10. Nov 2005 09:45

Re: MainMenu reagiert nichtmehr
 
Zitat:

Zitat von Angel4585
Das zweite Formular wird irgendwann aus einem Thread heraus geöffnet, dass funzt alles wunderbar.

Das darf man nicht !! Du musst die Methode [TThread].Synchronize benützen um das 2. Formular
zu öffnen.

Angel4585 10. Nov 2005 09:56

Re: MainMenu reagiert nichtmehr
 
Mach ich doch

die Form wird über en ButtonClick auf der ersten Form geöffnet.

und ich mach

Synchronize(tfMain.Button.Click);

ich hab mittlerweile sogar schon das MainMenu auf der Hauptform "Destroyed" aber selbst dann funzt es nicht.

:wall:

EDIT:

Bisher habe ich folgendes gemacht :

Ich habe versucht :

Das MainMenu zu "Destroyen", freizugeben, mit SendMessage zu schliessen, Habe das gesamte Hauptformular Disabled, habe das Fenster über eine Prozedur in dem Thread aufgerufen anstatt über die Button.Click

alles erfolglos.

Hat Jemand einen Vorschlag was ich noch machen könnte?

Angel4585 10. Nov 2005 11:22

Re: MainMenu reagiert nichtmehr
 
So.. also mit dem Thread an sich hat es definitiv nichts zu tun.

Ein Kollege hat die zweite Form mit einem Timer aufgerufen und hat genau das gleiche Problem.

Hat niemand ne Lösung? :?: :cry:

EDIT: Bin ich hier eigentlich richtig mit dieser Frage oder gehört das zu API?

Angel4585 10. Nov 2005 14:11

Re: MainMenu reagiert nichtmehr
 
Zusätzliches Prob :

Wenn ich das HauptFenster per Maus verschiebe und sich währenddessen das zweite Fenster öffnet kann ich das zweite Fenster nicht mit der Maus verschieben.

Edit : Es funktioniert auch nicht wenn ich die erste Form "Disable", bzw. sie mit Hide verstecke, bevor ich die zweite aufrufe.

Übrigens wird die zweite Form erst in dem Button.Click erzeugt, falls das irgendjemand weiterhelfen sollte.

Delphi-Quellcode:
with TtfWV.Create(Application) do
  begin
   TimeThread.Suspend;
   try
    ShowModal;
   finally
    Free;
    end;
   TimeThread.Resume;
  end

Angel4585 11. Nov 2005 07:28

Re: [BUG?] MainMenu reagiert nichtmehr
 
Hier ein Beispielquellcode:

Also ich habe einen Thread:

Delphi-Quellcode:
TMyThread = class(TThread)
 private
  FOpenTime : TDateTime;
  procedure OpenForm2;
 protected
  procedure Execute;override;
 public
  constructor Create;
 end;
 
constructor TMyThread.Create;
begin
 inherited Create(False);
end;

 
procedure TMyThread.Execute;
begin
while not Terminated do
 begin
 sleep(10);
 if Now > FOpenTime then
  Synchronize(OpenForm2);
 end;
end;

 
procedure TMyThread.OpenForm2;
begin
with TForm2.Create(Application) do
 begin
 try
  ShowModal;
 finally
  Free;
  end;
 end;
end;


Ist nur ein Beispiel, kann jeder ausprobieren. Kann aber Fehler enthalten, da ich das nur schnell hingekritzelt habe.

Das Ganze bewirkt eine Erinnerungsfunktion.
Auf Form1 und auf Form2 sind jeweils MainMenus.
Wenn ich jetzt eben im MainMenu von Form1 aktiv bin und währenddessen durch den Thread meine Form2 aufgerufen wird, dann ist das MainMenu auf Form 2 inaktiv.

Allerdings hängt das nicht mit dem Thread zusammen!

Wenn ich auf Form1 einen Timer habe:

Delphi-Quellcode:
procedure TForm1.TimerTimer(Sender : TObject);
begin
if Now > FOpenTime then
 with TForm2.Create(Application) do
  begin
  try
   ShowModal;
  finally
   Free;
   end;
  end;
end;
Hier passiert genau das gleiche.

Ausserdem passiert sowas ähnliches:

Wenn ich Form1 verschiebe (Titelleiste mit Maus) und währenddessen die Form2 aufgerufen wird, dann kann ich Form2 nicht über die TitelLeiste verschieben.

Angel4585 14. Nov 2005 07:34

Re: [BUG?] MainMenu reagiert nichtmehr
 
WOW, ein ganze WE und kein Mensch da gewesen der ne Ahnung hat was da los ist, gd wie man es behebt. :wall:

Angel4585 15. Nov 2005 12:32

Re: [BUG?] MainMenu reagiert nichtmehr
 
*malbisanseinlebensendeeinSelbstgeprächführt*
Hab das jetzt schon in drei Foren gepostet aber bislang noch ohne Erfolg. Ich warte noch das da so ein Freak vorbeikommt und mir die Lösung hinknallt.

:bounce2: :bounce2: :bounce2: :bounce2: :bounce2: :bounce2: :bounce2: :bounce2: :bounce2: :bounce2: :bounce2:

bigg 15. Nov 2005 13:00

Re: [BUG?] MainMenu reagiert nichtmehr
 
der freak bist wohl du, denk mal drüber nach :roll:

Angel4585 15. Nov 2005 13:16

Re: [BUG?] MainMenu reagiert nichtmehr
 
*denk*

nö :mrgreen:
ich bin nur Praktikannt der (noch)nix weis


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 Uhr.
Seite 1 von 2  1 2      

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