Re: [BLACKBOX] Program freezes when window loses focus

From: Douglas G. Danforth <"Douglas>
Date: Tue, 29 Mar 2011 15:58:11 -0700

----boundary-LibPST-iamunique-328888169_-_- Content-type: text/plain Rex, You are asking two questions (1) How does the BB framework get a keystroke and (2)Given that it has a keystroke how do I get that keystroke. I claim it really doesn't matter what BB is doing behind the scenes. All you want is the keystroke when a key is struck (asynchronously). You really don't want a loop that waits but rather a signal (in the form of a procedure call) that tells you here is the keystroke. The background tasking of BB runs at 20 times a second so you can easily nudge around graphical images each time a key is struck. Why do you even care what BB is doing? -Doug On 3/29/2011 3:33 PM, Rex Couture wrote: At 04:35 PM 3/29/2011, you wrote: The principles behind ReadKey are in complete opposition to the principles that Oberon (& BB) operate on. Oberon and BB operate on an event-driven model in which the code that we write is expected to provide handlers that the event loop calls in response to an event. In this sense they are always 'waiting for' a keystroke or similar event. In other words, it's asynchronous, like an interrupt handler. You should not be writing code to read directly from the keyboard. I see. That's fine. I don't really care how one gets the keystroke, but there must be a simple way of reading keys. BB reads keystrokes SOMEHOW (I don't know, maybe it's complicated). Is there a SIMPLE way of handling the following three cases, for example? 1. REPEAT (* I don't know how long this loop will take. If it takes a month, I might want to interrupt it *) UNTIL something happens (* message from windows that a key is pressed? *) 2. I'm doing a delicate visual, graphical manipulation and I want to nudge an image around with keystrokes. 3. Suppose you want to write a specialized editor. You need to read a keystroke and (optionally) display it. How does the BB environment read a keystroke? Any hints? Rex Couture ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy ----boundary-LibPST-iamunique-328888169_-_- Content-type: application/rtf Content-transfer-encoding: base64 Content-Disposition: attachment; filename="rtf-body.rtf" e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm c3dpc3MgQXJpYWw7fQ0Ke1xmMVxmbW9kZXJuIENvdXJpZXIgTmV3O30NCntcZjJcZm5pbFxmY2hh cnNldDIgU3ltYm9sO30NCntcZjNcZm1vZGVyblxmY2hhcnNldDAgQ291cmllciBOZXc7fX0NCntc Y29sb3J0YmxccmVkMFxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7fQ0KXHVjMVxw YXJkXHBsYWluXGRlZnRhYjM2MCBcZjBcZnMyNCANCntcKlxodG1sdGFnMjQzIDwhRE9DVFlQRSBI VE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPn0NCntc KlxodG1sdGFnMyBccGFyIH0NCntcKlxodG1sdGFnMTkgPGh0bWw+fQ0Ke1wqXGh0bWx0YWcyIFxw YXIgfQ0Ke1wqXGh0bWx0YWcyNDIgICB9DQp7XCpcaHRtbHRhZzM0IDxoZWFkPn0NCntcKlxodG1s dGFnMSBccGFyIH0NCntcKlxodG1sdGFnMjQxICAgICB9DQp7XCpcaHRtbHRhZzEgXHBhciB9DQp7 XCpcaHRtbHRhZzI0MSAgIH0NCntcKlxodG1sdGFnNDEgPC9oZWFkPn0NCntcKlxodG1sdGFnMiBc cGFyIH0NCntcKlxodG1sdGFnMjQyICAgfQ0Ke1wqXGh0bWx0YWc1MCA8Ym9keSB0ZXh0PSIjMDAw MDAwIiBiZ2NvbG9yPSIjZmZmZmZmIj59XGh0bWxydGYgXHZpZXdraW5kNQ0Ke1wqXGJhY2tncm91 bmQge1xzaHB7XCpcc2hwaW5zdHtcc3B7XHNuIGZpbGxDb2xvcn17XHN2IDE2Nzc3MjE1fX17XHNw e1xzbiBmRmlsbGVkfXtcc3YgMX19fX19XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0K e1wqXGh0bWx0YWcyNDAgICAgIH17XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgUmV4 LA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0 YWc4NCAgICAgfVlvdSBhcmUgYXNraW5nIHR3byBxdWVzdGlvbnMNCntcKlxodG1sdGFnMTE2IDxi cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxo dG1sdGFnODQgICAgIH0oMSkgSG93IGRvZXMgdGhlIEJCIGZyYW1ld29yayBnZXQgYSBrZXlzdHJv a2UNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH1hbmQNCntcKlxodG1sdGFnMTE2IDxi cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxo dG1sdGFnODQgICAgIH0oMilHaXZlbiB0aGF0IGl0IGhhcyBhIGtleXN0cm9rZSBob3cgZG8gSSBn ZXQgdGhhdCBrZXlzdHJva2UuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpc aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg XHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9SSBjbGFpbSBpdCByZWFsbHkgZG9lc24ndCBtYXR0 ZXIgd2hhdCBCQiBpcyBkb2luZyBiZWhpbmQgdGhlIHNjZW5lcy4NCntcKlxodG1sdGFnMTE2IDxi cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxo dG1sdGFnODQgICAgIH1BbGwgeW91IHdhbnQgaXMgdGhlIGtleXN0cm9rZSB3aGVuIGEga2V5IGlz IHN0cnVjayAoYXN5bmNocm9ub3VzbHkpLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAg fVlvdSByZWFsbHkgZG9uJ3Qgd2FudCBhIGxvb3AgdGhhdCB3YWl0cyBidXQgcmF0aGVyIGEgc2ln bmFsIChpbiB0aGUNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc4NCAgICAgfWZvcm0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH1vZiBh IHByb2NlZHVyZSBjYWxsKSB0aGF0IHRlbGxzIHlvdSBoZXJlIGlzIHRoZSBrZXlzdHJva2UuDQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0 ICAgICB9VGhlIGJhY2tncm91bmQgdGFza2luZyBvZiBCQiBydW5zIGF0IDIwIHRpbWVzIGEgc2Vj b25kIHNvIHlvdSBjYW4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1s cnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH1lYXNpbHkgbnVk Z2UgYXJvdW5kIGdyYXBoaWNhbCBpbWFnZXMgZWFjaCB0aW1lIGEga2V5IGlzIHN0cnVjay4NCntc KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn NCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQg ICAgIH1XaHkgZG8geW91IGV2ZW4gY2FyZSB3aGF0IEJCIGlzIGRvaW5nPw0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0K e1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfS1Eb3Vn DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRh Zzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9T24gMy8yOS8yMDExIDM6 MzMgUE0sIFJleCBDb3V0dXJlIHdyb3RlOg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9e1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9 XGh0bWxydGYwDQoNCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGVccGFyICAgICAgIGNpdGU9Im1p ZDo3LjAuMS4wLjEuMjAxMTAzMjkxNzEzMDMuMDFjNGQ1MDhAbGV2ZWUud3VzdGwuZWR1IlxwYXIg ICAgICAgdHlwZT0iY2l0ZSI+fVxodG1scnRmIFxwYXINCntcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgICB9DQp7XCpcaHRtbHRhZzEyOCA8cHJlIHdy YXA9IiI+fVxodG1scnRmIHtccGFyZFxwbGFpblxmMVxmczIwIFxodG1scnRmMCBcaHRtbHJ0ZiB7 XGh0bWxydGYwIFxsaTM2MCBBdCAwNDozNSBQTSAzLzI5LzIwMTEsIHlvdSB3cm90ZTpccGFyXGh0 bWxydGZ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnMTM2IDwvcHJlPn1caHRtbHJ0ZiB9XGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICAgICAgfQ0Ke1wqXGh0 bWx0YWc5NiA8YmxvY2txdW90ZSB0eXBlPSJjaXRlIj59XGh0bWxydGYgXHBhcg0Ke1xodG1scnRm MCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICAgICAgfQ0Ke1wqXGh0 bWx0YWcxMjggPHByZSB3cmFwPSIiPn1caHRtbHJ0ZiB7XHBhcmRccGxhaW5cZjFcZnMyMCBcaHRt bHJ0ZjAgXGh0bWxydGYge1xodG1scnRmMCBcbGk3MjAgVGhlIHByaW5jaXBsZXMgYmVoaW5kIFJl YWRLZXkgYXJlIGluIGNvbXBsZXRlIG9wcG9zaXRpb24gdG8gdGhlIHByaW5jaXBsZXNcbGluZQ0K dGhhdCBPYmVyb24gKA0Ke1wqXGh0bWx0YWc4NCAmYW1wO31caHRtbHJ0ZiAmXGh0bWxydGYwICBC Qikgb3BlcmF0ZSBvbi4gT2Jlcm9uIGFuZCBCQiBvcGVyYXRlIG9uIGFuIGV2ZW50LWRyaXZlblxs aW5lDQptb2RlbCBpbiB3aGljaCB0aGUgY29kZSB0aGF0IHdlIHdyaXRlIGlzIGV4cGVjdGVkIHRv IHByb3ZpZGUgaGFuZGxlcnMgdGhhdFxsaW5lDQp0aGUgZXZlbnQgbG9vcCBjYWxscyBpbiByZXNw b25zZSB0byBhbiBldmVudC4gSW4gdGhpcyBzZW5zZSB0aGV5IGFyZSBhbHdheXNcbGluZQ0KJ3dh aXRpbmcgZm9yJyBhIGtleXN0cm9rZSBvciBzaW1pbGFyIGV2ZW50LiBJbiBvdGhlciB3b3Jkcywg aXQnc1xsaW5lDQphc3luY2hyb25vdXMsIGxpa2UgYW4gaW50ZXJydXB0IGhhbmRsZXIuIFlvdSBz aG91bGQgbm90IGJlIHdyaXRpbmcgY29kZSB0b1xsaW5lDQpyZWFkIGRpcmVjdGx5IGZyb20gdGhl IGtleWJvYXJkLlxwYXJcaHRtbHJ0Zn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMzYgPC9wcmU+ fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0 MCAgICAgICB9DQp7XCpcaHRtbHRhZzEwNCA8L2Jsb2NrcXVvdGU+fVxodG1scnRmIH1ccGFyDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgICB9DQp7 XCpcaHRtbHRhZzEyOCA8cHJlIHdyYXA9IiI+fVxodG1scnRmIHtccGFyZFxwbGFpblxmMVxmczIw IFxodG1scnRmMCBcaHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2MCBcbGluZQ0KXGxpbmUNCiAgICAg ICAgSSBzZWUuICBUaGF0J3MgZmluZS4gIEkgZG9uJ3QgcmVhbGx5IGNhcmUgaG93IG9uZSBnZXRz IHRoZSBrZXlzdHJva2UsIGJ1dCB0aGVyZSBtdXN0IGJlIGEgc2ltcGxlIHdheSBvZiByZWFkaW5n IGtleXMuICBCQiByZWFkcyBrZXlzdHJva2VzIFNPTUVIT1cgKEkgZG9uJ3Qga25vdywgbWF5YmUg aXQncyBjb21wbGljYXRlZCkuICBJcyB0aGVyZSBhIFNJTVBMRSB3YXkgb2YgaGFuZGxpbmcgdGhl IGZvbGxvd2luZyB0aHJlZSBjYXNlcywgZm9yIGV4YW1wbGU/XGxpbmUNClxsaW5lDQoxLiAgUkVQ RUFUXGxpbmUNCiAgICAgICAgKCogSSBkb24ndCBrbm93IGhvdyBsb25nIHRoaXMgbG9vcCB3aWxs IHRha2UuICBJZiBpdCB0YWtlcyBhIG1vbnRoLCBJIG1pZ2h0IHdhbnQgdG9cbGluZQ0KICAgICAg ICAgICAgICAgIGludGVycnVwdCBpdCAqKVxsaW5lDQpVTlRJTCBzb21ldGhpbmcgaGFwcGVucyAo KiBtZXNzYWdlIGZyb20gd2luZG93cyB0aGF0IGEga2V5IGlzIHByZXNzZWQ/ICopXGxpbmUNClxs aW5lDQoyLiBJJ20gZG9pbmcgYSBkZWxpY2F0ZSB2aXN1YWwsIGdyYXBoaWNhbCBtYW5pcHVsYXRp b24gYW5kIEkgd2FudCB0byBudWRnZSBhbiBpbWFnZSBhcm91bmQgd2l0aCBrZXlzdHJva2VzLlxs aW5lDQpcbGluZQ0KMy4gU3VwcG9zZSB5b3Ugd2FudCB0byB3cml0ZSBhIHNwZWNpYWxpemVkIGVk aXRvci4gIFlvdSBuZWVkIHRvIHJlYWQgYSBrZXlzdHJva2UgYW5kIChvcHRpb25hbGx5KSBkaXNw bGF5IGl0LiAgSG93IGRvZXMgdGhlIEJCIGVudmlyb25tZW50IHJlYWQgYSBrZXlzdHJva2U/XGxp bmUNClxsaW5lDQogICAgICAgIEFueSBoaW50cz9cbGluZQ0KXGxpbmUNClJleCBDb3V0dXJlIFxs aW5lDQpcbGluZQ0KXGxpbmUNCi0tLS1cbGluZQ0KVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNz YWdlIHdpdGggYm9keSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8ge30NCntcKlxodG1sdGFnODQgPGEg Y2xhc3M9Im1vei10eHQtbGluay1hYmJyZXZpYXRlZCIgaHJlZj0ibWFpbHRvOkxJU1RTRVJWQExJ U1RTLk9CRVJPTi5DSCI+fVxodG1scnRmIHtcZmllbGR7XCpcZmxkaW5zdHtIWVBFUkxJTksgIm1h aWx0bzpMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0gifX17XGZsZHJzbHRcY2YxXHVsIFxodG1scnRm MCBMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0hcaHRtbHJ0ZiB9XGh0bWxydGYwIFxodG1scnRmIH1c aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzkyIDwvYT59XGxpbmUNClxsaW5lDQpccGFyXGh0bWxydGZ9 XGh0bWxydGYwDQoNCntcKlxodG1sdGFnMTM2IDwvcHJlPn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0K e1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICAgIH0NCntcKlxodG1sdGFnMTA0 IDwvYmxvY2txdW90ZT59XGh0bWxydGYgfVxwYXINClxodG1scnRmMCANCntcKlxodG1sdGFnMCBc cGFyIH0NCntcKlxodG1sdGFnMjQwICAgfQ0Ke1wqXGh0bWx0YWc1OCA8L2JvZHk+fQ0Ke1wqXGh0 bWx0YWcyIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNyA8L2h0bWw+fQ0Ke1wqXGh0bWx0YWczIFxwYXIg fQ0Ke1wqXGh0bWx0YWc2NCA8cD59XGh0bWxydGYge1xodG1scnRmMCANCntcKlxodG1sdGFnNCBc cGFyIH0tLS0tDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBUbyB1bnN1 YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5ICJTSUdOT0ZGIEJMQUNLQk9YIiB0byBM SVNUU0VSVkBMSVNUUy5PQkVST04uQ0gNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0 bWxydGYwIFxodG1scnRmfX0AS0JPWC1zdWJzY3JpYmU= ----boundary-LibPST-iamunique-328888169_-_--- Received on Wed Mar 30 2011 - 00:58:11 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:30:16 UTC