Aktuelle Zeit: 29.10.2020 09:16

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 32 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 22.02.2006 14:40 
Offline
PureBasic Team
Benutzeravatar

Registriert: 11.09.2004 16:35
Wohnort: Saxony / Deutscheinsiedel
Um mal mit PB v4 zu sprechen (schreibe ja gerade die Anleitung dazu), da gibt es WaitWindowEvent() mit einem optionalen Timeout-Parameter.

Als "Vorabdruck" sozusagen hier mal die entsprechenden Passagen aus der aktualisierten Anleitung:

Anleitung PB v4 zu WaitWindowEvent() hat geschrieben:
Ereignis = WaitWindowEvent([Timeout])

Wartet bis ein Ereignis auftritt. Es ist die selbe Funktion wie WindowEvent(), hält aber die Programmausführung an, was sehr wichtig in einer Multitasking Umgebung ist.

Ein optionaler Timeout-Wert (in Millisekunden) kann angegeben werden. Dies veranlasst die Funktion nach einer bestimmten Zeit zur Rückkehr (aus der Wartestellung), wenn keine Ereignisse aufgetreten sind.

Eine Applikation sollte möglichst immer diesen Befehl anstelle von WindowEvent() benutzen. Für weitere Informationen, sehen Sie die Dokumentation zu WindowEvent()

Hinweis: Wenn ein Fenster von einem Thread geöffnet wird, dann muss der Thread auch WindowEvent() oder WaitWindowEvent() in einer Schleife aufrufen, um die Ereignisse für dieses Fenster zu verarbeiten, da Window-Ereignisse nicht zwischen verschiedenen Threads gesendet werden.


Anleitung PB v4 zu WindowEvent() hat geschrieben:
Ereignis = WindowEvent()

Überprüft, ob in irgendeinem der geöffneten Fenster ein Ereignis stattfand.

WindowEvent() gibt das nächste Ereignis aus dem "Ereignis-Queue" (Warteschlange mit Ereignissen) zurück bzw. null, wenn es keine weiteren Ereignisse gibt. Anders als WaitWindowEvent() wartet die Funktion nicht auf das nächste Ereignis - sie kehrt immer sofort zurück.

Dies macht sie nützlich für Ereignisschleifen von Fenstern, wo - ohne dass ein Ereignis auftritt (z.B. bei Network Transaktionen) - andere Prozesse ausgeführt werden müssen und daher WaitWindowEvent() nicht verwendet werden kann.

Sie muss mit Vorsicht benutzt werden, da sie bei fortlaufender Verwendung - anders als WaitWindowEvent() - anderen Programmen während des Wartens auf ein Ereignis keine Rechenzeit zur Verfügung stellt und damit alle CPU-Power verbraucht. In diesem Fall sollte innerhalb der Schleife entweder Delay() oder WaitWindowEvent() mit einem niedrigen Timeout-Wert verwendet werden.

Um die Fenster-Nummer, in dem das Ereignis stattfand, bestimmen zu können, müssen Sie die EventWindow() Funktion benutzen.

_________________
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 22.02.2006 14:48 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Danke :allright: , aber es erklärt leider immernoch nicht die Vorgehensweise von WaitWindowEvent() hinter den Kulissen.
Hat denn da keiner Insiderwissen ?

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 22.02.2006 15:28 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
@Andre
Kannste nicht ein paar Deiner Vorabdrücke Online stellen, so gezippte html
oder txt. Wäre sehr Nett, vor allem weil ich denke, das die Betaphase wohl
doch etwas länger dauern wird. Dann gibts auch nicht soviele Bugmeldungen,
die durch mißverstande Funktionen entstehen.

Kann ja auch ein dt. engl. Mischmasch sein :wink:

_________________
PureBasic 5.71 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 19.3 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 22.02.2006 15:35 
Offline
PureBasic Team
Benutzeravatar

Registriert: 11.09.2004 16:35
Wohnort: Saxony / Deutscheinsiedel
@ts-soft: so schlecht ist die Idee nicht.

Aber diese ist auch mit erhöhtem Aufwand (vom Traffic mal abgesehen) verbunden... :roll:

Falls die Beta-Phase wirklich länger dauert, entscheide ich mich am Wochenende (dann sollten alle wesentlichen Ergänzungen der Hilfe fertig sein) neu. 8)

