Fensteraufbau abwarten !!

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Ghosty1967
Beiträge: 205
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Fensteraufbau abwarten !!

Beitrag von Ghosty1967 »

Hallo mal wieder...

Mein Problem:
Zeichne ich ein Fenster beim Programmstart und führe direkt danach eine Befehl aus, welcher "einiges" an Zeit beansprucht, dann wird
das Fenster nie voll mit allen Gadget gezeichnet sodern es Fehlen z.B. einige Buttons usw...

Meine Frage(n):
Gibt es eine Möglichkeit PB dazu zu zwingen, erst mit der Programmausführung fortzufahren, wenn das Fenster vollkommen gezeichnet ist oder sowas wie einen erzwungenen Refresh
(nach Möglichkeit ohne API, da im mom nur PB4.01 Demo !)
...und ich habe gesehen, ddas einige mit "WaitWindowEvent() ! 16" arbeiten... was bedeutet denn das "!" und hilft das irgendwie bei meinem Prob ?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Erstelle das Fenster mit dem Flag #PB_Window_Invisible

Unmittelbar vor Deiner Eventschleife:

Code: Alles auswählen

While WindowEvent() : Wend
HideWindow(#DeinFenster, #False)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> und ich habe gesehen, ddas einige mit "WaitWindowEvent() ! 16" arbeiten...
Das spiegelt die Coolness der Leute wieder 8) ( :roll: )

Das ist exakt das gleiche wie "WaitWindowEvent() = #PB_Event_CloseWindow". Ist zwar länge,r aber Konstanten sind ja schließlich dazu da, dir die Denkarbeit abzunehmen: "Ähhh... Was war jetzt nochmal 16?" :wink:

> was bedeutet denn das "!"
Das ! ist der bitweise NOT Operator. Weiteres dazu steht in der Datei "PureBasic.chm" auf deiner Festplatte, Kapitel "Variablen, Typen und Operatoren".

> hilft das irgendwie bei meinem Prob ?
Ich nehm den 50:50 Joker bei dieser JA/NEIN Antwort... :mrgreen:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

AND51 hat geschrieben:Das ist exakt das gleiche wie "WaitWindowEvent() = #PB_Event_CloseWindow".
nein.

es ist funktionell das gleiche wie "WaitWindowEvent() <> #PB_Event_CloseWindow"

anzuwenden ist es im grunde nur für eine verkürzte event-schleife,
die nur auf das fenster-schließen wartet:

Code: Alles auswählen

While WaitWindowEvent() ! 16 : Wend
und auch nur dort ist die verkürzte tipperei ein argument.

generell würde ich auch dazu raten, die konstanten zu verwenden.

es macht den code einfach lesbarer, auch für den programmierer,
und so viel mehr tipparbeit ist das garnicht mit dem autocomplete des editors.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Kaeru Gaman hat geschrieben:
AND51 hat geschrieben:Das ist exakt das gleiche wie "WaitWindowEvent() = #PB_Event_CloseWindow".
nein.

es ist funktionell das gleiche wie "WaitWindowEvent() <> #PB_Event_CloseWindow"
Oh gut, du drauf hingewiesen hast. Ich wollte auch eigentlich <> schreiben, habs sogar in der IDE nachgetestet (mit <>), aber beim Posten den Fehler gemacht. :freak:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Das spiegelt die Coolness der Leute wieder
Danke! Bild

#PB_Event_CloseWindow = #WM_CLOSE = 16 = weniger Tipparbeit für Standard Snippets im Forum
und auch nur dort ist die verkürzte tipperei ein argument.

generell würde ich auch dazu raten, die konstanten zu verwenden.
Jupp.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Antworten