Re: [BLACKBOX] Program freezes when window loses focus

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

----boundary-LibPST-iamunique-1706906089_-_- Content-type: text/plain Rex, I should have said that I took my code from ObxWrappers and modified it slightly to be more robust and not hang. -Doug Danforth On 3/29/2011 1:26 PM, Rex Couture wrote: At 06:42 PM 3/28/2011, Stephen Troy wrote: Thanks, Rex, but it seems as though the application is really, really freezing, and it doesn't seem to respond to anything, up to and including a sledgehammer. Yes, I know. At this point I'm trying to understand it myself. This shows my profound ignorance of Windows programming, but beyond that, I'm trying to find a ReadKey method that works. With just the line REPEAT UNTIL ORD(XYplane.ReadKey()) #0 the display freezes solid if you change focus with the mouse, but it still reponds to the keystroke if you through windows. With REPEAT ProcessMessages UNTIL ORD(k.ReadKey()) # 0; ReadKey is unresponsive, and there are bizarre, unpredictable effects on the BB GUI. (Complete program below) Does BB have any simple, unfailing procedure to read input directly from the keyboard? Evidently XYplane.ReadKey doesn't work. There has to be something. Rex Couture MODULE TestReadKey; (* Not working *) IMPORT k:=XYplane,StdLog, Win:= WinApi; PROCEDURE ProcessMessages; VAR msg: Win.MSG; res: INTEGER; BEGIN WHILE Win.PeekMessage(msg, 0, 0, 0, Win.PM_REMOVE) # 0 DO res := Win.TranslateMessage(msg); res := Win.DispatchMessageA(msg) END END ProcessMessages; PROCEDURE P*; VAR c: CHAR; BEGIN REPEAT ProcessMessages UNTIL ORD(k.ReadKey()) # 0; StdLog.Ln; StdLog.String( 'If you see this, it works'); END P; END TestReadKey. ---- 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-1706906089_-_- 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 YWc4NCAgICAgfUkgc2hvdWxkIGhhdmUgc2FpZCB0aGF0IEkgdG9vayBteSBjb2RlIGZyb20gT2J4 V3JhcHBlcnMgYW5kIG1vZGlmaWVkDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1s cnRmMCANCntcKlxodG1sdGFnODQgICAgIH1pdCBzbGlnaHRseQ0Ke1wqXGh0bWx0YWcxMTYgPGJy Pn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0 bWx0YWc4NCAgICAgfXRvIGJlIG1vcmUgcm9idXN0IGFuZCBub3QgaGFuZy4NCntcKlxodG1sdGFn MTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0N CntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH0tRG91 ZyBEYW5mb3J0aA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0K e1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfU9uIDMv MjkvMjAxMSAxOjI2IFBNLCBSZXggQ291dHVyZSB3cm90ZToNCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfXtcKlxodG1sdGFnNzJ9XGh0 bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzk2IDxibG9ja3F1b3RlXHBhciAgICAg ICBjaXRlPSJtaWQ6Ny4wLjEuMC4xLjIwMTEwMzI5MTQxNDQ2LjAxYzRjOGEwQGxldmVlLnd1c3Rs LmVkdSJccGFyICAgICAgIHR5cGU9ImNpdGUiPn1caHRtbHJ0ZiBccGFyDQp7XGh0bWxydGYwIA0K e1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICAgICAgfQ0Ke1wqXGh0bWx0YWcx MjggPHByZSB3cmFwPSIiPn1caHRtbHJ0ZiB7XHBhcmRccGxhaW5cZjFcZnMyMCBcaHRtbHJ0ZjAg XGh0bWxydGYge1xodG1scnRmMCBcbGkzNjAgQXQgMDY6NDIgUE0gMy8yOC8yMDExLCBTdGVwaGVu IFRyb3kgd3JvdGU6XHBhclxodG1scnRmfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEzNiA8L3By ZT59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFn MjQwICAgICAgIH0NCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+fVxodG1s cnRmIFxwYXINCntcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0 MCAgICAgICAgIH0NCntcKlxodG1sdGFnMTI4IDxwcmUgd3JhcD0iIj59XGh0bWxydGYge1xwYXJk XHBsYWluXGYxXGZzMjAgXGh0bWxydGYwIFxodG1scnRmIHtcaHRtbHJ0ZjAgXGxpNzIwIFRoYW5r cywgUmV4LCBidXQgaXQgc2VlbXMgYXMgdGhvdWdoIHRoZSBhcHBsaWNhdGlvbiBpcyByZWFsbHks IHJlYWxseSBmcmVlemluZywgYW5kIGl0IGRvZXNuJ3Qgc2VlbSB0byByZXNwb25kIHRvIGFueXRo aW5nLCB1cCB0byBhbmQgaW5jbHVkaW5nIGEgc2xlZGdlaGFtbWVyLlxwYXJcaHRtbHJ0Zn1caHRt bHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMzYgPC9wcmU+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgICB9DQp7XCpcaHRtbHRhZzEwNCA8 L2Jsb2NrcXVvdGU+fVxodG1scnRmIH1ccGFyDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBh ciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgICB9DQp7XCpcaHRtbHRhZzEyOCA8cHJlIHdyYXA9IiI+ fVxodG1scnRmIHtccGFyZFxwbGFpblxmMVxmczIwIFxodG1scnRmMCBcaHRtbHJ0ZiB7XGh0bWxy dGYwIFxsaTM2MCBcbGluZQ0KXGxpbmUNCiAgICAgICAgWWVzLCBJIGtub3cuICBBdCB0aGlzIHBv aW50IEknbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCBpdCBteXNlbGYuICBUaGlzIHNob3dzIG15IHBy b2ZvdW5kIGlnbm9yYW5jZSBvZiBXaW5kb3dzIHByb2dyYW1taW5nLCBidXQgYmV5b25kIHRoYXQs IEknbSB0cnlpbmcgdG8gZmluZCBhIFJlYWRLZXkgbWV0aG9kIHRoYXQgd29ya3MuICBXaXRoIGp1 c3QgdGhlIGxpbmVcbGluZQ0KXGxpbmUNClJFUEVBVCBVTlRJTCBPUkQoWFlwbGFuZS5SZWFkS2V5 KCkpICMwXGxpbmUNClxsaW5lDQp0aGUgZGlzcGxheSBmcmVlemVzIHNvbGlkIGlmIHlvdSBjaGFu Z2UgZm9jdXMgd2l0aCB0aGUgbW91c2UsIGJ1dCBpdCBzdGlsbCByZXBvbmRzIHRvIHRoZSBrZXlz dHJva2UgaWYgeW91IA0Ke1wqXGh0bWx0YWc4NCAmbHQ7fVxodG1scnRmIDxcaHRtbHJ0ZjAgQWx0 DQp7XCpcaHRtbHRhZzg0ICZndDt9XGh0bWxydGYgPlxodG1scnRmMCANCntcKlxodG1sdGFnODQg Jmx0O31caHRtbHJ0ZiA8XGh0bWxydGYwIFRhYg0Ke1wqXGh0bWx0YWc4NCAmZ3Q7fVxodG1scnRm ID5caHRtbHJ0ZjAgIHRocm91Z2ggd2luZG93cy5cbGluZQ0KXGxpbmUNCldpdGhcbGluZQ0KXGxp bmUNClJFUEVBVFxsaW5lDQogICAgICAgIFByb2Nlc3NNZXNzYWdlc1xsaW5lDQpVTlRJTCBPUkQo ay5SZWFkS2V5KCkpICMgMDtcbGluZQ0KXGxpbmUNClJlYWRLZXkgaXMgdW5yZXNwb25zaXZlLCBh bmQgdGhlcmUgYXJlIGJpemFycmUsIHVucHJlZGljdGFibGUgZWZmZWN0cyBvbiB0aGUgQkIgR1VJ LiAgKENvbXBsZXRlIHByb2dyYW0gYmVsb3cpXGxpbmUNClxsaW5lDQogICAgICAgIERvZXMgQkIg aGF2ZSBhbnkgc2ltcGxlLCB1bmZhaWxpbmcgcHJvY2VkdXJlIHRvIHJlYWQgaW5wdXQgZGlyZWN0 bHkgZnJvbSB0aGUga2V5Ym9hcmQ/ICBFdmlkZW50bHkgWFlwbGFuZS5SZWFkS2V5IGRvZXNuJ3Qg d29yay4gIFRoZXJlIGhhcyB0byBiZSBzb21ldGhpbmcuXGxpbmUNClxsaW5lDQpSZXggQ291dHVy ZVxsaW5lDQpcbGluZQ0KXGxpbmUNCk1PRFVMRSBUZXN0UmVhZEtleTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKCogTm90IHdvcmtpbmcgKilcbGluZQ0KSU1QT1JUIGs6PVhZcGxh bmUsU3RkTG9nLCBXaW46PSBXaW5BcGk7XGxpbmUNClxsaW5lDQpQUk9DRURVUkUgUHJvY2Vzc01l c3NhZ2VzO1xsaW5lDQogIFZBUiBtc2c6IFdpbi5NU0c7IHJlczogSU5URUdFUjtcbGluZQ0KQkVH SU5cbGluZQ0KICBXSElMRSBXaW4uUGVla01lc3NhZ2UobXNnLCAwLCAwLCAwLCBXaW4uUE1fUkVN T1ZFKSAjIDAgRE9cbGluZQ0KICAgIHJlcyA6PSBXaW4uVHJhbnNsYXRlTWVzc2FnZShtc2cpO1xs aW5lDQogICAgcmVzIDo9IFdpbi5EaXNwYXRjaE1lc3NhZ2VBKG1zZylcbGluZQ0KICBFTkRcbGlu ZQ0KRU5EIFByb2Nlc3NNZXNzYWdlcztcbGluZQ0KXGxpbmUNClBST0NFRFVSRSBQKjtcbGluZQ0K ICAgICAgICBWQVIgYzogQ0hBUjtcbGluZQ0KICAgICAgICBCRUdJTlxsaW5lDQogICAgICAgIFJF UEVBVFxsaW5lDQogICAgICAgICAgICAgICAgUHJvY2Vzc01lc3NhZ2VzXGxpbmUNCiAgICAgICAg VU5USUwgT1JEKGsuUmVhZEtleSgpKSAjIDA7XGxpbmUNCiAgICAgICAgU3RkTG9nLkxuO1xsaW5l DQogICAgICAgIFN0ZExvZy5TdHJpbmcoICdJZiB5b3Ugc2VlIHRoaXMsIGl0IHdvcmtzJyk7XGxp bmUNCiAgICAgICAgRU5EIFA7XGxpbmUNCkVORCBUZXN0UmVhZEtleS4gXGxpbmUNClxsaW5lDQpc bGluZQ0KLS0tLVxsaW5lDQpUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5 ICJTSUdOT0ZGIEJMQUNLQk9YIiB0byB7fQ0Ke1wqXGh0bWx0YWc4NCA8YSBjbGFzcz0ibW96LXR4 dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWlsdG86TElTVFNFUlZATElTVFMuT0JFUk9OLkNI Ij59XGh0bWxydGYge1xmaWVsZHtcKlxmbGRpbnN0e0hZUEVSTElOSyAibWFpbHRvOkxJU1RTRVJW QExJU1RTLk9CRVJPTi5DSCJ9fXtcZmxkcnNsdFxjZjFcdWwgXGh0bWxydGYwIExJU1RTRVJWQExJ U1RTLk9CRVJPTi5DSFxodG1scnRmIH1caHRtbHJ0ZjAgXGh0bWxydGYgfVxodG1scnRmMCANCntc KlxodG1sdGFnOTIgPC9hPn1cbGluZQ0KXGxpbmUNClxwYXJcaHRtbHJ0Zn1caHRtbHJ0ZjANCg0K e1wqXGh0bWx0YWcxMzYgPC9wcmU+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAg XHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgfQ0Ke1wqXGh0bWx0YWcxMDQgPC9ibG9ja3F1b3Rl Pn1caHRtbHJ0ZiB9XHBhcg0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0 bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzU4IDwvYm9keT59DQp7XCpcaHRtbHRhZzIgXHBhciB9 DQp7XCpcaHRtbHRhZzI3IDwvaHRtbD59DQp7XCpcaHRtbHRhZzMgXHBhciB9DQp7XCpcaHRtbHRh ZzY0IDxwPn1caHRtbHJ0ZiB7XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfS0tLS0NCntc KlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFRvIHVuc3Vic2NyaWJlLCBzZW5k IGEgbWVzc2FnZSB3aXRoIGJvZHkgIlNJR05PRkYgQkxBQ0tCT1giIHRvIExJU1RTRVJWQExJU1RT Lk9CRVJPTi5DSA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgXGh0bWxy dGZ9fQBsY21GMFpTQnZiaTRnVA== ----boundary-LibPST-iamunique-1706906089_-_--- Received on Tue Mar 29 2011 - 23:11:28 UTC

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