_________________
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 22.02.2006 16:04 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
@Andre
Wegen dem Traffic, kannste es mir ja schicken, ich stell es dann Online.
Von meinen 30 GB Traffic-Volumen, wird ja gerade mal 1-2 % genutzt :wink:

_________________
PureBasic 5.71 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 19.3 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 24.02.2006 17:24 
Offline
Benutzeravatar

Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg
Hex0r hat zwar inzwischen Fred schon gefragt, noch mal danke, aber als
ich dann mir den Befehl angeschaut hab ist mir eingefallen, das Danilo
doch in der FAQ des Forums was gepostet hat, und schwubs ... da war
auch die Antwort /:-> ...

Also das zauberwort ist der API-Befehl GetMessage_(). Näheres im FAQ
Bereich im Thread Wie funktioniert die Messagequeue unter Windows?

MFG PMV

_________________
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 07.03.2006 01:17 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Andre hat geschrieben:
@ts-soft: so schlecht ist die Idee nicht.

Aber diese ist auch mit erhöhtem Aufwand (vom Traffic mal abgesehen) verbunden... :roll:

Falls die Beta-Phase wirklich länger dauert, entscheide ich mich am Wochenende (dann sollten alle wesentlichen Ergänzungen der Hilfe fertig sein) neu. 8)

Die deutsche Hilfe als Vorabversion ist jetzt erhältlich: http://forums.purebasic.com/german/view ... 9946#79946

_________________
PureBasic 5.71 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 19.3 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 12.03.2006 21:07 
Offline
Benutzeravatar

Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg
Danke euch für die Info.

Nachdem nun geklärt ist, wie WaitWindowEvent() arbeitet hab ich das
System der CWL umgestellt und für Anwendungen sinnvoll gemacht. Nun
arbeitet die CWL auch die Event-Queue von Windows ab und gibt diese
zusätzlich zu den CWL-Events zurück.

Da ich allerdings die Animationsmöglichkeit auch für Anwendungen nutzen
möchte hab ich Threads in verwendung. Mit eingeschaltetem Debugger
springt dieser allerdings hin und wieder mit einem "Invalid Memory
access" an. Für die jenigen, die die CWL eventuell später verwenden
möchten, könnte das beim Debuggen relativ nervig werden. Ich hoffe,
dass wenn ich später die PB4.0 verwende, dieses Problem beseitigen
kann. Jetzt würde ich allerdings gern von euch wissen, ob das aktuelle
Beispiel ( 0.58 ) bei euch stabil läuft. Ich hab das Programm 50 mal
gestartet, ohne Fehlermeldung. Ich hoffe das könnt ihr mir nachmachen
:D . Wäre euch zumindest sehr verbunden, wenn ihr das eine oder andere
Duzentmal die EXE starten könntet :D .

Download: http://www.pmv.de.vu/CWL/CWL_Beispiel_0.58.zip

MFG PMV

_________________
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 12.03.2006 21:40 
Offline
Benutzeravatar

Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Hehe, hab nen Schönheits Fehler gefunden. Wenn man das Fenster
maximiert, wird auch die Größe der Taskleiste berücksichtigt, finde
ich gut so. Aber du berücksichtigst nicht ob die Taskleiste eingeklapt
ist oder nicht ;). Sprich, wenn ich Fenster vergrößere und Taskleiste
ist zu, wird die Taskleiste trotzdem von dir in seiner vollen Größe
berücksichtigt.

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.05.2006 07:51 
Offline
Benutzeravatar

Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Testsystem: Windows 2000 V5 SP4
Sempron 2400+
256 MB Ram

FPS: Max 3.000 bei einem Fenster, etwas kleiner gezogen.
FPS: Min 500 bei einem Fenster riesig
FPS: zwischen 380 und 720 bei den drei Fenstern wärend des Verschiebends ohne andere Skalierung

Im Durchschnitt ~ 680


:shock: Also wenn das geht, dass man dein FensterSystem genauso gut unter dem Windows-Desktop wie im Grafik-Spiele-Modus nurtzen kann.

Dann ist es super. Weiter so :allright:

_________________
Kinder an die Macht http://scratch.mit.edu/


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 32 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 19 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye