Moin,
mich stört, daß beim Öffnen des Programmfensters die Gadgets so kleckerweise nach und nach auf dem Fenster erscheinen. Es gibt doch irgendwie eine Möglichkeit, das Fenster verzögert öffnen zu lassen und ich wußte auch schonmal, wie das geht. Filmriß, ist weg. Kann mir das bitte nochmal jemand erklären? Danke.
Fenster verzögert öffnen lassen
- 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
Re: Fenster verzögert öffnen lassen
Fenster versteckt öffnen, Gadgets aufbauen, While WindowEvent(): Wend, Fenster anzeigen.
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Fenster verzögert öffnen lassen
Vielen Dank, werde ich versuchen, muß erstmal zum Dienst.
Re: Fenster verzögert öffnen lassen
Ich habe das mittlerweile ausprobiert, aber zur eigenen Überraschung ändert das nicht die Bohne was. Irgendwie ging das aber, daß die Gadgets nicht alle kleckerweise auf den Bildschirm kommen, wenn man das Programm startet, sondern schön alle zugleich. Wenn ich das bloß abgespeichert hätte! Weitere Vorschläge erwünscht, Danke.
Re: Fenster verzögert öffnen lassen
@PB42: Die Vorgehensweise, die Thomas Dir vorgeschlagen hat,
ist genau der richtige Weg. Wenn es bei korrekter Anwendung
der von ihm genannten Schritte bei Dir nicht funktioniert, solltest
Du sicherheitshalber mal Deinen Code posten. Kann ja sein, dass
Du Threads oder Timer verwendest.
Grüße ... Kiffi
ist genau der richtige Weg. Wenn es bei korrekter Anwendung
der von ihm genannten Schritte bei Dir nicht funktioniert, solltest
Du sicherheitshalber mal Deinen Code posten. Kann ja sein, dass
Du Threads oder Timer verwendest.
Code: Alles auswählen
OpenWindow(DeinFenster, ..., ... #PB_Window_Invisible)
[...]
While WindowEvent()
Wend
HideWindow(DeinFenster, #False)
[WaitWindowEvent-Schleife]
a²+b²=mc²
- PureLust
- Beiträge: 1145
- Registriert: 21.07.2005 00:02
- Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
- Wohnort: am schönen Niederrhein
Re: Fenster verzögert öffnen lassen
Jo, hatte ich auch anfänglich gedacht, bis ich es ausprobiert habe.Kiffi hat geschrieben:@PB42: Die Vorgehensweise, die Thomas Dir vorgeschlagen hat,
ist genau der richtige Weg.

Das "Erstellen" der Gadgets wird dadurch zwar unsichtbar, nicht jedoch der Refresh (der bei einem sichtbar machen des Fensters ja eingeleitet wird).
Ich habe das hier mal schnell mit einem kleinen Testcode überprüft, bei dem 50 ListIconGadgets() in einem Fenster erstellt werden.
Auf meinem PC dauert dieser Refresh nur weniger Millisekunden, bei 500 ListIconGadgets() dann aber schon in etwa 300 Millisekunden, was man wiederum deutlich sehen kann.
Nun nehme ich mal an, dass der PC von PB42 nicht sonderlich schnell ist, und somit der reine Refresh der Gadgets (nach dem sichtbar machen des Fensters) schon recht lange bei ihm dauert.
Den kann man durch einfaches Verstecken des Fensters natürlich nicht verhindern.
Anbei mal der kleine Testcode:
Code: Alles auswählen
; OpenWindow(0,-8000,0,800,600,"Tons of Gadgets", #PB_Window_SystemMenu)
OpenWindow(0,0,0,800,600,"Tons of Gadgets", #PB_Window_SystemMenu | #PB_Window_Invisible | #PB_Window_ScreenCentered)
For n = 1 To 500
ListIconGadget(#PB_Any, Random(600), Random(450), 200, 150, "ListIconGadget-"+Str(n),200)
Next n
; SmartWindowRefresh(0,#True)
timer = ElapsedMilliseconds()
While ElapsedMilliseconds() < timer + 500
While WindowEvent() : Wend
Delay(1)
Wend
; ResizeWindow(0,200,#PB_Ignore,#PB_Ignore,#PB_Ignore)
HideWindow(0, #False)
AddWindowTimer(0,0,2000)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Timer
HideWindow(0, #True)
HideWindow(0, #False)
endif
;Debug Event
Until Event = #PB_Event_CloseWindow
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Re: Fenster verzögert öffnen lassen
der code ist mist .. (mit verlaub)
. .sowas macht doch niemand in ernsthaften Anwendungen und PB42 sicher auch nicht.
überlappende Gadgets sollten mit VB nicht unter Version 6 bestraft werden.
da reicht es schon ein Windowsrefresh (überdeckendes Fenster wegziehen) und die Orgie geht los.
ich sag mal : CODE HER

überlappende Gadgets sollten mit VB nicht unter Version 6 bestraft werden.
da reicht es schon ein Windowsrefresh (überdeckendes Fenster wegziehen) und die Orgie geht los.
ich sag mal : CODE HER
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Re: Fenster verzögert öffnen lassen
Vielen Dank nochmal. Den Code kann ich jetzt hier nicht einstellen, weil der einfach zu lang ist. Dann brauchen die Gadgets halt eine Weile, bis die alle auf dem Fenster da sind.