MessageRequester schließt sich nicht

Anfängerfragen zum Programmieren mit PureBasic.
24h-worker
Beiträge: 5
Registriert: 25.06.2008 19:39
Wohnort: Hamburg

MessageRequester schließt sich nicht

Beitrag von 24h-worker »

Mein MessageRequester-Fenster freut sich so, mal auf dem Bildschirm zu erscheinen, dass es sich weigert, wieder zu verschwinden. Ich habe schon mal leicht mit dem Fuß gegen den PC gehauen und einen Hammer neben dem Bildschirm gelegt, aber das Fenster läßt sich davon nicht einschüchtern.

XY1 = MessageRequester("Fensterzeile" , "Hau ab", 0)

Wenn ich
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow anfüge, wird das Fenster zwar geschlossen, aber die Buttons auf dem Menü darunter sind nicht mehr benutzbar (Wahrscheinlich weil sie mit dem gleichen Befehl geschlossen werden)

Bekomme ich irgenwie die WindowID heraus, um mit CloseWindow(Index) nur den MessageRequester zu schließen ?
Rokur
Beiträge: 167
Registriert: 29.12.2005 09:58
Computerausstattung: Intel Core2 Quad (4x2,4 GHz), 4096 MB RAM, GForce 8800GTX 786 MB
Windows XP 32 Bit, PureBasic 4.40 (x86)

Beitrag von Rokur »

Wenn du auf einen Button des MessageRequester klickst, dann schließt sich dieser automatisch. Poste mal etwas mehr von deinem Code, ich vermute jetzt mal das du den in einer Schleife aufrufst.
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

24h-worker hat geschrieben: Bekomme ich irgenwie die WindowID heraus, um mit CloseWindow(Index) nur den MessageRequester zu schließen ?
WindowID(#Window) kann nur für Windows benutzt werden, Requester sind da eigene Sachen. Ebenso ist es mit CloesWindow(#Window).
Win11 x64 | PB 6.20
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wenn dein messagerequester sich nicht schließt, machst du grundsätzlich was falsch.
poste doch mal bitte einen code, der das problem produziert.
die Vermutung von Rokur teile ich vorerst.

@Andesdaf
deine Aussage ist grundsätzlich falsch. Natürlich sind Requester auch Fenster.
allerdings tragen sie keine PB-Nummer ( #Window ),
sondern sind nur über das OS-Handle ( WindowID() ) erreichbar.
man kann also CloseWindow nicht verwenden, weil das als Argument die PB-Nr. erwartet.
man kann mit dem Handle über eine API-Funktion sehr wohl den Requester gewaltsam schließen.
...allerdings sollte das nicht nötig sein, da sich requester automatisch schließen wenn man sie beantwortet.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

So habe ich es ja ungefähr gemeint. Vielleicht etwas doof formuliert. :oops:
Aber ich denke auch, dass das was mit der Schleife zu tun hat.
Win11 x64 | PB 6.20
Antworten