- CP to NET: A caveat

From: [at]} <Wojtek>
Date: Wed, 24 May 2006 00:11:00 -0400 (EDT)

----boundary-LibPST-iamunique-1106757930_-_-
Content-type: text/plain

On Wed, 24 May 2006, CFB Software wrote:

> Unfortunately BB only handles a very small subset of possible events in that
> way. If you want to do anything but the most basic operation (i.e. respond
> to a click) then you are on your own in BB and have to do it the real hard
> way requiring many lines of code.

After reading this paragraph I revisited the GrViews and read the
procedures which handle user interactions. Please have a look.
It starts with the comment (* Message handling *). It all looks pretty
bloody. I am shaking my head that I developed such a thing. I still have
an archive somewhere with all the e-mails from Dominik Gruntz, Wolfgang
Weck, and Cuno Pfister, who all helped me enormously. What is the lesson?
Not sure. I was much less experienced back then. The timestamp in the
code says 2001.

Developing interactive Views is the top-level activity in BB. Most of the
time one does not need to go through this. I did it only once with
GrViews to the full extent. I am developing quite a few interactive apps,
but I never had to revisit this topic again. What is the lesson?
That usually one does not have to handle the mouse or program tracking
loops?


> The example I gave the other day is
> typical: I have a table on a form, when I resize the form, I want the table
> to continue to fill the form so that I can see as much of it as possible,
> rather than remaining as a fixed size in the top left hand corner of the
> window. In Delphi, VB, C# etc. this is achieved with just *one* assignment
> statement. How can you do this in BB?

When I resize my GrView then the content is resized as well.
For inspiration maybe have a look at GrViews

   PROCEDURE (v: View) HandlePropMsg- (VAR msg: Properties.Message);

However, the content of the GrView is not a view. There is no message
passing down from the GrView to its descendant views, because there
are no descendants. There is a comment there in the procedure
"For embedded views, these four flags have no effect". The comment
is talking of msg.horFitToWin etc.

Following this trail of crumbs, I am digging into docu
Views->HandlePropMsg. Which says:

  HandlePropMsg must be implemented in views which support
  preferences and properties (-> Properties). It is called by the
  surrounding container to find out about the way that the embedded view
  would like to be treated.

Sounds promising. The arrow "->" would indicate that Properties is
hyperlinked from Views, but of course it is not hyperlinked.
OK, let me open Properties docu and search for horFitToWin. Somewhere
in the vicinity I found this:

  TYPE ResizePref (Preference)
  The receiver of this message can indicate that it doesn't wish to be
  resized, by setting fixed to TRUE. A fixed size view doesn't show resize
  handled when it is selected as a singleton.
  For the root view in a document or window the fields horFitToPage,
  verFitToPage, horFitToWin, and verFitToWin can be used to enforce
  automatic adaptation of the view size to the actual window or page size.
  For embedded views, these four flags have no effect, in contrast to
  fixed.

All right, these 4 flags only have effect for a view in the regular
BB window, which is usually the case with GrViews.
The flags have no effect for embedded views... Makes some sense.
I actually often drop a GrView on a form, and I do not want it
to fill the entire form because there are also buttons there.
So this is OK.

But you are saying you want the table to fill the entire form?
This is interesting. If the entire form is filled, then what
is it needed for?

Perhaps you can set msg.fixed := FALSE and see what happens?

If you dig in the docu of Properties somewhere in the vicinity of
these paragraphs then maybe you will find some more inspiration.


> Calling a function written in a different language (and different dll) is
> only fractionally more difficult than calling one in the same language when
> you are in the .NET environment.

This is a biggie. But it works between .NET languages, does it not. How
about legacy DLLs that were not developed under .NET?

w.

--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy



----boundary-LibPST-iamunique-1106757930_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIE9uIFdlZCwgMjQgTWF5IDIwMDYsIENGQiBTb2Z0
d2FyZSB3cm90ZTpccGFyDQpccGFyDQo+IFVuZm9ydHVuYXRlbHkgQkIgb25seSBoYW5kbGVzIGEg
dmVyeSBzbWFsbCBzdWJzZXQgb2YgcG9zc2libGUgZXZlbnRzIGluIHRoYXRccGFyDQo+IHdheS4g
SWYgeW91IHdhbnQgdG8gZG8gYW55dGhpbmcgYnV0IHRoZSBtb3N0IGJhc2ljIG9wZXJhdGlvbiAo
aS5lLiByZXNwb25kXHBhcg0KPiB0byBhIGNsaWNrKSB0aGVuIHlvdSBhcmUgb24geW91ciBvd24g
aW4gQkIgYW5kIGhhdmUgdG8gZG8gaXQgdGhlIHJlYWwgaGFyZFxwYXINCj4gd2F5IHJlcXVpcmlu
ZyBtYW55IGxpbmVzIG9mIGNvZGUuXHBhcg0KXHBhcg0KQWZ0ZXIgcmVhZGluZyB0aGlzIHBhcmFn
cmFwaCBJIHJldmlzaXRlZCB0aGUgR3JWaWV3cyBhbmQgcmVhZCB0aGVccGFyDQpwcm9jZWR1cmVz
IHdoaWNoICBoYW5kbGUgdXNlciBpbnRlcmFjdGlvbnMuIFBsZWFzZSBoYXZlIGEgbG9vay5ccGFy
DQpJdCBzdGFydHMgd2l0aCB0aGUgY29tbWVudCAoKiBNZXNzYWdlIGhhbmRsaW5nICopLiBJdCBh
bGwgbG9va3MgcHJldHR5XHBhcg0KYmxvb2R5LiBJIGFtIHNoYWtpbmcgbXkgaGVhZCB0aGF0IEkg
ZGV2ZWxvcGVkIHN1Y2ggYSB0aGluZy4gSSBzdGlsbCBoYXZlXHBhcg0KYW4gYXJjaGl2ZSBzb21l
d2hlcmUgd2l0aCBhbGwgdGhlIGUtbWFpbHMgZnJvbSBEb21pbmlrIEdydW50eiwgV29sZmdhbmdc
cGFyDQpXZWNrLCBhbmQgQ3VubyBQZmlzdGVyLCB3aG8gYWxsIGhlbHBlZCBtZSBlbm9ybW91c2x5
LiBXaGF0IGlzIHRoZSBsZXNzb24/XHBhcg0KTm90IHN1cmUuIEkgd2FzIG11Y2ggbGVzcyBleHBl
cmllbmNlZCBiYWNrIHRoZW4uIFRoZSB0aW1lc3RhbXAgaW4gdGhlXHBhcg0KY29kZSBzYXlzIDIw
MDEuXHBhcg0KXHBhcg0KRGV2ZWxvcGluZyBpbnRlcmFjdGl2ZSBWaWV3cyBpcyB0aGUgdG9wLWxl
dmVsIGFjdGl2aXR5IGluIEJCLiBNb3N0IG9mIHRoZVxwYXINCnRpbWUgb25lIGRvZXMgbm90IG5l
ZWQgdG8gZ28gdGhyb3VnaCB0aGlzLiBJIGRpZCBpdCBvbmx5IG9uY2Ugd2l0aFxwYXINCkdyVmll
d3MgdG8gdGhlIGZ1bGwgZXh0ZW50LiBJIGFtIGRldmVsb3BpbmcgcXVpdGUgYSBmZXcgaW50ZXJh
Y3RpdmUgYXBwcyxccGFyDQpidXQgSSBuZXZlciBoYWQgdG8gcmV2aXNpdCB0aGlzIHRvcGljIGFn
YWluLiBXaGF0IGlzIHRoZSBsZXNzb24/XHBhcg0KVGhhdCB1c3VhbGx5IG9uZSBkb2VzIG5vdCBo
YXZlIHRvIGhhbmRsZSB0aGUgbW91c2Ugb3IgcHJvZ3JhbSB0cmFja2luZ1xwYXINCmxvb3BzP1xw
YXINClxwYXINClxwYXINCj4gVGhlIGV4YW1wbGUgSSBnYXZlIHRoZSBvdGhlciBkYXkgaXNccGFy
DQo+IHR5cGljYWw6IEkgaGF2ZSBhIHRhYmxlIG9uIGEgZm9ybSwgd2hlbiBJIHJlc2l6ZSB0aGUg
Zm9ybSwgSSB3YW50IHRoZSB0YWJsZVxwYXINCj4gdG8gY29udGludWUgdG8gZmlsbCB0aGUgZm9y
bSBzbyB0aGF0IEkgY2FuIHNlZSBhcyBtdWNoIG9mIGl0IGFzIHBvc3NpYmxlLFxwYXINCj4gcmF0
aGVyIHRoYW4gcmVtYWluaW5nIGFzIGEgZml4ZWQgc2l6ZSBpbiB0aGUgdG9wIGxlZnQgaGFuZCBj
b3JuZXIgb2YgdGhlXHBhcg0KPiB3aW5kb3cuIEluIERlbHBoaSwgVkIsIEMjIGV0Yy4gdGhpcyBp
cyBhY2hpZXZlZCB3aXRoIGp1c3QgKm9uZSogYXNzaWdubWVudFxwYXINCj4gc3RhdGVtZW50LiBI
b3cgY2FuIHlvdSBkbyB0aGlzIGluIEJCP1xwYXINClxwYXINCldoZW4gSSByZXNpemUgbXkgR3JW
aWV3IHRoZW4gdGhlIGNvbnRlbnQgaXMgcmVzaXplZCBhcyB3ZWxsLlxwYXINCkZvciBpbnNwaXJh
dGlvbiBtYXliZSBoYXZlIGEgbG9vayBhdCBHclZpZXdzXHBhcg0KXHBhcg0KICAgUFJPQ0VEVVJF
ICh2OiBWaWV3KSBIYW5kbGVQcm9wTXNnLSAoVkFSIG1zZzogUHJvcGVydGllcy5NZXNzYWdlKTtc
cGFyDQpccGFyDQpIb3dldmVyLCB0aGUgY29udGVudCBvZiB0aGUgR3JWaWV3IGlzIG5vdCBhIHZp
ZXcuIFRoZXJlIGlzIG5vIG1lc3NhZ2VccGFyDQpwYXNzaW5nIGRvd24gZnJvbSB0aGUgR3JWaWV3
IHRvIGl0cyBkZXNjZW5kYW50IHZpZXdzLCBiZWNhdXNlIHRoZXJlXHBhcg0KYXJlIG5vIGRlc2Nl
bmRhbnRzLiBUaGVyZSBpcyBhIGNvbW1lbnQgdGhlcmUgaW4gdGhlIHByb2NlZHVyZVxwYXINCiJG
b3IgZW1iZWRkZWQgdmlld3MsIHRoZXNlIGZvdXIgZmxhZ3MgaGF2ZSBubyBlZmZlY3QiLiBUaGUg
Y29tbWVudFxwYXINCmlzIHRhbGtpbmcgb2YgbXNnLmhvckZpdFRvV2luIGV0Yy5ccGFyDQpccGFy
DQpGb2xsb3dpbmcgdGhpcyB0cmFpbCBvZiBjcnVtYnMsIEkgYW0gZGlnZ2luZyBpbnRvIGRvY3Vc
cGFyDQpWaWV3cy0+SGFuZGxlUHJvcE1zZy4gV2hpY2ggc2F5czpccGFyDQpccGFyDQogIEhhbmRs
ZVByb3BNc2cgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiB2aWV3cyB3aGljaCBzdXBwb3J0XHBhcg0K
ICBwcmVmZXJlbmNlcyBhbmQgcHJvcGVydGllcyAoLT4gUHJvcGVydGllcykuIEl0IGlzIGNhbGxl
ZCBieSB0aGVccGFyDQogIHN1cnJvdW5kaW5nIGNvbnRhaW5lciB0byBmaW5kIG91dCBhYm91dCB0
aGUgd2F5IHRoYXQgdGhlIGVtYmVkZGVkIHZpZXdccGFyDQogIHdvdWxkIGxpa2UgdG8gYmUgdHJl
YXRlZC5ccGFyDQpccGFyDQpTb3VuZHMgcHJvbWlzaW5nLiBUaGUgYXJyb3cgIi0+IiB3b3VsZCBp
bmRpY2F0ZSB0aGF0IFByb3BlcnRpZXMgaXNccGFyDQpoeXBlcmxpbmtlZCBmcm9tICBWaWV3cywg
YnV0IG9mIGNvdXJzZSBpdCBpcyBub3QgaHlwZXJsaW5rZWQuXHBhcg0KT0ssIGxldCBtZSBvcGVu
IFByb3BlcnRpZXMgZG9jdSBhbmQgc2VhcmNoIGZvciBob3JGaXRUb1dpbi4gU29tZXdoZXJlXHBh
cg0KaW4gdGhlIHZpY2luaXR5IEkgZm91bmQgdGhpczpccGFyDQpccGFyDQogIFRZUEUgUmVzaXpl
UHJlZiAoUHJlZmVyZW5jZSlccGFyDQogIFRoZSByZWNlaXZlciBvZiB0aGlzIG1lc3NhZ2UgY2Fu
IGluZGljYXRlIHRoYXQgaXQgZG9lc24ndCB3aXNoIHRvIGJlXHBhcg0KICByZXNpemVkLCBieSBz
ZXR0aW5nIGZpeGVkIHRvIFRSVUUuIEEgZml4ZWQgc2l6ZSB2aWV3IGRvZXNuJ3Qgc2hvdyByZXNp
emVccGFyDQogIGhhbmRsZWQgd2hlbiBpdCBpcyBzZWxlY3RlZCBhcyBhIHNpbmdsZXRvbi5ccGFy
DQogIEZvciB0aGUgcm9vdCB2aWV3IGluIGEgZG9jdW1lbnQgb3Igd2luZG93IHRoZSBmaWVsZHMg
aG9yRml0VG9QYWdlLFxwYXINCiAgdmVyRml0VG9QYWdlLCBob3JGaXRUb1dpbiwgYW5kIHZlckZp
dFRvV2luIGNhbiBiZSB1c2VkIHRvIGVuZm9yY2VccGFyDQogIGF1dG9tYXRpYyBhZGFwdGF0aW9u
IG9mIHRoZSB2aWV3IHNpemUgdG8gdGhlIGFjdHVhbCB3aW5kb3cgb3IgcGFnZSBzaXplLlxwYXIN
CiAgRm9yIGVtYmVkZGVkIHZpZXdzLCB0aGVzZSBmb3VyIGZsYWdzIGhhdmUgbm8gZWZmZWN0LCBp
biBjb250cmFzdCB0b1xwYXINCiAgZml4ZWQuXHBhcg0KXHBhcg0KQWxsIHJpZ2h0LCB0aGVzZSA0
IGZsYWdzIG9ubHkgaGF2ZSBlZmZlY3QgZm9yIGEgdmlldyBpbiB0aGUgcmVndWxhclxwYXINCkJC
IHdpbmRvdywgd2hpY2ggaXMgdXN1YWxseSB0aGUgY2FzZSB3aXRoIEdyVmlld3MuXHBhcg0KVGhl
IGZsYWdzIGhhdmUgbm8gZWZmZWN0IGZvciBlbWJlZGRlZCB2aWV3cy4uLiBNYWtlcyBzb21lIHNl
bnNlLlxwYXINCkkgYWN0dWFsbHkgb2Z0ZW4gZHJvcCBhIEdyVmlldyBvbiBhIGZvcm0sIGFuZCBJ
IGRvIG5vdCB3YW50IGl0XHBhcg0KdG8gZmlsbCB0aGUgZW50aXJlIGZvcm0gYmVjYXVzZSB0aGVy
ZSBhcmUgYWxzbyBidXR0b25zIHRoZXJlLlxwYXINClNvIHRoaXMgaXMgT0suXHBhcg0KXHBhcg0K
QnV0IHlvdSBhcmUgc2F5aW5nIHlvdSB3YW50IHRoZSB0YWJsZSB0byBmaWxsIHRoZSBlbnRpcmUg
Zm9ybT9ccGFyDQpUaGlzIGlzIGludGVyZXN0aW5nLiBJZiB0aGUgZW50aXJlIGZvcm0gaXMgZmls
bGVkLCB0aGVuIHdoYXRccGFyDQppcyBpdCBuZWVkZWQgZm9yP1xwYXINClxwYXINClBlcmhhcHMg
eW91IGNhbiBzZXQgbXNnLmZpeGVkIDo9IEZBTFNFIGFuZCBzZWUgd2hhdCBoYXBwZW5zP1xwYXIN
ClxwYXINCklmIHlvdSBkaWcgaW4gdGhlIGRvY3Ugb2YgUHJvcGVydGllcyBzb21ld2hlcmUgaW4g
dGhlIHZpY2luaXR5IG9mXHBhcg0KdGhlc2UgcGFyYWdyYXBocyB0aGVuIG1heWJlIHlvdSB3aWxs
IGZpbmQgc29tZSBtb3JlIGluc3BpcmF0aW9uLlxwYXINClxwYXINClxwYXINCj4gQ2FsbGluZyBh
IGZ1bmN0aW9uIHdyaXR0ZW4gaW4gYSBkaWZmZXJlbnQgbGFuZ3VhZ2UgKGFuZCBkaWZmZXJlbnQg
ZGxsKSBpc1xwYXINCj4gb25seSBmcmFjdGlvbmFsbHkgbW9yZSBkaWZmaWN1bHQgdGhhbiBjYWxs
aW5nIG9uZSBpbiB0aGUgc2FtZSBsYW5ndWFnZSB3aGVuXHBhcg0KPiB5b3UgYXJlIGluIHRoZSAu
TkVUIGVudmlyb25tZW50LlxwYXINClxwYXINClRoaXMgaXMgYSBiaWdnaWUuIEJ1dCBpdCB3b3Jr
cyBiZXR3ZWVuIC5ORVQgbGFuZ3VhZ2VzLCBkb2VzIGl0IG5vdC4gSG93XHBhcg0KYWJvdXQgbGVn
YWN5IERMTHMgdGhhdCB3ZXJlIG5vdCBkZXZlbG9wZWQgdW5kZXIgLk5FVD9ccGFyDQpccGFyDQp3
LlxwYXINClxwYXINCi0tLSBCbGFja0JveFxwYXINCi0tLSBzZW5kIHN1YmplY3QgSEVMUCBvciBV
TlNVQlNDUklCRSB0byBibGFja2JveEBvYmVyb24uY2h9fQBwA2BjCYAIcC0H


----boundary-LibPST-iamunique-1106757930_-_---
Received on Wed May 24 2006 - 06:11:00 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:27:58 UTC