the app is already completed in the CLX environment.
i'd started it off quickly as there is one lot of buttons arranged in a
matrix something like 8x16, which when the user clicked on any of them, the
button changes color. And unless you can advise as to how I can create a
custom button in Delphi7, I may re-do the app in VCL.
ciao
daniel.
----- Original Message -----
From: "Stephen Posey" <[EMAIL PROTECTED]>
To: "Borland's Delphi Discussion List" <[email protected]>
Sent: Wednesday, June 22, 2005 1:11 AM
Subject: Re: memo.setTextBuffer and perform.
websmith wrote:
allo,
i'm using CLX and am surprised that there was no memo.setTextBuf and the
memo.Perform methods. any idea.
The CLX components are wrappers around the Qt class/component library
which implements a very different architecture than you may be used to and
the mapping between CLX and the VCL is not 100% perfect.
In particular, unlike the VCL, MFC, OWL and other Windows libraries they
do not represent a more or less thin layer of abstraction over the Windows
standard controls and messaging system.
If anything Qt is an abstraction of the KDE Widget set on Linux and the
"signal/handler" architecture that is the closest thing to the universal
Windows message loop that Linux has.
This Qt model has been tweaked and ported to abstract it to other GUI
architectures, mainly the Mac UI and Windows; and now CLX is an Object
Pascal wrapper around Qt for Kylix and Delphi (Got all that?)
So, the resulting model for a multiline edit control (i.e. a Memo)
reflects the abstracted KDE/Qt heritage rather than the Windows one. A CLX
memo, then, can't (or shouldn't) assume there's a Windows Control
underneath.
Now, arguably, if there's a way to set the Text property, there has to be
some way to pass a string to the control; and you could probably kluge a
.SetTextBuf for yourself if it really bothers you not to have it.
The issue in creating the CLX Memo probably was that it didn't buy you
anything performance-wise over just setting the .Text property; unlike
using the VCL .SetTextBuff does.
.Perform is a different kettle of worms: in TWinControl, calling Perform
actually calls the routine that is used to process Windows messages.
Conceptually a CLX control isn't a Windows control, so (again
conceptually) there are no Windows messages to process.
Now, when running on Windows, of course in the depths of Qt there's
undoubtedly a Windows multiline EDIT control SOMEWHERE underneath the CLX
Memo.
And there's probably some fancy footwork you could to do get at it and
manipulate it as a Windows control and send Windows messages to it, but
that would sort of defeat the purpose of creating a (theoretically
cross-platform) CLX application (all that code would break if you ported
it to Linux).
If you want that kind of flexibility or control, why not just make a VCL
app?
Stephen Posey
[EMAIL PROTECTED]
_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi
_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi