WinCreateStdWindow, Client and Frame question - OS2
This is a discussion on WinCreateStdWindow, Client and Frame question - OS2 ; Hello,
in the WDsibyl library (an OS/2 Delphi clone), default forms
(=windows) are not created via WinCreateStdWindow which generates a
frame and a client window simultaneously. Instead, the frame window is
created first by WinCreateWCWindow and then the client window ...
-
WinCreateStdWindow, Client and Frame question
Hello,
in the WDsibyl library (an OS/2 Delphi clone), default forms
(=windows) are not created via WinCreateStdWindow which generates a
frame and a client window simultaneously. Instead, the frame window is
created first by WinCreateWCWindow and then the client window is
created by WinCreateWindow. I cannot see how the two handles are
connected to each other. Generally, the code works, but there is one
problem: When leaving an application with several windows, the window
rests in the switch list (shown by mole.exe, for example) once in a
while, but the WPS window list does not show them. In consequence,
shutdown hangs.
I assume that an incorrect client/frame connection forces these
problems and I have to reprogram the code with one CreateStdWindow
call. Before doing that, I want to ask
(1) is it allowed to split the window creation in two api calls for
frame and client window?
(2) is it possible to connect the frame with client and reverse after
a separate creation?
For WSsibyl programmers: the code is part of forms.pas, procedure
tControl.CreateWnd for the client and tFrameControl.CreateWnd for the
frame. tFrameControl.CreateWnd gets executed from tControl.CreateWnd,
which gets executed from tControl.Show, if the handle does not exist.
Martin Vieregg
-
Re: WinCreateStdWindow, Client and Frame question
info@hypermake.de schrieb:
> Hello,
>
> in the WDsibyl library (an OS/2 Delphi clone), default forms
> (=windows) are not created via WinCreateStdWindow which generates a
> frame and a client window simultaneously. Instead, the frame window is
> created first by WinCreateWCWindow and then the client window is
> created by WinCreateWindow. I cannot see how the two handles are
> connected to each other. Generally, the code works, but there is one
> problem: When leaving an application with several windows, the window
> rests in the switch list (shown by mole.exe, for example) once in a
> while, but the WPS window list does not show them. In consequence,
> shutdown hangs.
>
> I assume that an incorrect client/frame connection forces these
> problems and I have to reprogram the code with one CreateStdWindow
> call. Before doing that, I want to ask
>
> (1) is it allowed to split the window creation in two api calls for
> frame and client window?
Yes, just make sure that the frame's parent is the desktop and the
frames owner is NULLHANDLE, the client's parent as well as owner is the
frame window.
>
> (2) is it possible to connect the frame with client and reverse after
> a separate creation?
Yes, but that would be unnecessary. A destroy call to the parent will
also destroy all children and below. But you have to make sure that you
ONLY destroy the frame (which is the topmost parent) and NOT destroy any
children beforehand (before the frame is destroyed). I think PM does not
like that. By only destroying the frame that call will propagate down
recursively to all lower windows/children and PM will be able to keep
track of what window handles become invalid.
>
> For WSsibyl programmers: the code is part of forms.pas, procedure
> tControl.CreateWnd for the client and tFrameControl.CreateWnd for the
> frame. tFrameControl.CreateWnd gets executed from tControl.CreateWnd,
> which gets executed from tControl.Show, if the handle does not exist.
>
> Martin Vieregg
>
-
Re: WinCreateStdWindow, Client and Frame question
On 7 Jul., 13:17, Lars Erdmann wrote:
> But you have to make sure that you
> ONLY destroy the frame (which is the topmost parent) and NOT destroy any
> children beforehand (before the frame is destroyed). I think PM does not
> like that
That's it!!! After changing the order of destroying frame and client
(frame first), the problem has been solved. Thank you! The next
WDsibyl update will have this bug fixed.
Martin Vieregg
-
Re: WinCreateStdWindow, Client and Frame question
schrieb im Newsbeitrag
news:1183929742.458671.181580@57g2000hsv.googlegro ups.com...
> On 7 Jul., 13:17, Lars Erdmann wrote:
>> But you have to make sure that you
>> ONLY destroy the frame (which is the topmost parent) and NOT destroy any
>> children beforehand (before the frame is destroyed). I think PM does not
>> like that
>
> That's it!!! After changing the order of destroying frame and client
> (frame first), the problem has been solved. Thank you! The next
> WDsibyl update will have this bug fixed.
As I said, once you destroy the parent (frame), all descendents (client,
titlebar, etc.) will be destroyed automatically. No need to manually destroy
the descendents.
Lars
-
Re: WinCreateStdWindow, Client and Frame question
On a pleasant day while strolling in
comp.os.os2.programmer.misc, a person by the name of
info@hypermake.de exclaimed:
> Hello,
>
> in the WDsibyl library (an OS/2 Delphi clone), default forms
> (=windows) are not created via WinCreateStdWindow which generates a
Hello Martin, as you know Newview uses libraries from
the same base, and I don't think anybody ever reported
this problem, BUT I might have fixed it already ... I
did a lot of fixes to the Sibyl libraries.
Hm, yes. Forms.pas rev 1.39
- Rearranged order of frame window destruction so it can
be counted accurately. Destroying the frame first
results in the control (form) window itself being
destroyed automatically by PM; to enable accurate
tracing/counting of calls now do it separately
I have 60 revisions of forms.pas alone ... what a pity
WDSibyl decided to rearrange all the units so merging
became difficult 
Archive File: Z:\Sibyl\SPCC\FORMS.PAv
Rev 1.60: AARONL 8/05/2005 17:54:48
File modification date: 8/05/2005 17:33:46
Labels: v2.1.11.13
When focussing a control, set activecontrol on all forms
in the window chain, not just immediate parent form.
Makes it work when one form is inside another
Rev 1.59: AARONL 8/05/2005 17:00:06
File modification date: 1/05/2005 16:50:48
Labels: v2.1.11.12
Fixed TBitBtn to not crash if no mask is present.
Merged Sibyl FP4 TControl.WMChar
Removed change to setting cursor on mouse move. This
doesn't really work either as the default mousemove sets
the cursor and then we set it again, so there is a
constant update which sucks up CPU.
TCombobox, do incremental search for dropdown as well
Rev 1.58: AARONL 27/02/2005 23:42:00
File modification date: 27/02/2005 23:38:42
Labels: v2.1.11.11
Get application font before creating automatic forms so
they inherit the right font!
Rev 1.57: AARONL 27/02/2005 22:51:36
File modification date: 27/02/2005 22:45:18
Labels: v2.1.11.10
Change the way custom cursors are handled for controls,
so that you can override the cursor on subclassed
(native) controls without breaking their other
functionality e.g.
TEdit - now changing the cursor doesn't prevent you from
selecting text.
Rev 1.56: AARONL 5/04/2004 00:15:20
File modification date: 5/04/2004 00:13:52
Labels: v2.1.11.5, v2.1.11.6, v2.1.11.7, v2.1.11.8,
v2.1.11.9
Some mucking with TMetafile; still doesn't scale
"properly". Courtesy Martin
Fix: in frame controls don't replace & with ~
Rev 1.55: AARONL 1/04/2004 23:58:50
File modification date: 1/04/2004 23:54:50
Labels: v2.1.11.4
Always focus first form tab control, on show... this was
partly to fix the issue that after re-invoking a dialog,
the form itself is typically the active control, since
the other windows were destroyed (I think)
Also it just makes sense.
Rev 1.54: AARONL 31/03/2004 03:33:36
File modification date: 31/03/2004 03:18:10
Labels: v2.1.11.2, v2.1.11.3
At form startup focus first tab control.
Fixed some radio group issues.
In tabbing, skip controls that respond to
WM_FOCUSSING... saves effort
Rev 1.53: AARONL 29/03/2004 01:35:26
File modification date: 29/03/2004 00:24:06
Labels: v2.1.11.0, v2.1.11.1
Gave up trying to fix the Sibyl tab handling and re-
wrote it. Now works properly, but some of the controls
need updating......
Rev 1.52: AARONL 27/03/2004 01:54:06
File modification date: 27/03/2004 00:53:12
Labels: v2.1.10.16
keyboard navigation of radiogroup (not exactly standard)
removed stuff that prevents tabbing/cursoring thru
detail controls. makes no sense in general.
tabsets draw themselves with a focus rect and can be
focussed by clicking on same tab again
Rev 1.51: AARONL 26/03/2004 23:29:26
File modification date: 27/03/2004 00:23:00
Labels: v2.1.10.15
Third attempt to provide an override for Focus without
actually changing the existing interface... using a
message....
Rev 1.50: AARONL 26/03/2004 23:13:04
File modification date: 26/03/2004 23:59:44
Labels: v2.1.10.14
Hm... seems I can't even change the private members of
tcontrol. ide problems.
Rev 1.49: AARONL 26/03/2004 22:32:32
File modification date: 26/03/2004 23:25:32
Labels: v2.1.10.13
OK, so setting the default when a button is focussed, is
kind of good... this actually controls which control is
fired when the enter key is pressed. We really need a
separate property for "default at show"; but the easiest
way to get that (considering that changing the tform
interface is risky) is to just add a line of code during
OnShow saying button.Default := true
My previous focus change broke things quite badly. It
assumed that any control with a child would not be
focussed! Bzzt! Wrong!
Now there is an alternative mechanism for controls to
specify a child which should be focussed instead of the
control itself - e.g multi-column listbox.
Rev 1.48: AARONL 21/03/2004 21:41:30
File modification date: 13/03/2004 23:40:50
Labels: v2.1.10.11, v2.1.10.12
Put in what I *think* is a fix for tabbing to detail
controls.... ...
Rev 1.47: AARONL 9/03/2004 00:56:46
File modification date: 9/03/2004 00:54:40
Labels: v2.1.10.9, v2.1.10.10
Fixed bug in ShowTasklistEntries - amazing it hasn't
shown up before now! Happened once by coincidence
Rev 1.46: AaronL 28/12/2003 00:37:18
File modification date: 28/12/2003 00:33:32
Labels: v2.1.10.6, v2.1.10.7, v2.1.10.8
Removed another redundant/incorrect call to popup menus
Rev 1.45: AaronL 14/12/2003 17:02:36
File modification date: 14/12/2003 16:58:22
Labels: v2.1.10.5
Handle WM_CONTEXTMENU so popup menus work as standard -
respect buttons and keyboard settings in WPS Keyboard
object. Also prevents popup when left button held down
first, then right click - this is a shortcut for copy in
some controls.
Rev 1.44: AaronL 9/11/2003 18:49:20
File modification date: 9/11/2003 18:45:30
Labels: v2.1.10.4
Fixed out by one bug in GenerateShortCuts, causing
corrupted memory
Rev 1.43: AaronL 3/11/2003 23:53:52
File modification date: 3/11/2003 23:52:56
Labels: v2.1.10.2, v2.1.10.3
Sort TStringList using AnsiCompareText (case insensitive
only). This makes it match listbox sorting
Don't destroy app icon unless needed...?
Rev 1.42: AaronL 25/10/2003 17:50:58
File modification date: 25/10/2003 16:53:20
Labels: v2.1.10.1
Fixed what I think is a bug in GetClientRect - removed
the special case for OS/2. Works better for me!
Rev 1.41: AaronL 13/10/2003 02:13:22
File modification date: 13/10/2003 01:11:32
Labels: v2.1.9.2, v2.1.10.0
Fix crash at shutdown - due to TScreen.DisposeWnd (maybe
other things) referring to application??
TApplication.Destroy now sets Application to nil
Rev 1.40: AaronL 28/09/2003 21:45:24
File modification date: 28/09/2003 21:40:56
Labels: v2.1.9.1
Fix crash in IDE due to component library freeing IDE
screen object, etc
Rev 1.39: AaronL 26/09/2003 01:20:58
File modification date: 26/09/2003 01:07:00
Labels: v2.1.9.0
Fixed a variety of PM resource leaks.
Also made some performance enhancements.
- Destroy the Application, Clipboard, and other global
objects at program shutdown!
- Free form accelerator table when destroyed
- Only load global form icon once, re-use for each form
[My code]
(was being loaded once for each form)
- Free global form icon when application destroyed [My
code]
- Free application icon (but this is overriden by global
form icon)
- Destroy loaded pointers when application destroyed
- Correctly destroy PSes for icon/bitmap canvases.
- Free logical font created for each TCanvas
- Make sure clip regions for canvases are destroyed
- Fix - only release PSes for control canvases - not
graphic canvases, those are destroyed by the graphic
object itself
- Fix - cannot DevCloseDC on DCs from WinOpenWindowDC,
no point trying
- Rearranged order of frame window destruction so it can
be counted accurately. Destroying the frame first
results in the control (form) window itself being
destroyed automatically by PM; to enable accurate
tracing/counting of calls now do it separately
- Only query the system message queue once. Set a flag
after that to remember we've done it. [My code]
- Added code to prevent unnecessary GpiDeleteSetId calls
when fonts haven't been created yet. But commented out
for compatibility with IDE
I believe this fixes all the resource leaks in normal
operation.
Rev 1.38: AaronL 24/09/2003 03:18:26
File modification date: 24/09/2003 02:57:58
Labels: v2.1.8.10
Removed debugging for errors getting messages in invalid
controls - that was due to calling processmessages at
bad times
Rev 1.37: AaronL 6/06/2003 00:07:56
File modification date: 5/06/2003 23:58:46
Labels: v2.1.8.6, v2.1.8.7, v2.1.8.8, v2.1.8.9
Fix for IDE crash using components. Removed the formicon
resourceid from TApplication and make it a global.
!!! You CANNOT change any aspect of TApplication's data,
INCLUDING private fields, because the component library
is passed a pointer to the IDE's TApplication object and
it therefore must be exactly the same structure.
Rev 1.36: AaronL 18/04/2003 09:44:54
File modification date: 18/04/2003 09:43:40
Labels: v2.1.8.5
Just updated the debug log to put in a separator and
date/time when starting
Rev 1.35: AaronL 17/04/2003 17:21:18
File modification date: 17/04/2003 17:19:34
Labels: v2.1.8.4
Fixed a small memory leak in TApplication - it was never
re-using command IDs for menu items. Resulted in the
list expanding forever if you created and destroyed menu
items dynamically.
Unfortunately this does make menu creation an N^2
algorithm but it's a very tight loop.
Rev 1.34: AaronL 3/04/2003 21:57:48
File modification date: 3/04/2003 21:56:14
Labels: v2.1.8.2, v2.1.8.3
Added debug code for detecting problem with keyup event
getting to unknown window in newview.... only enabled if
environment variable AARONS_DEBUG is set to something
Rev 1.33: AaronL 2/04/2003 22:41:24
File modification date: 2/04/2003 22:36:46
Labels: v2.1.8.1
Removed the PM utility functions added in 2.1.8.0, they
prevent NewView from compiling - the compiler crashes!
Sibyl windows now get a unique window class - Sibyl
where is the Sibyl classname.
e.g. a frame control is now "Sibyl TFrameControl".
This is so that DragText can recognise particular sibyl
windows.
Also, removed the duplicated code in
TFrameControl.GetClassData - most of it is now inherited
from the base tcontrol method.
Rev 1.32: AaronL 13/02/2003 22:30:08
File modification date: 13/02/2003 22:29:50
Labels: v2.1.7.2, v2.1.8.0
Whoops! Fixed crash in CMEndModalState due to partially
removing FModalParent stuff. Now it's all gone and good
riddance.
Rev 1.31: AaronL 31/12/2002 02:31:20
File modification date: 31/12/2002 02:20:46
Labels: v2.1.7.0, v2.1.7.1
A workaround for the stupid Sibyl icon handling.
- Set Application.FormIconResourceID to a the ID of a
resource containing the icon you want to use for all
forms. If specified, this overrides both any individual
form icons loaded in the IDE (which crashes anyway) and
the application icon.
Using ID 1 seems to encourage the WPS to use it as well.
Rev 1.30: AaronL 29/12/2002 15:16:02
File modification date: 29/12/2002 15:13:04
Labels: v2.1.6.1, v2.1.6.2
Fix: allow repositioning of forms to work after first
time they are shown! This was because while the frame
exists, it's position is changed instead of the form
itself, but then the CreateWnd method overwrites the
frame position with the form's position.
Rev 1.29: AaronL 29/12/2002 14:05:50
File modification date: 29/12/2002 13:53:24
Labels: v2.1.6.0
Added TForm.ShowModal2 which takes an owner parameter,
so that the modal dialog can be given the correct owner.
The effect of this is:-
1) in certain odd cases such as use of Object Desktop's
multiple desktops feature, the Z order is correctly
maintained.
Unlike what I thought, this doesn't prevent OD from
focussing the wrong window; that can still happen even
with official PM modal dialogs
However this makes it
a bit more obvious that things have gone wrong since the
window is in the background.
2) this partially helps with controls such as TMemo that
hide the selection when the app is deactivated but NOT
when a modal dialog is showing ie. the window chain is
still active. However, something is still defocussing
the MLE so it doesn't properly work.
So this is not that important, but nor is it a big
change, so I thought I would check it in.
Removed the confusing code that attempts to do this
elsewhere (FModalParent)
Rev 1.28: AaronL 18/12/2002 21:38:58
File modification date: 18/12/2002 00:59:04
Labels: v2.1.5.13
Expose font reference and dereference functions so that
other components can correctly manage fonts, and use
these functions everywhere.
Rev 1.27: AaronL 17/12/2002 21:56:44
File modification date: 17/12/2002 20:39:14
Labels: v2.1.5.12
Don't set tasklist flag for forms that have a parent
Doesn't seem to make any difference in practice.
Rev 1.26: AaronL 12/12/2002 22:51:50
File modification date: 12/12/2002 22:35:36
Labels: v2.1.5.11
Allow menufont to be nil. I don't yet know why this
would be.
Rev 1.25: AaronL 5/12/2002 03:09:26
File modification date: 4/12/2002 01:51:28
Labels: v2.1.5.8, v2.1.5.9, v2.1.5.10
TFont.Width really returns the average char width, not
the maximum
Rev 1.24: AaronL 22/11/2002 22:21:46
File modification date: 22/11/2002 21:36:22
Labels: v2.1.5.6, v2.1.5.7
Fixed problem with presentation parameters - sometimes
they are removed (showed up as wrong colors in a
notebook situation) and the Sibyl code did not cope with
the fact that there might not BE valid pp's.
Rev 1.23: AARONL 15/11/2002 16:19:20
File modification date: 15/11/2002 16:08:12
Labels: v2.1.5.4, v2.1.5.5
Further improvements to bitmap masking
- added disabled drawing. This uses new more new Raster
Ops, and a new brush style bsHalfTone, defined in Forms
- bug fix: update bitmap before testing to see if empty
in TBitmap.SaveToStream
Simplified button code a little; don't check for nil
mask in masked drawing functions, that seems like
overkill.
As far as I can tell basic TBitBtn drawing is now
complete
Rev 1.22: AARONL 15/11/2002 12:09:28
File modification date: 15/11/2002 11:55:28
Labels: v2.1.5.3
BitBtn now draws bitmap transparently so that it's
correct when the color scheme is different.
This involved finalising mask functions in TBitmap. Now
there are functions to:
- create a mask for a given color (.CreateMask)
- create a mask, taking pixel 0,0 as the transparent
color
- take a copy of a bitmap with a given mask applied
(CopyMasked)
- draw a masked bitmap
Seems a lot more complex than I wanted, oh well. Maybe I
will just throw it away later.
Removed the TBitmap.Update4Changes method, instead
LoadFromBitmap calls update on the source bitmap - that
seemed to be all that was missing. Note I already
uncommented the Update call in TBitmap.SaveToStream in
the last checkin.
Rev 1.21: AARONL 11/11/2002 00:16:20
File modification date: 11/11/2002 00:07:58
Labels: v2.1.5.1, v2.1.5.2
Bug fix for crashes when accessing other process'
windows, and attempting to treat them as Sibyl windows -
TScreen.GetControlFromPoint now checks that it is the
owner process for a window before playing with it.
This showed up as a crash when the TCoolbar2 even timer
went off while mouse over another app, AFAIK.
Rev 1.20: AARONL 10/11/2002 22:32:46
File modification date: 9/11/2002 13:30:32
Labels: v2.1.5.0
Whooops! Fixed the system menu accelerator handling.
Previously, all other accelerators (e.g. menu shortcuts)
were being deleted! Now the system menu accelerators are
appended to the custom list. One minor optimisation
that's missing here is that a single accelerator could
probably be used for all child windows...
Added (fast) Assign and AddList methods to TList
Rev 1.19: AARONL 7/11/2002 14:42:58
File modification date: 7/11/2002 14:43:14
Labels: v2.1.4.1
Attempted to put in code to handle i18n, but could not
get it to work in practice. The declarations of the
strings are still there, but are not used.
Make sure system menus use the system menu font; this
mainly affects child forms
Rev 1.18: AARONL 6/11/2002 15:40:58
File modification date: 6/11/2002 15:39:48
Labels: v2.1.4.0
MDI child window system menu fixes. Use the correct (or
at least, conventional) Ctrl + Fkey shortcuts. This
involves:
1 - removing the applications' message queue accelerator
table (and remembering it for 3)
2 - creating a new accelerator table for child windows
3 - applying the standard or child accelerator table to
each individual form frame window
4 - remaking the child window system menu to document
the new shortcuts (and remove the redundant Hide and
Window list items)
Rev 1.17: AARONL 4/11/2002 01:20:32
File modification date: 4/11/2002 01:04:02
Labels: v2.1.3.0
Fixed initial window positioning;
- first, don't use SWP_MOVE and SWP_SIZE at the same
time as maximising; this sets it to maximised but also
sizes and moves it immediately (I don't know why I ever
thought otherwise).
- instead, just maximise then set the restore position
in the Window USHORTs.
I tested more thoroughly this time!
Also, exposed GetBorderWidth and GetBorderHeight
functions for use in smart window positioning.
Rev 1.16: AARONL 26/09/2002 01:47:16
File modification date: 26/09/2002 00:35:34
Labels: v2.1.1.7, v2.1.1.8, v2.1.2.0
Two fixes:
- when initially showing form, if maximising or
minimising then also set the restore position (this is
allowed, documented and works! amazing!) to the current
form size+position
- set outline to read-only since there are no events to
support direct editing.
Rev 1.15: AARONL 30/07/2002 22:59:52
File modification date: 30/07/2002 22:45:30
Labels: v2.1.1.6
Fix memory leak - not freeing memory in
ShowTaskListEntries
Rev 1.14: AARONL 10/07/2002 23:37:26
File modification date: 20/06/2002 22:16:42
Labels: v2.1.1.3, v2.1.1.4, v2.1.1.5
Fixes for track bar
- dbl click to side of slider works as expected.
- click and hold to side of slider steps by page size
(as expected)
- everywhere on the control is used to detect mouse
events, not excluding the tick marks
- always draw a final tick mark at max
Font fix for main form - turn off parent font
Rev 1.13: AARONL 19/06/2002 23:17:40
File modification date: 19/06/2002 23:11:40
Labels: v2.1.1.2
Fix to prevent control font read from SCU from ignoring
parentfont
Rev 1.12: AARONL 3/06/2002 12:51:36
File modification date: 18/02/2002 21:03:32
Labels: v2.1.1.1
Eek! Undid my previous change to add Application.Title.
This causes a mismatch with the IDE code and therefore
crashes when components are used in the IDE.
Rev 1.11: AARONL 1/06/2002 17:49:28
File modification date: 1/06/2002 17:27:28
Labels: v2.1.1.0
Implemented Application.Title property - currently used
for generic message dialogs only (ShowMessage etc).
Implemented an exception for when new page fails on a
printer.
Rev 1.10: AARONL 18/02/2002 22:01:02
File modification date: 18/02/2002 21:03:32
Labels: v2.1.0.2, v2.1.0.3
OK, appears I was wrong about the TFrom.GetClientRect
thing. It breaks things to do that.
Rev 1.9: AARONL 17/02/2002 16:07:38
File modification date: 17/02/2002 16:04:20
Labels: v2.1.0.1
Fixed TForm.GetClientRect to be consistent with
TControl.GetClientRect - catering for FFirstShow
Rev 1.8: AaronL 10/11/2001 19:20:24
File modification date: 10/11/2001 19:17:56
Labels: v2.0.7.0, v2.1.0.0
Tab key did not respect csDetail in componentstate,
hence you could e.g. focus the scrollbar in a grid
Rev 1.7: AaronL 3/11/2001 17:42:20
File modification date: 3/11/2001 17:35:30
Labels: v2.0.5.2, v2.0.6.0
I am a great big galoot.
In 2.0.4.0 I changed private to protected. That was
fine. What I also did was change TControl.SetEnabled to
virtual. Bzzt! Wrong! That changes the virtual function
table so that it no longer matches what the IDE was
compiled with; and results in out-by-one function calls
including (as it turned out) the CreateError method.
Thus causing all components based on this SPCC to crash
when inserted into a form using the IDE.
So... SetEnabled will not be virtual anymore!
Rev 1.6: AaronL 24/10/2001 21:41:12
File modification date: 22/10/2001 21:28:28
Labels: v2.0.5.1
Some changes to how windows are shown so that if the
window is set to maximized or minimised before being
shown, it does actually show in the correct state.
Previously it would ignore the state, though there was
code to try and make it work.
This is not done for Win32.
I had to change it quite a bit to make this work
including how the frame is shown, I'm not 100% confident
it works in all cases. (FFrame.Show call used previously
would seem to confuse things...)
Rev 1.5: AaronL 22/10/2001 20:38:30
File modification date: 22/10/2001 19:50:44
Labels: v2.0.5.0
Added an options property to TForm, containing two
flags: TitleBar and TaskListEntry. These only take
effect if done before the form's window is created (e.g.
when parent is set)...
Rev 1.4: AaronL 11/07/2001 23:02:14
File modification date: 11/07/2001 22:06:44
Labels: v2.0.4.0
Changed all Private declarations to Protected; this
should make it easier in future to build custom
components.
This lead to renaming TControl.Insert to InsertChild
since Insert is a string utility function.
Also, I made SetEnabled a virtual function. Why not?
Rev 1.3: AARONL 15/01/2001 22:20:30
File modification date: 15/01/2001 22:17:36
Labels: v2.0.3.5, v2.0.3.6, v2.0.3.7
Rewrote TCanvas.MnemoTextOut to do the underline of the
shortcut char with a line, instead of changing font.
It's simpler and looks better. This fixes up many
controls such as bitmap button (TBitBtn), tab notebook
etc.
Slightly tidied LockDesktopWIndows and InputHook
Also removed a few unused vars
Rev 1.2: AARONL 5/01/2001 17:10:56
File modification date: 5/01/2001 17:09:14
Labels: v2.0.3.2, v2.0.3.3, v2.0.3.4
Properly fixed tasklist handling for modal dialogs.
Now the existing entries are hidden and restored after
the dialog finishes. So, while a modal dialog is
showing, there is only one tasklist entry, which
correctly refers to the dialog window.
Note this solution is quite different to the "fix" in
Speedsoft Fixpack 4. That fix prevented modal dialogs
from showing in the tasklist, but the existing entries
were left and selecting them still incorrectly focussed
the form in question, not the dialog.
Also, the hook that detects clicks on other windows
while a modal dialog is showing, now detects mouse
button 2 and 3 clicks as well.
Rev 1.1: AARONL 18/11/2000 19:23:26
File modification date: 18/11/2000 19:13:08
Labels: v2.0.3.1
Fixed font dereferencing problem, causing crash after
second activation of Font dialog (and probably other
problems too).
Rev 1.0: AARONL 18/11/2000 17:21:46
File modification date: 21/05/1998 02:21:18
Labels: v2.0.3
This is the component library for Speedsoft Sibyl 2.0,
Fixpack 3.
--
aaronl at consultant dot com
For every expert, there is an equal and
opposite expert. - Arthur C. Clarke