Borland®
Shop
Products Downloads Services Support Partners News & Events Company Community
Delphi
Documentation
Support

Additional Resources
Technology Partners
Books
Community

 DELPHI DEVELOPER SUPPORT

Delphi 4 fixes and known issues
VCL SECTION

Areas of concentration under: vcl


Area: vcl\additional controls

Reference Number: 79 (Published: 11/6/98)
Status: Deferred to Next Rel
Date Reported: 4/7/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

When calling BeginDrag for a speedbutton inside ot 
the Mousedown event, the speed button is never 
repainted after it has been painted as pressed.  
When you drag off of the speed button the drag 
operation works correctly but the speedbutton stays 
depressed and never returns to the up position. 

Steps:

1) Put a speedbutton onto a form.
2) Double click on the OnMouseDown  event.
3) Put in the following line of code for the event.
                 SpeedButton1- > BeginDrag(true);
4) Run the program and drag the SpeedButton and 
then release it.
5) The drag works properly but the SpeedButton 
says depressed.

Area: vcl\additional controls\tbitbtn

Reference Number: 559 (Published: 11/13/98)
Status: Deferred to Next Rel
Date Reported: 5/23/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Button pressed drawing is incorrect.

Steps:

The background of the arrow of the IDE should 
look like the tools on the palette. Instead it looks 
like it is offset by a few pixals making it look way too 
black.

Area: vcl\additional controls\tchecklistbox

Reference Number: 277 (Published: 11/11/98)
Status: Deferred to Next Rel
Date Reported: 1/7/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

Check mark of TCheckListBox do not save when 
use Items- > Exchange method.

Steps:

1.Put on TCheckListBox.
2.Add some items.
3.Execute.
4.Check On some items.
5.Do CheckListBox1- > Items- > Exchange(0,1);

Area: vcl\additional controls\tcontrolbar

Reference Number: 788 (Published: 8/4/98)
Status: Fixed in Version 4 Update Pack 1
Date Reported: 6/17/98
Severity: Serious
Type: Crash

Problem:

Deleting second button on TToolBar gives an AV:

Access violation at address:  77F6CC66 in module 
'ntdll.dll'.  Write of address 00000010.

Occures on Win98 beta 3 and NT4.0 server sp3.  
Delphi RC3

Area: vcl\additional controls\tcontrolbar

Reference Number: 551 (Published: 11/13/98)
Status: Deferred to Next Rel
Date Reported: 5/22/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

TControlBar doesn't resize any of its controls when 
you scale a form.

Steps:

* Drop a TControlBar on a form
* Drop a TButton and a TCheckBox in the 
controlbar
* Right click, select Scale
* Enter 50, click OK
// Note that the button and checkbox have the 
same size

Area: vcl\additional controls\tcontrolbar

Reference Number: 954 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/14/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Control placed in controlbar loses dragging 
capability after dragging outside of controlbar area

Steps:

1. Create a new project. Place a TControlBar on the 
form.
2.  Place a control (any control will do, I've used a 
TPanel) on the TControlBar object. Leave the 
DragKind property of the new control as the default 
value of ckDrag). 
3. Run the project. Start dragging the control (the 
panel) using the grip. You will be able to move it 
around the TControlBar, as if the DragKind property 
was set to ckDock. 
4.  Try dragging it outside the boundaries of the 
TControlBar. The cursor would change to the 
non-draggable cursor, and you won't be able to 
drag the panel anymore.

Area: vcl\additional controls\tcontrolbar

Reference Number: 979 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/16/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Dragging windowed controls outside a TControlBar, 
then aborting the drag put the controlBar in a 
strange "frozen" state.

Area: vcl\additional controls\tcontrolbar

Reference Number: 1151 (Published: 10/22/98)
Status: Deferred to Next Rel
Date Reported: 8/20/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

With AutoDrag = False you can't undock controls 
by double clicking the nibs on the control bands, 
which is the default behavior when AutoDrag = 
True. 

One bad side effect is if a form is docked to a 
ControlBar with AutoDrag = False you can't undock 
it at all.

Area: vcl\additional controls\tcontrolbar

Reference Number: 431 (Published: 12/10/98)
Status: Deferred to Next Rel
Date Reported: 4/14/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

When moving a ControlBar's bands (?), if you move 
off the control bar there is a brief flicker showing the 
entire image of the control bar.

Area: vcl\additional controls\tcontrolbar

Reference Number: 1532 (Published: 12/18/98)
Status: Deferred to Next Rel
Date Reported: 10/8/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

Docking fails when docked control dragged over 
Delphi's IDE windows. This happens even when 
the application is not being run in the IDE. This is in 
all versions of D4 (including Update 2 FT).

Steps:

Create a new application. Place a TControlBar on 
the new form, and a panel on the TControlBar. Set 
the panel's DragKind property to dkDock. Compile 
the program and run it. You don't have to run it from 
the IDE, but make sure Delphi is open.
Drag the panel out of the TControlBar, and leave it 
as a floating window. Now start dragging this 
floating window over the IDE main form (for 
example, over the component palette), and leave it 
there. Move the mouse away from the window (no 
buttons are pushed now). The floating window 
frame will move with the mouse, ignoring the fact 
you have dropped the window.

Area: vcl\additional controls\tmaskedit

Reference Number: 1491 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 10/2/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

The FormatMaskText function does not work 
properly. The only thing this function seems to do is 
chop off characters if you've entered too many 
characters to check.

It appears to not be formatting the value correctly.

Steps:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, 
Controls, Forms, Dialogs,
  StdCtrls, Mask;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text := FormatMaskText('99999', ',?');
end;

end.

Area: vcl\additional controls\tmaskedit

Reference Number: 1197 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/23/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

Submitted by user via web:

MASK.PAS
When I'd format using mask containing characters 
used 
mDirLiteral(\) followed by mMskTimeSeparator (:) or 
mMskDateSeparator (/), then / or : is evaluated not 
as 
literal but as time or date separator from .ini.

This bug is in Delphi 1, Delphi 3. Delphi 4 I haven't.

Area: vcl\additional controls\tscrollbox

Reference Number: 1192 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/22/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

The scrollbox component is not setting the 
scrollable region properly.
Creating a scroll box which contains an object that 
is larger than the client size results in either the 
vertical or horizontal scroll bar to go beyond the 
range by the width/height of vertical/horizontal 
scroll bar.

Steps:


I've put an GIF of a < ALT > - < PRINT 
SCREEN > of the form on:

    http://www.digitalpaws.com/adam/window.gif


1) Open a new application.
2) Add a scrollbox to the form.
3) Add a shape to the scrollbox.
4) Set the width and height of the shape to a large 
number (e.g. 1024).
5) Compile and run the application.
6) Scroll to scroll box to the bottom right.


UNIT1.DFM:
object Form1: TForm1
  Left = 190
  Top = 107
  Width = 272
  Height = 223
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object ScrollBox1: TScrollBox
    Left = 0
    Top = 0
    Width = 264
    Height = 196
    Align = alClient
    TabOrder = 0
    object Shape1: TShape
      Left = 0
      Top = 0
      Width = 1024
      Height = 1024
    end
  end
end

UNIT1.PAS:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, 
Controls, Forms, Dialogs,
  ExtCtrls;

type
  TForm1 = class(TForm)
    ScrollBox1: TScrollBox;
    Shape1: TShape;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

end.

PROJECT1.DPR:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Area: vcl\additional controls\tspeedbutton

Reference Number: 1102 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/12/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Speed Buttons with 'Flat' property set to TRUE stay 
raised after cursor passes accross them. The 
Speed Buttons 'MUST' be on a CoolBar component 
to see this bug.

Area: vcl\additional controls\tsplitter

Reference Number: 810 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 6/18/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

TSplitter.MinSize have problem.
Assuming that  TSplitter.Align  is alLeft, If Splitter 
move to left edge of Form, Splitterwill  move to Left 
edge.

And If resize a form by left edge, Splitter will disable.

Steps:

1. Create a new application.
2. Drop TPanel in Form1. Set Panel1.Align to alLeft.
3. Drop TSplitter in Form1
3. Drop TPanel in Form. Set  Panel2.Align to 
alClient.
4. Compile and Run.
5. Glab a splitter by mouse, and move to left.
6. Panel1 will vanished.
7. Resize form1 used by left edge 
8. Can not glab a splitter.

Area: vcl\additional controls\tsplitter

Reference Number: 964 (Published: 12/18/98)
Status: Deferred to Next Rel
Date Reported: 7/15/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The Canvas property of TSplitter is not public, so 
you can't use the OnPaint event. This is 
documented as if the Canvas property is public.

Area: vcl\additional controls\tsplitter

Reference Number: 234 (Published: 7/22/98)
Status: Fixed in Version 4.0
Date Reported: 3/17/97
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

TSplitter needs a Visible property. When using a 
Splitter besides a pane that can be hidden by the 
user, it would be desirable to have the splitter be 
hidden too.

Area: vcl\additional controls\tsplitter

Reference Number: 1033 (Published: 10/27/98)
Status: Deferred to Next Rel
Date Reported: 7/27/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

The TSplitter seems to have a problem when when 
dragged below its MinSize.

Steps:

For example, drop a TPanel on a blank form, align it 
left.  Drop a
TSplitter on the form, alight it left, with default 
MinSize of 30.  Drop
another TPanel on the form, aligned client.  Run the 
program, then drag
the TSplitter all the way to the right.  It correctly 
limits the Minsize
of the panel.

Now drag the TSplitter all the way to the left.  The 
left panel gets
sized to zero instead of the TSplitter's MinSize. Click 
on the TSplitter
and its drag image is displayed where the MinSize 
should be.  Now
Maximize the form with the TSplitter all the way to 
the left.  The
TSplitter can't be dragged anymore, even when the 
form is restored to
its original size.

Area: vcl\additional controls\tsplitter

Reference Number: 811 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 6/18/98
Severity: Commonly Encountered
Type: Documentation Problem

Problem:

TSplitter AutoSnap/AutoHide property is not exist.


Area: vcl\additional controls\tsplitter

Reference Number: 317 (Published: 11/12/98)
Status: Deferred to Next Rel
Date Reported: 2/17/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

The Splitter retains the crHSplit or crVSplit cursor 
when escape is pressed.

Area: vcl\additional controls\tstringgrid

Reference Number: 1286 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 9/8/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The TStringGrid OnSetEditText event is fired every 
time the user presses a key

Steps:

1.  Drop a TStringGrid on the form
2.  Add goEdit to the options property
3.  Add a OnSetEditText event handler, run the 
application.  Note that the event fires for every key 
press while in edit where it should fire when the user 
has left the cell after an edit.

The docs state that "Occurs when the user has 
finished editing the value of a cell.", but this 
behavior seems contrary to that description.  Either 
this is a doc bug or the event if misfiring.

Area: vcl\additional controls\tstringgrid

Reference Number: 1249 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/31/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Consecutive comma's in SDF CommaText do not 
seem to be parsed as empty strings

Steps:

File | New application

Drop a StringGrid on the form

In a button click add the following code

var
  TheString: String;
begin
  TheString := ',,1';
  StringGrid.Rows[0].CommaText := TheString;
end;

//  StringGrid.Cells[0][0] is '1' and not '' as I would 
have
//  expected;

Area: vcl\additional controls\tstringgrid

Reference Number: 939 (Published: 12/18/98)
Status: Deferred to Next Rel
Date Reported: 7/13/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

TStringGrid not repainting properly

Steps:

1.  place a TStringGrid component on a form.
(Make sure there are more columns than fit in the 
grid's width, so the horizontal scroll bar is visible. It is 
also a good idea to make sure the right edge of the 
grid is in the middle of a column)

2.  Run the program, and press Ctrl-End to move to 
the last cell of the grid.

 A few pixels from the header row will remain on the 
right side of the control.

Area: vcl\core vcl classes

Reference Number: 422 (Published: 12/7/98)
Status: Deferred to Next Rel
Date Reported: 4/6/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The Constraints.AnchorHorz and 
Constraints.AnchorVert don't work properly on 
controls when their immediate container is a Form 
with AutoScroll set to True.

Workaround: set AutoScroll to False.

Steps:

1. Place Button1 on Form1 near the right edge.
2. Set Constraints.AnchorHorz to akMove.
3. Resize form's width using mouse in quick 
movements -- notice that scrollbars sometimes 
appear on form.

Area: vcl\core vcl classes

Reference Number: 486 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 5/9/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

CM_CANCELMODE message is not getting called 
when grabbing the title caption and moving the 
window or when resising a window.

Steps:

Place a TTable, TDataSource, 
TDBLookupComboBox on a form.
Connect TTable to DataSource1
TDataSource to DBDemos Database, Animals table 
and Active to True
Connect TDBLookupComboBox's ListSource to 
TDataSource1, and set ListField and KeyField to 
NAME. 
Run the application
Drop down the drop down, and then resize the form 
or move the form using the titlebar..
The drop down does not close because it does not 
get the CM_CANCELMODE message.

Area: vcl\core vcl classes

Reference Number: 630 (Published: 11/19/98)
Status: Deferred to Next Rel
Date Reported: 6/3/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

TApplication.UpdateVisible should not make the 
application window visible in the following case:
 - you are building a DLL in Delphi that contains a 
Form, which is intended to be created as a child of 
a foreign window (i.e.that's not implemented in 
Delphi).
 - the Application.Handle window is a foreign 
window handle (in this case, the window handle of 
the encapsulating frame window)
 - the Application.Handle window is hidden.
 - after creating the Form initially hidden, you then 
set Form.Visible := True.

This last step sets the Visible property to True and 
then eventually calls Application.UpdateVisible.  

TApplication.UpdateVisible will loop through all the 
Forms and if any are visible it will make the 
Application visible as well.

The problem is that this code assumes all the forms 
are top-level windows and not child windows.  In 
general, making a child window visible does not 
necessarily cause its parent to become visible, and 
only when the parent becomes visible do all the 
windows appear on the screen.

Workaround:

Here is a rewrite that works around the problem:
procedure TApplication.UpdateVisible;
....
var
  I: Integer;
begin
  if FHandle < > 0 then
  begin
begin
  if FHandle < > 0 then
  begin
    for I := 0 to Screen.FormCount - 1 do
      // If form is visible, show the Application.
      // But don't if the form is a child of a non-Delphi 
window,
      // since if that is hidden then calling SetVisible 
will cause
      // it to become visible.
      with Screen.Forms[I] do
        if (Visible and 
           ((ParentWindow = 0) or (not IsChild( 
FHandle, ParentWindow )))) then
        begin
          SetVisible(True);
          Exit;
        end;
    SetVisible(False);
  end;
end;

Area: vcl\core vcl classes

Reference Number: 961 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/13/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The implementation of the new routine 
Forms.KeyboardStateToShiftState is faulty. It fails to 
correctly ascertain whether certain keys are 
pressed down or not

The routine in question is only used in the 
implementation of the mousewheel event support 
(as far as I can see), but this simple code in the 
Steps section should hopefully demonstrate the 
point. Note that in the code supplied, there is an 
OnKeyPress event handler that uses 
KeyboardStateToShiftState to see if the Ctrl key is 
down.

Area: vcl\core vcl classes

Reference Number: 279 (Published: 11/11/98)
Status: Deferred to Next Rel
Date Reported: 1/12/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

TWinControl.Canfocus does not check to see if the 
form itself is visible/enabled.

Steps:

1. File | New Application
2. File | New Form
3. Place a button on form1 with the following code:
if Form2.Canfocus then
  Form2.SetFocus;
4. Compile/run the application and press Button1
// Notice that an exception occurs

Area: vcl\core vcl classes

Reference Number: 883 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/7/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

Moving the mouse over a disabled menu item draws 
the selection and hides the text.  It should not draw 
the selection.

[Note: this only happens if the clHighlight system 
color is = to the clBtnShadow system color. - rbr]

Area: vcl\core vcl classes

Reference Number: 230 (Published: 7/22/98)
Status: Fixed in Version 4.0
Date Reported: 3/15/97
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

[ TStrings ]

LoadFromFile requires exclusive access to a file or it 
will fail. 

When calling TFileStream.Create it should use 
"fmOpenRead or fmShareDenyWrite" instead of 
only "fmOpenRead".

Area: vcl\core vcl classes

Reference Number: 354 (Published: 11/16/98)
Status: Deferred to Next Rel
Date Reported: 3/2/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

If you define your own collection property, you must 
call ReadValue before you call ReadCollection or 
you'll get an error.

Steps:

o  Comment out the ReadValue in 
TQuery.ReadParamData().
o  Recompile
o  Drop down a TQuery add a SQL statement (" 
select * from customer where custno = :CustNo")
o  Run the project.

Area: vcl\core vcl classes

Reference Number: 976 (Published: 12/18/98)
Status: Deferred to Next Rel
Date Reported: 7/15/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

The Anchors property doesn't perform correctly 
when the WindowsState of a form is set to 
wsMaximize.

Area: vcl\core vcl classes

Reference Number: 1088 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/6/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

The problem is with GetFormImage most nest 
windows controls like comboboxes, etc. are drawn 
blank. 

Area: vcl\core vcl classes

Reference Number: 786 (Published: 12/15/98)
Status: Deferred to Next Rel
Date Reported: 6/17/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

The TThread.WaitFor method can't be used for 
threads where the FreeOnTerminate property is set 
true.

This is because the FHandle field of the TThread 
object is accessed after the thread has terminated 
and, if FreeOnTerminate was true, after the object 
has been freed.

My suggestion is to store the value of FHandle 
locally and use the local variable instead of 
FHandle.

Steps:

Concrete suggestion:


function TThread.WaitFor: Integer;
var
  Msg: TMsg;
  H: THandle;
begin
  H := FHandle;
  if GetCurrentThreadID = MainThreadID then
    while MsgWaitForMultipleObjects(1, H, False, 
INFINITE,
      QS_SENDMESSAGE) = WAIT_OBJECT_0 + 1 
do PeekMessage(Msg, 0, 0, 0, PM_NOREMOVE)
  else WaitForSingleObject(H, INFINITE);
  GetExitCodeThread(H, Result);
end;

Area: vcl\core vcl classes

Reference Number: 1261 (Published: 10/24/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/31/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

The Align property is interacting with the new 
Anchors property in a way that breaks old code and 
causes very strange side effects.  For example, by 
changing the Align property of a component, it is 
possible for the component to "disappear" from the 
form, because its width has been set to 0.

The point is that the Align property should not be 
controlled by the Anchors property and vise-versa.  
And although there is a work-around it is certainly 
not an acceptable solution. 

Area: vcl\core vcl classes

Reference Number: 1516 (Published: 12/18/98)
Status: Deferred to Next Rel
Date Reported: 10/6/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

WindowState property is not reported correctly in 
FormResize

Steps:

From the dellphi bug list: (using D4 update 2 beta)

A Form's WindowState property is not reported 
correctly in the FormResize event when
maximizing/minimizing/restoring. The WindowState 
property gets updated AFTER the FormResize 
event.



     To fix this bug, you need to edit the 
FORMS.PAS file. I haven't attempted a workaround 
that doesn't involve editing the VCL code,
     although I'm sure it would be possible by 
trapping the WM_SIZE message. 

     You need to adjust the TCustomForm.WMSize 
procedure so that the "inherited" line comes 
AFTER the case statement that sets the
     WindowState property. i.e.: 

     procedure TCustomForm.WMSize(var Message: 
TWMSize);
     begin
       {inherited;}  // remove this line

       if not (csDesigning in ComponentState) then
         case Message.SizeType of
           SIZENORMAL: FWindowState := wsNormal;
           SIZEICONIC: FWindowState := 
wsMinimized;
           SIZEFULLSCREEN: FWindowState := 
wsMaximized;
         end;
       inherited;    // move line to here.
       RequestAlign;
       ......

Area: vcl\core vcl classes

Reference Number: 1540 (Published: 10/21/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/9/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

The crSize cursor constant is invalid. 

Area: vcl\core vcl classes

Reference Number: 1541 (Published: 12/21/98)
Status: Deferred to Next Rel
Date Reported: 10/9/98
Severity: Commonly Encountered
Type: New Feature

Problem:

the function VarArrayFromStrings includes both the 
name & the value pair in each entry.  I would think 
that it should only have the Name or perhaps the 
values in a second diminsion.

The work around is to not use the method.

Steps:

1)  In the following example the output string will 
include both the name & the value in the single 
diminsion of the variant array:

var
  vMachines: olevariant;
  vList: TStringList;
  i: integer;
begin
  Edit1.Text := '';
  ListBox1.Items.Clear;

  vList := TStringList.Create;
  for i:=0 to 9 do
  begin
    vList.Add('Test' + IntToStr(i) + '=');
    vList.Values['Test' + IntToStr(i)] := IntToStr(i);
  end;
  Edit1.Text := IntToStr(vList.Count);

   vMachines := VarArrayFromStrings(vList);
   vList.Free;

   for i := 0 to VarArrayHighBound(vMachines, 1) do
      ListBox1.Items.Add(vMachines[i]);
end;

Output: 
 Test0=0
 Test1=1
 Test2=2
...

when I would expect:
 Test0
 Test1
 Test2

Area: vcl\core vcl classes

Reference Number: 699 (Published: 12/15/98)
Status: Deferred to Next Rel
Date Reported: 6/10/98
Severity: Infrequently Encountered
Type: Documentation Problem

Problem:

The Anchors property causes a visual display 
problem upon certain resize operations

Steps:

Make sure you are using a version of Windows that 
has the option of having window contents display 
whilst dragging turned on. I am using Windows 95

Place a DBGrid on a form

Use the Anchors property and make sure all four 
possible elements are included in the set

Now resize the form (either at design-time or at 
run-time) so that the form shrinks and the gris 
shrinks in tandem

When the grid gets small enough for the column 
headers to get clipped, keep shrinking the form

When the form is sized, such that the grid is almost 
non-visible, start enlarging the form again

Notice that the column headers are redrawn very 
badly. 

To remedy the problem you need to invalidate the 
grid

Area: vcl\core vcl classes

Reference Number: 84 (Published: 11/6/98)
Status: Deferred to Next Rel
Date Reported: 6/3/98
Severity: Extremely Rare Case
Type: Basic Functionality Failure

Problem:

The TStringList.CommaText property does not work 
correctly if the last item entered in the CommaText 
property is a NULL.

Steps:

Add the following code to a project:

void foo(void){
  TStringList *sl = new TStringList;
  sl- > CommaText = "A,B,C,D";
  int count = sl- > Count;
  sl- > CommaText "A,B,C,";
  if (sl- > Count != count){
    throw Exception ("Welcome to the Builder 
CommaText Bug!:  " + String (sl- > Count));
  }
}

there should be 4 items in the string list but it shows 
as three.

Area: vcl\core vcl classes\streaming

Reference Number: 1093 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/11/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The VCL streaming code does not handle published 
variant properties with Null values when converting 
to and from text.

Steps:

Drop a TQuery.
In the SQL put: :p1 :p2
In the params editor, select ftInteger for the 
datatype of each param.
Set the value of the first param to Null (from the type 
drop down) and the second param to 0.
Try to view the form as text.

Area: vcl\core vcl classes\tform

Reference Number: 651 (Published: 11/19/98)
Status: Deferred to Next Rel
Date Reported: 6/7/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The VertScrollBar and HorzScrollBar.Size can't be 
reset to it WIn95 default after it value has changed. 
If we set it back to 0 it should set to the default size. 

Steps:

1. Place some compnents on a TForm
2. Resize the form so it is smaller the the 
components. Scrollbars are now displayed.
3. Set HorzScrollBar.Size to 50
4. Set HorzScrollBar.Size back to 0

The default value isn't set.

Area: vcl\core vcl classes\tform

Reference Number: 1210 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/24/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Anchors don't work correctly for components on 
forms whose Position property isn't set to 
poDesigned or poDefaultPosOnly.

Area: vcl\core vcl classes\tform

Reference Number: 1155 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/20/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Cannot minimize the main form after closing modally 
shown form form a dll compiled with runtime 
packages

Area: vcl\core vcl classes\tform

Reference Number: 1545 (Published: 10/20/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/12/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Setting TForm.Align to anything other than alNone 
causes other visible forms (with Align < > alNone) 
which happen to be parented (i.e. Parent < > nil) 
to flicker like crazy.

Steps:

1. Set Form1.Align to alTop
2. Set Form2.Align to alClient
3. Create a Form3 (Align = alNone)
4. Make sure for all forms Visible = True
5. In Form3.FormCreate:
  Form2.Parent := Form3
6. Run and resize Form3 - notice incorrect 
alignment of Form2 and crazy flicker.

Area: vcl\core vcl classes\tform

Reference Number: 932 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/10/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

The OnActivate of TForm fires before the OnCreate 
event under some circumstances.  This can cause 
problems with existing code that depends on the 
form being fully instantiated at this point.  This was 
not the behaviour in previous versions.

Steps:

1) Create a 2nd Form in an applicaiton.  Leave it 
autocreated and not visible.
2) AutoScroll := True;
3) Drop a button on the form and shrink the form so 
that the button is partially out of the viewable area 
(i.e. the scrollbar should automatically appear.
4) Create event handlers in OnCreate and 
OnActivate of the form.
5) Set break points or what ever to see that the 
OnActivate fires BEFORE the OnCreate

Area: vcl\core vcl classes\tform

Reference Number: 1091 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/10/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

In FORMS.PAS, TScreen.DestroyCursors does not 
free one of the cursors :

procedure TScreen.DestroyCursors;
var
  P, Next: PCursorRec;
  Hdl: THandle;
begin
  P := FCursorList;
  while P < > nil do
  begin
    if (((P^.Index > = crSqlWait) and (P^.Index < = 
crDrag)) 
       or (P^.Index = crHandPoint))          
//modification
       or (P^.Index > 0) then
    DestroyCursor(P^.Handle);
    Next := P^.Next;
    Dispose(P);
    P := Next;
  end;
  Hdl := LoadCursor(0, IDC_ARROW);
  if Hdl < > FDefaultCursor then
  DestroyCursor(FDefaultCursor);
end;

Steps:

Customer recommends adding this line.  Moving on 
for verification.

Area: vcl\core vcl classes\tform

Reference Number: 1341 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 9/16/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

when minimizing a maximized MDI child Form, the 
title bar gets placed a touch to low in the MDI 
parent Form causing vertical scroll bars to appear in 
the parent.

Steps:

1.  File | New...  Projects, MDI Application
2.  Run the project.  
3.  Create a new Child Form.  
4.  Maximize the Child Form.
5.  Minimize the child Form.
  Vertical scrollbars now appear in the parent Form

Area: vcl\core vcl classes\tform

Reference Number: 1204 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/24/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

TCustomForm.OldCreateOrder does not have a 
default value, so it is always stored in the DFM.  I 
don't think you'd want this for boolean values.


Area: vcl\core vcl classes\tform

Reference Number: 80 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 5/14/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

When printing a TForm the top and left borders of 
the printed image have a black line. This black line 
was not there in Delphi 3 applications, it started 
showing up in Delphi 4.

Steps:

1. Start a new project
2. Drop a button on the form
3. Double click on the button and type:

    Form1.Print();

4. Run project (press the little green play button)
5. When application comes up click "Button1"
6. Get up and go to the printer
7. Pick up the piece of paper that printed and look 
at it
8. See a black line on the top and left boarders of 
the printed image. It should not be there.

Area: vcl\core vcl classes\tform

Reference Number: 358 (Published: 11/16/98)
Status: Deferred to Next Rel
Date Reported: 3/4/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

A very hand debug tool is to turn on $APPTYPE 
CONSOLE in a GUI application to enable writeln of 
debug messages etc to the console. The forms in 
the application continue to work as before.

However in D3, this is not fully supported, because 
the VCL code checks the IsConsole variable at 
run-time and the result is that all the forms in the 
application gets an icon in the task-bar, not just the 
main window.

Problem:
In Forms you have:

procedure TApplication.CreateHandle;
var
  TempClass: TWndClass;
  SysMenu: HMenu;
begin
  if not FHandleCreated and not IsConsole then
  begin

I.e. the Application Handle is only created if 
IsConsole returns false.

TApplication.CreateHandle is called from 
TApplication's Create constructor when IsLibrary is 
false. TApplication is created from the InitControls 
procedure in Controls and the InitControls 
procedure is called in the initialization part of 
Controls.

Area: vcl\core vcl classes\tform

Reference Number: 1384 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 9/22/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

It appears scrolling a form in Delphi 4 is 50 to 100% 
slower than Delphi 3. 
[ I see 9.84 sec vs 4.36 sec - about 100% - MD]

Steps:

Compare following code in Delphi 3 and Delphi 4.

var i: Integer;
    t1,t2: TDatetime;
    e: Integer;
begin
   Screen.Cursor := crHourGlass;
   t1 := Now;
   for i := 1 to 400 do
   begin
     Label1.Left := 10+i;
     Label1.Top := 10+i;
     Label1.Width := 100+i;
     Label1.Height := 100+i;
   end;
   for i := 1 to 400 do
   begin
     Label1.Left := 10+i;
     Label1.Top := 10+i;
     Label1.Width := 100+i;
     Label1.Height := 100+i;
   end;
   t2 := Now;
   Label2.Caption := 'Testtime: ' + 
FormatFloat('0.00',(t2-t1) * 100000) + ' sec';
   Screen.Cursor := crDefault;

Area: vcl\core vcl classes\tscreen

Reference Number: 1076 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/4/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

Screen.Fonts does not update in response to 
Wm_FontChange messages.

Area: vcl\core vcl classes\tthread

Reference Number: 1392 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 9/23/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

Proper multithreading support is made even more 
difficult with D4.

To allow the main thread to block on the message 
queue as well as any
number of events, semaphores and threads, I've 
implemented a
TMultiThreadedMainLoop class that hooks the 
Application.OnIdle event
and calls MsgWaitForMultipleObjects.

When it detects that there is a message waiting in 
the queue, it exits
the idle event handler returns to let 
TApplication.HandleMessage
handle the message (sic). However, to ensure that 
control returns back
to the OnIdle event handler to again call 
MsgWaitForMultipleObjects,
it always sets Done := false before exiting. This 
works nicely in D3,
but in D4 it has the side-effect of never calling the 
new DoActionIdle
method:

procedure TApplication.Idle(const Msg: TMsg);
begin
  ...
  Done := True;
  try
    if Assigned(FOnIdle) then FOnIdle(Self, Done);
    if Done and IsIdleMessage(Msg) then 
DoActionIdle;
  except
    on Exception do HandleException(Self);
  end;
  if Done then WaitMessage;
end;

My OnIdle handler (simplified):

procedure 
TMultiThreadedMainLoop.AppIdle(Sender: 
TObject; var Done:
boolean);
begin
  repeat
    WaitResult := MsgWaitForMultipleObjects(...);

    if WaitResult = wrSignaled then
       HandleSignal;

    // Loop until we get a message
  until WaitResult = wrMessage;

  // Always return Done=false to signal that the 
message loop should
go back here when it has read all messages
  Done := false;
end;

As you can see from these snippets, the event sets 
Done:=false to
avoid the blocking WaitMessage call in 
TApplication.Idle. However,
this has the side-effect of never calling 
DoActionIdle.

To add to the problem, the DoActionIdle method is 
declared private, so
I cannot easily call it from my event handler. The 
only resolution
seems to be to copy the functionality of 
DoActionIdle into my class.
Not very nice when it comes to reuse.

Area: vcl\core vcl classes\twincontrol

Reference Number: 1276 (Published: 10/24/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/4/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Constraints fail under certain configurations of 
controls using Align.

Area: vcl\core vcl classes\twincontrol

Reference Number: 1381 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 9/22/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Strange behaviour when using the paintto method 
from twincontrol descendants, specially when used 
with panels which contain other panels inside, with 
components in them. Some components
are not drawn, some are drawn bigger and, when 
the original object is not visible, nothing or a white 
rectangle is drawn.

Steps:

1. create a new application
2. drop a panel of the form; create panel1
3. drop another panel on panel1; create panel2
4. drop a button on panel2; create button1
5. drop a paintbox component on the form; create 
paintbox1
3. drop another button on the form and on its 
onclick event execute the followimg statement: 
panel1.paintto(paintbox1.canvas.handle, 0, 0);
4. when the onclick event fires, panel1 is drawn 
containing panel2, but no button1 

Area: vcl\dialog controls\tcolordialog

Reference Number: 1131 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/17/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

When defining custom color, the user is to use the 
keyword ColorA=xxxxxxx.  The word Color should 
not be resourced since it could easily lead to 
over-translation (as is the case with Delphi 3 and 4)

Area: vcl\dialog controls\topenpicturedialog

Reference Number: 1057 (Published: 12/4/98)
Status: Deferred to Next Rel
Date Reported: 7/31/98
Severity: Serious
Type: Crash

Problem:

TOpenPictureDialog does not open specfied 
formats.

Steps:

1.  Drop a TOpenPictureDialog on a Form with a 
TButton.
2.  within Button1Click do a 
OpenPictureDialog1.Execute.
3.  Try to open any .jpg and an 
EInvalidGraphicFormat is raised with error invalid 
extension.  (Graphics.pas, TPicture.LoadFromFile 
line3619).

Workaround:


The solution is to write code to assign 
OpenPictureDialog1.Filter := 
Graphics.GraphicFilter(TGraphic) at any time after 
the OpenPictureDialog1 component is loaded and 
before it is show to the user.  Or, you can modify the 
OpenPictureDialog's Filter property at design time to 
delete the graphics file types that you do not intend 
to support in your application.

Area: vcl\dialog controls\topenpicturedialog

Reference Number: 330 (Published: 11/12/98)
Status: Deferred to Next Rel
Date Reported: 2/20/98
Severity: Commonly Encountered
Type: Unknown

Problem:

TopenPictureDialog can be pretty slow.

Steps:

What is the chance of having this thing use 
threads/processes?  I have a bitmap that just brings 
Delphi to its knees.

if I just happen to click on that bitmap - a takes 
couple of min trying to load the bitmap, then a min 
trying to close the dialog.  Or if I click on another 
bitmap while trying to load this big one, it still takes a 
couple of min loading, then throws it away meaning 
if I click back, another 2 min...

Area: vcl\dialog controls\tprintdialog

Reference Number: 1281 (Published: 10/24/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/8/98
Severity: Serious
Type: Crash

Problem:

TPrintDialog fails to honor the PrintToFile checkbox

Area: vcl\dialog controls\tprintdialog

Reference Number: 274 (Published: 11/11/98)
Status: Deferred to Next Rel
Date Reported: 12/15/97
Severity: Serious
Type: Basic Functionality Failure

Problem:

TPrinterSetupDialog

Dialog is always initialized with the default printer 
selected (changing Printer.PrinterIndex has no 
effect)

Area: vcl\dialog controls\tprintersetupdialog

Reference Number: 465 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 5/5/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Under Windows NT 4 (SP3) the printer dialog and 
printer setup dialog will always show the default 
printer, not the one chosen through 
Printer.PrinterIndex. Under Win95 (and Win 3.1 with 
D1) the PrinterIndex printer is the one chosen in the 
dialog.

This can be worked around by calling 
Printer.GetPrinter followed by Printer.SetPrinter, with 
a 0 parameter for hDevMode, to force TPrinter to 
update its info.

Steps:

The following event handler shows what is 
neccessary to have the NT4 printer dialogs to show 
the correct printer after PrinterIndex is set in code. If 
the GetPrinter and SetPrinter calls are commented 
out then the dialogs will always show the default 
printer, not the PrinterIndex one.

procedure TForm1.Printersetup1Click(Sender: 
TObject);
var
  Device : array[0..255] of char;
  Driver : array[0..255] of char;
  Port   : array[0..255] of char;
  hDMode : THandle;
begin
  Printer.PrinterIndex := 1; { set to any non-default 
printer }
  Printer.GetPrinter(Device, Driver, Port, hDMode);
  Printer.SetPrinter(Device, Driver, Port, 0);

  if PrinterSetupDialog1.Execute then begin
    Memo1.Lines := Printer.Printers;
  end;
end;

Area: vcl\docking

Reference Number: 1571 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/15/98
Severity: Critical
Type: Crash

Problem:

Dragging off a TCoolBar causes an AV when the 
dragged control is released.

Area: vcl\docking

Reference Number: 1465 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/30/98
Severity: Critical
Type: Basic Functionality Failure

Problem:

ManualDock does not work in the case where a 
control is not floating or already docked 
somewhere.

Steps:

Put a DockSite on a form.
Put a dockable control on a form.
Put a button on the form, in it's Onclick type:

 < dockable control > .ManualDock( < docksite 
> );

Run.
Push the button. 
Nothing happens.

Area: vcl\docking

Reference Number: 536 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 5/21/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Resize splitters do not behave correctly when 3 or 
more dock clients are present.

Steps:

Run the docking demo and cojoin 3 color windows 
so that two are side by side on the bottom and one 
is one is on top of the other two.

Try to move the splitter between the bottom two 
windows and notice that it will only move two the 
left a distance which is equal to the height of the 
top window.

Area: vcl\docking

Reference Number: 537 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 5/21/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Docking preview rect is not correct in some cases.

Steps:

Run the docking demo.
Open three windows.
Dock 2 side by side.
Try to dock the third above the previous 2.
Note the preview rect incorrectly shows the entire 
window instead of just the top half.

Original Steps:
1) Conjoin dock object inspector and call stack side 
by side.
2) Grab any other dockible window and try to dock 
above the other 

Note the preview rect took up the entire tool 
window, not just the top of the tool window.

Area: vcl\docking

Reference Number: 831 (Published: 10/19/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 6/22/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Turns out it was a TControlBar grabbing anything 
dragged over it.  The TControlBar in this case was 
obscured by a TToolBar filling it's client area, so you 
couldn't see that the form had been docked -- all 
you saw was that it vanished and was no longer 
displayable.  So, the bug is:  

TControlBar docks anything drug over it without 
that 'thing' being first dropped -- very bad.  

Steps:

With AutoDrag = False, the behavior is as 
expected, Unfortunately the form cannot then be 
undocked from the ControlBar

Area: vcl\docking

Reference Number: 1463 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/30/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Docking a TRichEdit to a TPageControl results in 
the tab sheet containing the entire text of the 
TRichEdit, including non-printable characters.

Steps:

Drop a PageControl on a form, add a couple of tab 
sheets, and drop a TRichEdit on a tabsheet. 
Set RichEdit DragKind to dkDock and DragMode 
to dmAutomatic.
Make the PageControl a docksite.
Add some more text to RichEdit.Lines.
Run. 
Click the RichEdit, since it's dmAutomatic this will 
cause it to undock and re-dock to a new tab. Note 
the caption.

Area: vcl\docking

Reference Number: 1565 (Published: 10/23/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/14/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

When attempting to dock any control to a control 
bar, the image of the control will remain improperly in 
the initial control that was dragged over.

Steps:

1.  Place two control bars in a form, one aligned 
Top and the other aligned Left
2.  Drop a panel on the top one and set DragKind 
to dkDock and DragMode to dmAutomatic.
3.  Run the application.
4.  Undock the panel and release the mouse.
5.  Grab the caption of the undocked panel and 
drag it over a controlbar.  It will dock temporarily.
6.  Continue moving the mouse so that it undocks 
that control bar and travels over the other.  
7.  Notice the image of the control remaining in the 
first control bar.

Area: vcl\docking

Reference Number: 886 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/4/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

Floating window gets a bit of garbage in its caption

[or, rather, TCustomDockForm uses the memo's 
text, and I mean ALL of it, as its caption - MD]

Steps:

Make a new application

Add panel to form, making it just a bit smaller than 
the form itself is

Set panel's DockSite to True

Add a memo onto the panel

Set Memo's Align property to alClient

Set Memo's DragMode to dmAutomatic

Set Memo's DragKind to dkDock

Run app

Drag memo off the panel and leave it floating

Notice the caption of the floating window is Memo1 
followed by two vertical bars, or squares (probably 
high or low ANSI characters)

Area: vcl\docking

Reference Number: 484 (Published: 10/15/98)
Status: Deferred to Next Rel
Date Reported: 5/9/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

When a dock client becomes visible it may not be 
restored to the location it was in before being 
hidden.



Area: vcl\docking

Reference Number: 1252 (Published: 10/24/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/1/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Docking into a Coolbar:

Setting Source.DockRect inside of the CoolBar's 
OnDockOver event (to provide a preview rect) can 
cause unpredictable behavior, such as 
disapperaing bands

Workaround:

see readme.txt

Area: vcl\drag\drop

Reference Number: 1103 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/12/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

On any TControl, the OnStartDrag event is fired as 
soon as BeginDrag is called, not when the drag 
operation actually starts (when the threshold is 
exceeded).

Original Description:
TTreeView.BeginDrag starts dragging immediately, 
regardless of the values for "Immediate" and 
"Threshold" parameters. 

[This bug also applies to TListView - MD]

Area: vcl\graphics

Reference Number: 707 (Published: 12/15/98)
Status: Deferred to Next Rel
Date Reported: 6/12/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

When Changing the pixelformat of TBitmap to 
pf8Bit, CreateHalftonePalette leaks

Steps:

var
  orgbmp:TBitMap;
  x: Integer;
begin
  for x:= 0 to 10000 do
  begin
  orgbmp:=TBitmap.Create();
	orgbmp.Width:=10;
	orgbmp.Height:=10;
	orgbmp.PixelFormat:=pf8bit; //here it 
leaks
	orgbmp.Palette:=  
Image1.Picture.Bitmap.Palette;
        Application.ProcessMessages;
  orgbmp.free;
  end;

Area: vcl\graphics

Reference Number: 984 (Published: 10/27/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/17/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The attached graphic is not streamed correctly.  
Streaming of RLE bitmaps appears to be broken.

Steps:

1. File | New Application
2. Drop a TImage
3. Load the RLE bitmap into the image.
4. Select View Form as text
5. Select View as Form
// Notice that part of the top of the bitmap is 
messed up.

Area: vcl\graphics

Reference Number: 244 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 5/16/97
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Matrox millenium , Diamond, Cirus. Riva 128, 
causes problems on a recompile D2 app with a 
Treeview. On WinNT 351 SP2

Also, corrupted icons in the IDE component palette.

Steps:

1)The icons form the Image list are displayed as 
black. in the treeview

2)This happens even on a (640*480 16 
colors) Standard MS driver.


3)The icons are 16x 16 and 16 colors.

4)The BDEadmin DOES NOT display this behaviour 

5) the same app compiled with D2 does NOT show 
the same behaviour.

Area: vcl\graphics

Reference Number: 409 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 3/30/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

When DDBsOnly is set to True, the Graphics unit 
will leak resources, but only on Win95. See line 
5586 in Graphics.pas.

Steps:

1. File | New Application
2. Drop a TButton down.
3. In the OnClick event handler for the button:

  var
    i : Integer;
  begin
    DDBsOnly := True;
    for i:=0 to 9999 do begin
      with TBitmap.Create do begin
        LoadFromFile('C:\WINDOWS\WAVES.BMP');
        Free;
      end;
      Caption := IntToStr(i);
      Application.ProcessMessages;
    end;
  end;

4. Run and watch your resources go away...
5. The program will crash if you wait long enough. 
On my machine, about 900 iterations

Area: vcl\graphics

Reference Number: 1160 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/20/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

TGraphic.LoadFromFile opens the file in a mode 
that prevents other processes from concurrently 
reading from the file.  Please change to opening it in 
a shared mode.

Area: vcl\graphics

Reference Number: 249 (Published: 11/9/98)
Status: Deferred to Next Rel
Date Reported: 7/29/97
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

RLE compressed bitmaps are not correctly 
unencoded by ReadDIB in Graphics.pas.

Steps:

1. Add a TImage on a form.
2. Add the attached 256-color athena bitmap to the 
image.
3. Hit Alt+F12 to view the form's source.
4. Hit Alt+F12 again to stream-in the image.
5. Notice the black bands atop the image.

Area: vcl\graphics

Reference Number: 1342 (Published: 10/24/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/16/98
Severity: Infrequently Encountered
Type: Unknown

Problem:

[ TGraphic ]

LoadFromFile requires exclusive access to a file or it 
will fail.

When calling TFileStream.Create it should use 
"fmOpenRead or fmShareDenyWrite" instead of 
only "fmOpenRead".

The same report has been submitted and fixed for 
TStrings but it appears that the file mode should be 
corrected for all objects in VCL that implement the 
"LoadFromFile" method.



Area: vcl\mdi support

Reference Number: 1542 (Published: 10/21/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/12/98
Severity: Commonly Encountered
Type: Crash

Problem:

Using a mousewheel in an MDI app causes a stack 
overflow.

Area: vcl\printing

Reference Number: 1055 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 7/31/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

TPrinter.GetPrinter fails to return the name of the 
currently selected printer driver

Area: vcl\printing

Reference Number: 348 (Published: 11/13/98)
Status: Deferred to Next Rel
Date Reported: 2/24/98
Severity: Commonly Encountered
Type: New Feature

Problem:

Add global variable and type to Printers unit:

type
  TPrinterClass = class of TPrinter;

var
  PrinterClass : TPrinterClass;

Change the Printer function to create an instance of 
the class found in the PrinterClass variable rather 
than alwas a TPrinter.
Set PrinterClass to TPrinter in the unit initialization.

Area: vcl\property\type editors

Reference Number: 1232 (Published: 10/23/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/26/98
Severity: Critical
Type: Crash

Problem:

Using drag-drop on the TField property editor can 
hang the IDE.

Steps:

1. File | New Application
2. Drop a TTable and connect it to any .DB file
3. Bring up the fields editor for the TTable and add 
all fields
4. Drag one of the fields to a new position within the 
fields editor.

 Notice that your mouse is stuck in a constant drag 
state causing you to have to terminate the IDE.

Area: vcl\property\type editors

Reference Number: 1108 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/13/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The DBGrid column editor has lost it's move 
up/down buttons which are rather essential to 
changing the order of columns on the grid.  These 
need to be put back.

This should be fixed in the inline.

Area: vcl\property\type editors

Reference Number: 1219 (Published: 10/23/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/25/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

TIntegerProperty does not handle LongWord 
properly.


Area: vcl\property\type editors

Reference Number: 583 (Published: 11/13/98)
Status: Deferred to Next Rel
Date Reported: 5/27/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

TListView Columns Editor has enabled arrow 
buttons when they are inappropriate

Steps:

 1) Drop TListView component on a form
 2) Add column
You will see up and down arrows enabled
 3) Add further columns 
 4) click on first or last column - each should show 
just one hilighted button

Area: vcl\property\type editors

Reference Number: 739 (Published: 12/15/98)
Status: Deferred to Next Rel
Date Reported: 6/15/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

Collection Editor's toolbar  have problem.

Steps:

1. Create new application from Delphi IDE.
2. Drop ActionList component into Form1.
3. Click a ActionList1 and select "Action List Editor" 
from popup menu.
4. Click right mouse button and select "Text Label" 
from popup menu in ActionList Editor
5. Buttons in Toolbar will change to bigger mode.
6. Click a edge of toolbar and "Panel description"
7. Toolbar's button will shrink.

Area: vcl\registry \ ini objects

Reference Number: 401 (Published: 12/3/98)
Status: Deferred to Next Rel
Date Reported: 3/27/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

TRegistry.ReadString doesn't raise an exception 
when the string isn't found. According to the docs it 
should.

This may cause other problems if there are other 
components or code that depends on this 
behaviour.

Steps:

Read a non-existing string value using 
TRegistry.ReadString.
It won't raise an exception as documented.

Area: vcl\services

Reference Number: 674 (Published: 12/15/98)
Status: Deferred to Next Rel
Date Reported: 6/9/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Creating a simple NT Service with a COM Property 
and timer driven beep doesn't work. The COM 
client seems to start a new copy of the service 
instead of using the running service.

Even when starting the service from the SCM it 
doesn't seem to work.  I used both Dispatch and 
COM interfaces.

Steps:

Create a new NT Service.
Add a timer and have it beep every five seconds
Add a Automation Object to the service. (Multi 
Instance, Single threaded)
Add a MyValue property (integer)
Install the service.
Create the client 
Creating the COM object causes another copy of 
the service to start.

Area: vcl\services

Reference Number: 1424 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 9/25/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

setting the Interactive property to true makes it so 
that the service will not start on login.

Steps:

1.  Create a new TServiceApplication
2.  in the OnExecute do this (turn speakers down or 
it will get annoying)
  while not terminated do begin
    beep;
    sleep(500);
    ServiceThread.ProcessRequests(False);
  end;
3.  Install the Service.
4.  Start the Service. (Make sure that the start type 
is stAutomatic)
5.  Start button | Shutdown |  "Close all programs 
and log on as a different user" option
6.  Notice that the service is still beeping the whole 
time the system is logging out.
7.  Log back in as the same user.
8.  Reopen project.
9.  Uninstall the service.
10.  Change the Interactive property of the 
TService to true.
11.  Repeat steps 3-5.  Notice that the service 
stops beeping when logging out.
12.  After logging back in, check the Service 
Control Manager and look at the service.  It still 
states that the start type is Automatic, but it is not 
started.  Also, note that you may start it manually 
with no problems.




Area: vcl\services

Reference Number: 490 (Published: 11/12/98)
Status: Deferred to Next Rel
Date Reported: 5/11/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

TService.LogMessage don't log correct message.

Calling  LogMessage( 'xxx' ) will be logged in 
EventViewer 'The description for Event ID ( 0 ) in 
Source ( Service1 ) could not be found. It contains 
the following string(s): xxx'

Steps:

1. Create new "Server application" 
2. Double click on Service1.AfterInstall
3. Enter following code

procedure TService1.ServiceAfterInstall(Sender: 
TService);
begin
  LogMessage( 'xxx');
end;

4: Build, and Install this service application into NT
5. Execute this application from control panel
6. Check event by Event Viewer.
7. Logged message is incorrect.

Area: vcl\services

Reference Number: 1163 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/20/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

Creating a service application and running as an 
NT Service, code in the OnShutDown method 
never gets executed.

Area: vcl\standard controls\tactionlist

Reference Number: 584 (Published: 11/13/98)
Status: Deferred to Next Rel
Date Reported: 5/27/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The Code assigned to the OnExecute method of a 
TEditCopy, TEditPaste, or TEditCut (Standard 
Actions) will not fire when right clicking in a TEdit 
and selecting Cut, Copy or Paste from the menu 
options.

Steps:

1. File | New Application.
2. Drop a TEdit and a TActionList on Form1.
3.  DoubleClick on the TActionList to bring up its 
Action Editor.
4.  Create a new action (Category : Edit, Action : 
TEditCopy, TEditPaste, TEditCut).
5.  assign code to the OnExecute Event(Such as a 
MessageBeep).
6.  Run the application.
7.  select text in the TEdit, RightClick in the TEdit, 
and select Cut Copy or Paste (depending which 
actions you've created).
8.  The Action OnExecute does not fire.  
9.  CTRL+C, CTRL+V, CTRL+X do fire the 
OnExecute of the Action when text is highlighted in 
the TEdit.

Area: vcl\standard controls\tactionlist

Reference Number: 661 (Published: 11/19/98)
Status: Deferred to Next Rel
Date Reported: 6/8/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Actions are not serviced the way they should. It 
takes an extra mouse/keyboard event to get the 
Action's OnUpdate handler to fire.

Steps:

1. Drop a TButton on a form
2. Drop a TCheckBox on the form
3. Drop a TActionList on the form
4. Add an action to the TActionList
5. Set the button's action property to this action
6. Write this code as the action's OnUpdate 
handler:

Action1.Enabled := CheckBox1.Checked;

7. Run the application
8. Focus the checkbox with the tab key
9. Press space to check the checkbox

The button is not enabled until you move the mouse 
or press a key (other than space).

Area: vcl\standard controls\tactionlist

Reference Number: 752 (Published: 12/15/98)
Status: Deferred to Next Rel
Date Reported: 6/15/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Cannot override Action's caption with a blank string 
on associated controls.

Steps:

Drop a TActionList add a standard action.
Drop a button.
Associate it with the action.
Clear the caption property on the button.
Toggle view as text/form.
Note the blank caption is now lost.

Area: vcl\standard controls\tactionlist

Reference Number: 897 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/7/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Seems like Action names are created by stripping 
out all invalid characters (like accented characters) 
and using them as component names.

This causes problems with translated versions. 
Taking out all the accented characters of german 
strings make the whole word incomprehensible.

We need a better way to create the 
component/action name.

Steps:

- use german delphi4
- drop an ActionList component on a form
- doubleclick it
- right click in the editor and select New Standard 
Action
- select all the actions and press ok
- see names under Actions
-- > Note that a lot of the german names don't 
make any sence, like Lschen1, Nchster1, 
Schlieen1,....

Area: vcl\standard controls\tactionlist

Reference Number: 387 (Published: 12/2/98)
Status: Deferred to Next Rel
Date Reported: 3/18/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

Duplicate pickletter in the ActionList editor.   'T' is 
used in Cut and Toolbar.

Steps:

- Drop in an ActionList onto a form

- Double click to open the Action List

- Right click on the actions and note the pickletters 
in the popup menu

Area: vcl\standard controls\tactionlist

Reference Number: 634 (Published: 11/19/98)
Status: Deferred to Next Rel
Date Reported: 6/4/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

Changing a TToolButton's Action from one to 
another doesn't correctly repaint its bitmap.

Steps:

Set up two toolbuttons and two corresponding 
tactions.

Turn on toolbar.showcaptions and flat.  Turn off 
toolbar.edgeborders and edgeinner,edgeouter.

Set the images property of the toolbuttons' toolbar 
to reference a TImageList and the the imageindex 
of the two tactions to reference bitmaps in it.

Both buttons should now display bitmaps.

Now, change toolbutton1's action property to 
toolbutton2's action (action2).  Action2's bitmap is 
erroneously displayed _on top_of the old Action1 
bitmap.

Area: vcl\standard controls\tactionlist

Reference Number: 1212 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/22/98
Severity: Serious
Type: Unknown

Problem:

TBasicAction.Execute is dynamic, but it should be 
virtual.

Steps:

There is no reason for TBasicAction to have any 
dynamic methods. It has too few derived classes for 
dynamic to be of any use. Also, TContainedAction 
and TCustomAction override Execute, thereby 
eliminating any theoretical benefit dynamic could 
provide.

Area: vcl\standard controls\tactionlist

Reference Number: 320 (Published: 11/12/98)
Status: Deferred to Next Rel
Date Reported: 2/17/98
Severity: Commonly Encountered
Type: Unknown

Problem:

When a menu item or a button references a 
command list item it does not use the imagelist 
specified in the command list properties but rather 
the one for the toolbar or menu that contains the 
button or menu item.  What if there are multiple 
command lists referencing different image lists?

Area: vcl\standard controls\tactionlist

Reference Number: 427 (Published: 12/8/98)
Status: Deferred to Next Rel
Date Reported: 4/9/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

Since the default action for the standard dataset 
actions are based on which control has focus, it is 
not possible to use something like a button to fire 
the event if you use more than one dataset.

For example, if you have two dbgrids and want to 
use buttons for Next and Prior, only the first dataset 
will receive the actions.

Steps:

- Drop in two TTables, TDataSources and 
TDBGrids - hook up as appropriate

- Drop in a TActionList and add two standard 
actions, DataSetNext and DataSetPrior

- Drop in two TButtons and attach the next and 
prior actions

- Run the form and click on the next and prior 
buttons, click on the second grid and try the next 
and prior again.  

Note: the first grid will get the Next and Prior 
actions.

The workaround for this is to use components that 
do not get focus, such as TSpeedButton 

Area: vcl\standard controls\tactionlist

Reference Number: 1479 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/1/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

IDE Bug in ActionList component editor.
If the ImageList connected to the ActionList is not 
standard size (16x16) an error occurs when you try 
to add standard actions.

Steps:

Create a new form.
Add an ImageList. Set its size to 32x32.
Add an ActionList.
Connect the ImageList to the ActionList.
Now edit the ActionList and add some standard 
actions that have bitmaps.


Area: vcl\standard controls\tcheckbox

Reference Number: 544 (Published: 11/12/98)
Status: Deferred to Next Rel
Date Reported: 5/22/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

The Color of the CheckBox control cannot be set to 
clWindow. This value is not saved (not persistent) 
although the system will set the ParentColor to 
False!

Area: vcl\standard controls\tcombobox

Reference Number: 1489 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 10/2/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The TCustomComboBox.OnChange does not work 
as described. The on-line help says "Occurs when 
the text displayed in the edit region changes." 
However, it actually only occurs when the _user_ 
changes the text. If the _program_ changes the 
text, it does not occur. I suggest that the online help 
be changed to more clearly reflect the actual 
behavior.

Steps:

Create a new application with a combobox and 
button. Create
OnClick and OnChange event handlers as shown in 
the code 
sample. Run the program and click the button. The 
text in
the combobox will change by the OnChange event 
of the combo 
box will not be triggered.

sample code:

procedure TForm1.ComboBox1Change(Sender: 
TObject);
begin
  ShowMessage('The text changed');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Combobox1.Text := 'New Text';
end;

Area: vcl\standard controls\tcombobox

Reference Number: 207 (Published: 7/22/98)
Status: Fixed in Version 4.0
Date Reported: 10/29/96
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

TCombobox.Focused always returns false, since it's 
the edit control "inside" the combobox which is 
focused.  TCustomCombobox needs to override 
TWinControl.SetFocus since it is not a single 
control.

Steps:

Drop a 2 buttons and a combobox on a form.
In Button1's onclick add:

Button2.SetFocus;
if Button2.Focused then 
  Button2.Caption := 'Focused';
Combobox1.SetFocus;
if Combobox1.Focused then 
  Combobox1.Text := 'Focused';

Run, poke Button1.

Area: vcl\standard controls\tcombobox

Reference Number: 595 (Published: 11/19/98)
Status: Deferred to Next Rel
Date Reported: 5/28/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

TCombobox does not respond correctly to changes 
in "ItemHeight" at design time.

When Style is set to csOwnerDrawFixed or 
csOwnerDrawVariable, changes to ItemHeight do 
not cause the control to be redrawn. If you force 
the control to be recreated (by toggling Ctl3d 
property) the height becomes what was specified.

Steps:

1. Drop a TCombobox control on a form.

2. Set the Style property to csOwnerDrawFixed

3. Set the ItemHeight property to 50. Note the 
control doesn't change height.

4. Toggle the Ctl3d property. Note the control's 
height has now grown correctly.

Area: vcl\standard controls\tcombobox

Reference Number: 835 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 6/23/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

A TComboBox on page one of a TPageControl 
assumes the color of controls
on page two when you toggle from page one to 
page two. 

Steps:

It can be reproduced by:
1. Placing a two page TPageControl on a form
2. Placing a TComboBox on page one with a few 
items (ie. 1,2,3,4,5)
3. Placing the following code in the onEnter event 
of the TComboBox:
    TComboBox(Sender).DroppedDown := True;
4. Placing the following code in the onShow event 
of the TForm:
    ComboBox1.SetFocus;
5. Placing a panel on page two and setting its 
alignment to client and
color to red.
6. Executing the program and toggling between 
page 1 and page 2.

Area: vcl\standard controls\tedit

Reference Number: 1240 (Published: 8/27/98)
Status: As Designed
Date Reported: 8/27/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

TEdit.Height doesn't get honored.

Steps:

1. File | New app
2. Drop a TEdit
3. Change the Height of the TEdit
4. Run
5. You'll see the default height, not the one you 
specified...

Area: vcl\standard controls\tlabel

Reference Number: 376 (Published: 11/30/98)
Status: Deferred to Next Rel
Date Reported: 3/12/98
Severity: Commonly Encountered
Type: Documentation Problem

Problem:

The color property of a label set to clWindow reset 
during streaming to clBtnface.

Steps:

Changing the color of a label to clWindow then cut 
it off the form and paste it back. The Color property 
is changed to clBtnFace.

Area: vcl\standard controls\tlistbox

Reference Number: 618 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 6/2/98
Severity: Serious
Type: Crash

Problem:

Setting Width of a TListbox to 2 when the Columns 
property > 0 causes Delphi to crash.

This situation can occur when using a list box (or 
descendant) that is resized with a splitter.  

Steps:

Start a new project.
Drop a TListbox on the form.
Change the Columns property to 2 for example.
Set the Width of the list box to 2.
Delphi Crashes.

Area: vcl\standard controls\tlistbox

Reference Number: 862 (Published: 8/4/98)
Status: Fixed in Version 4 Update Pack 1
Date Reported: 7/1/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Can't set ItemIndex to 0 unless the ItemIndex is 
already > 0.

Apparently the control is created with it's internal 
item index = 0, and also the LB_RESETCONTENT 
message sets it to zero.

Steps:

Drop a listbox on a form, add a few items to it.
drop a button on the form, in OnClick:
  Listbox1.ItemIndex := 0;
Run.
Click the button. Nothing happens.
click on the 2nd item in the listbox.
Click the button. 1st item is properly selected.

Area: vcl\standard controls\tlistbox

Reference Number: 953 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/14/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

String matching capabilities of listbox failing to set 
the itemIndex properly

Steps:

1. Create a new app, drop a TListBox, TEdit on the 
form.
2. Add a few items to the Listbox(ie, "One", "Two", 
"Three")
3.  Assign code below the OnChange handler to the 
edit box.

ListBox1.ItemIndex :=   
ListBox1.Items.IndexOf(Edit1.Text);

When you type into the edit control it should select 
the appropriate item from the listbox when a match 
occurs.  This works perfectly with all previous 
versions of Delphi, but works sporadically with 
Delphi 4.  Delphi 3 even matches regardless of 
case where Delphi 4 will only match item two (the 
word "Two") as "two"...  Possible logic problem in 
source in stdctrls.pas, at line 3461:

function TCustomListBox.GetItemIndex: Integer;
begin
  if not MultiSelect then
    Result := SendMessage(Handle, 
LB_GETCARETINDEX, 0, 0) else
    Result := SendMessage(Handle, 
LB_GETCURSEL, 0, 0);
end;

procedure TCustomListBox.SetItemIndex(Value: 
Integer);
begin
  if GetItemIndex < > Value then
    if MultiSelect then
      SendMessage(Handle, LB_SETCARETINDEX, 
Value, 0) else
      SendMessage(Handle, LB_SETCURSEL, 
Value, 0);
end;

notice the  logic for choosing between 
LB_GETCARETINDEX/LB_GETCURSEL and 
LB_SETCARETINDEX/LB_SETCURSEL.  It's 
correct in SetItemIndex, but incorrect in 
GetItemIndex (it's reversed in the latter routine).

Area: vcl\standard controls\tmainmenu

Reference Number: 555 (Published: 11/13/98)
Status: Deferred to Next Rel
Date Reported: 5/23/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Menus in MDI Apps

With a MDI child window maximized changing a top 
level in any way causes the child window's caption 
icon and minimize, maximize and close buttons to 
disappear.

Area: vcl\standard controls\tmainmenu

Reference Number: 412 (Published: 12/3/98)
Status: Deferred to Next Rel
Date Reported: 3/31/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

Owner drawn sub-menu items which are disabled 
aren't drawing their children indicator marks (a little 
> arrow ) as disabled.

Steps:

- Run Delphi.
- File | Close All
- Select the Edit menu
- Flip Children menu item is not disabling.

Area: vcl\standard controls\tmainmenu

Reference Number: 879 (Published: 12/18/98)
Status: Deferred to Next Rel
Date Reported: 7/7/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

Typo in dialog 
String "Datei-Menü (für Textedit Beispeil)"

"Beispeil"
should be
"Beispiel"

Steps:

- drop a TMainMenu component on a form
- doubleclick it
- right click on the menu designer
- select 'Aus Vorlage einfügen'

Area: vcl\standard controls\tmainmenu

Reference Number: 1003 (Published: 12/18/98)
Status: Deferred to Next Rel
Date Reported: 7/21/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

The following problem seems to have existed since 
Delphi 1:

Keyboard shortcut references do not show in 
menus unless they are in the first column.

Steps:

 1) Add a mainmenu to a new project
 2) Add the 'File' menu template to it
 3) Add a keyboard short cut of Ctrl-P to the Print 
item
 4) Run the app & click on the menu - it shows 
Ctrl-P
 5) Now set the Print menuitems Break property to 
mbBreak
 6) Run again - no shortcut reference shown

Area: vcl\standard controls\tmainmenu

Reference Number: 1494 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 10/3/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

There is a bad bug in TMainMenu. If the 
OwnerDraw property of the TMainMenu is set to 
TRUE the main menues are drawn incorrect, if you 
haven't a 8 point font selected in the Win95 
Displayproerties as Menufont.

FYI, This is tested on a Win98 system. 

Steps:

1. Open the Win95 Display Property Dialog and set 
your Menufont to any other font than MS SansSerif 
8 point (as sample  Verdana 10 point)
2. Palce a TMainMenu coponent to a form
3. Add some menues to it. (File, Edit, View... and 
some Subitems to every mainmenu)
4. Set OwnerDraw of the TMainMenu to True.
5. Eventually can you see the false pating now, 
else you must run the program. 

Now the mainmenues are drawn to small and  they 
are overlapped. and they look false. (no 3D border 
as in Win98 on selected mainmenues)

Area: vcl\standard controls\tmainmenu

Reference Number: 881 (Published: 8/11/98)
Status: Deferred to Next Rel
Date Reported: 7/7/98
Severity: Infrequently Encountered
Type: Crash

Problem:

Access violation in menu designer when doing what 
is mentioned in steps.

I get all kind of error messages, sometimes AV in 
vcl40.bpl or coride.bpl, sometimes Illegal Pointer 
operation, when inserting templates in the menu 
designer. It's hard to reproduce them.

The steps should describe a save way to reproduce 
the bug

Steps:

1 drop a MainMenu component on a form
2 doubleclick it
3 right click on the first field, select Insert
4 set the focus to the first item that gets created 
(looks like a button)
5 right click and select 'Insert from Template'
6 select any Template
-- > a submenu gets created
7 now set the focus to the very top and left menu 
item
8 press delete
-- > everything gets deleted, designer looks like 
when it was started up
10 repeat step 3 to 6 
-- > error message


Area: vcl\standard controls\tmainmenu

Reference Number: 1126 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/15/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

Cannot set groupindex if multiple menu items 
selected.

I discovered this when trying to recover from bug 
from my previous report.

The check should exclude selected items when 
comparing the new groupindex with items following.

Area: vcl\standard controls\tmemo

Reference Number: 1488 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 10/2/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

The Anchors property of VCL controls (specifically 
TMemo) does not work properly when the 
WindowState property of the form, upon startup, is 
set to wsMaximized.  The akRight and akBottom 
elements if the Anchors property seem to be 
ignored.  This only seems to happen if the form is 
Created/Shown with WindowState set to 
wsMaximized.  If you start with wsNormal, then 
change to wsMaximized in the OnShow event, the 
problem is avoided.

Steps:

Create a new application.  Drop a TMemo on the 
form.  Set the Anchors property of the TMemo so 
that akLeft, akTop, akRight, and akBottom are all 
true.  Set the WindowState property of the form to 
wsMaximized.  Run the program.  Notice that the 
TMemo does not expand in size as the form does.
To see the work-around... Set the WindowState of 
the form back to wsNormal.  Add an OnShow event 
handler which sets WindowState to wsMaximized.  
Run the program.  Notice that the TMemo DOES 
expand in size as the form does.

Area: vcl\standard controls\tpanel

Reference Number: 672 (Published: 12/15/98)
Status: Deferred to Next Rel
Date Reported: 6/9/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Setting Panel to alBottom can set Height=0

Steps:

 1) New application
 2) Drop two panels on the form
 3) Select both panels and set alBottom
 4) Select Panel1 in Object Inspector and you will 
see Height=0

Area: vcl\standard controls\tradiogroup

Reference Number: 1436 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 9/26/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

(Update 2)

A group of MenuItems with RadioItem=True do not 
act like radio buttons at design time - you can set 
more than one of the as checked

Steps:

 1) Add several menuitems to a menu
 2) Select the new items and set GroupIndex:=1 
and RadioItem:=True
 3) Set the checked property of one of the items
 4) Set checked for a second item and the first item 
still shows the bullet

Area: vcl\standard controls\tscrollbar

Reference Number: 479 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 5/8/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

On Windows95, PageSize property doesn't work 
correctly. On Windows NT 4, no problem.

Note:
  ScrollInfo.cbSize is not set in 
TScrollBar.SetPageSize.  I believe that this is the 
reason.

Steps:

On Windows95
1. Open attached project
2. Run project
3. Push buttons
4. Thumb size doesn't change

Area: vcl\standard controls\tscrollbar

Reference Number: 1201 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/24/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

TScrollBar doesn't seem to stream the PageSize 
property out correctly. When you set 
TScrollBar.PageSize at design time and then run 
the app the PageSize is windows default again.

Steps:

1. File | New Application.
2. Place a TScrollBar on the form.
3. Using Object Inspector set PageSize = 50.
4. Run the application.
5. The size of the thumb tab on the scroll bar isn't 
50

Area: vcl\standard controls\tscrollbar

Reference Number: 650 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 6/7/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

The VertScrollBar and HorzScrollBar.ButtonSize 
can't be reset to it WIn95 default after it value has 
changed. If we set it back to 0 it should set to the 
default size. 

Steps:

1. Place some compnents on a TForm
2. Resize the form so it is smaller the the 
components. Scrollbars are now displayed.
3. Set HorzScrollBar.ButtonSize to 50
4. Set HorzScrollBAr.ButtonSize back to 0

The default value isn't set.

Area: vcl\standard controls\tscrollbar

Reference Number: 1398 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/23/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

TControlScrollBar.Size has the same problem 
resetting to default that ButtonSize. 

Area: vcl\standard controls\tscrollbar

Reference Number: 1578 (Published: 12/21/98)
Status: Deferred to Next Rel
Date Reported: 10/16/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

Validation check for TScrollBar.PageSize property 
is incorrect.

Area: vcl\standard controls\tscrollbar

Reference Number: 1213 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/24/98
Severity: Commonly Encountered
Type: Unknown

Problem:

In the following code, the OnMouseUp event does 
not work with the left mouse button

TNewScrollBar = class(TScrollBar)
  private
  published
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
  end;

Steps:

if you create this new component and use F8 to 
step through
each line of code, the OnMouseUp event occurs.  
If you run
the program in the debugger, it never occurs.  I am 
using
the client/server version of Delphi and have 
installed both
Delphi service packs.  I have also tried to intercept 
the
WM_LBUTTONUP windows message but this to 
does not work and
verified that the ControlStyle does not contain
csNoStdEvents.  I have reviewed the source code 
which came
with Delphi and it appears that other controls with 
the
OnMouseUp event declared like this work fine.

Area: vcl\standard controls\tscrollbar

Reference Number: 1543 (Published: 12/21/98)
Status: Deferred to Next Rel
Date Reported: 10/12/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

Tscrollbar has no Mousewheel support

Area: vcl\system controls\tmediaplayer

Reference Number: 413 (Published: 12/3/98)
Status: Deferred to Next Rel
Date Reported: 3/31/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

TMediaplayer stop button does not actually reset 
the current frame to 0

Steps:

1. Drop a TMediaplayer, TPanel on your form

2. Set the filename to the cool.avi in the 
\demos\coolstuf\ directory

3. Set the auto-open property to true, set the display 
property to panel1.

4.  Run the app, hit the play button...hit the stop 
button, hit the play button again.

Notice the stop button behaves the same way as 
the pause button.  

Area: vcl\system controls\tpaintbox

Reference Number: 925 (Published: 12/18/98)
Status: Deferred to Next Rel
Date Reported: 7/9/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The form designer allows you to rename a 
component to a name that conflicts with one of the 
private components used by TOpenPictureDialog

Steps:

1. Create a new application.  
2. Add a TOpenPictureDialog to the form.  
3. Add a TPaintBox to the form, then rename it to 
"PaintBox".  
4. Save and close the form. 

 When you try to reopen it, you get an error saying 
the form already has a component named 
"PaintBox".  (Alternatively, you may get a "Stream 
Read Error").

Area: vcl\type info

Reference Number: 1218 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/25/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

TypeKind(Cardinal) has an OrdType of otSLong
I can see why you want to use tkInteger instead of 
tkInt64 when an integer type fits into 32 bits, but 
you need to add an otULong ordinal type if you 
want to do that. Otherwise, the type data looks 
bizarre, with an ordinal of otSLong and a MinValue 
> MaxValue.

Area: vcl\win 3.1 controls\theader

Reference Number: 275 (Published: 10/15/98)
Status: Deferred to Next Rel
Date Reported: 1/2/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

THeader component don't show pop-up menu by 
right-mouse-click.

Steps:

1. Create a new application.
2. Select THeader component on Win3.1 tab, and 
paste it on form.
3. Click right mouse button on Header component, 
but Popup-menu don't show.

Area: vcl\win 3.1 controls\tnotebook

Reference Number: 1549 (Published: 10/16/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/13/98
Severity: Serious
Type: Issue

Problem:

A new global procedure named 
NotebookHandlesNeeded has been added to 
ExtCtrls to allow controls which use the Anchors 
property to resize correctly when contained by a 
non-visible TPage within a TNotebook.  Call 
NotebookHandlesNeeded within your form's 
OnCreate passing the notebook object as a 
parameter.

For example, given a notebook named Notebook1 
on a form named Form1 we could ensure correct 
resizing of any controls on hidden pages which use 
Anchors by writing the following code:

procedure TForm1.FormCreate(Sender: TObject);
begin
  NotebookHandlesNeeded(Notebook1);
end;

Area: vcl\win 3.1 controls\ttabbednotebook

Reference Number: 268 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 12/4/97
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

Paging in a TTabbedNotebook with 3 or more 
pages using the arrow keys instead of the mouse 
pages 2 pages in either direction instead of 1.

Steps:

Drop a TTabbedNotebook on a form, add 4 pages, 
run and page through in run time using the arrow 
keys.

Area: vcl\win 32 controls

Reference Number: 77 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 3/13/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

Deleting a TCoolBand in the TCoolBar Bands Editor 
appears to delete the child control, but does not.

Steps:

1) Place a TCoolBar on a form.
2) Put One or more TToolBars from the component 
pallete on it.
3) Open up the Bands Editor by going to the Object 
Inspector, selecting the CoolBar | Bands | ...
4) Select one of the TCoolBands and delete it.
5) Go to the Object Inspector drop down list and the 
ToolBar will still be listed. The Tool Bar will look as 
though it has been deleted untill you select it from 
the Object Inspector. You may alternatively view 
the form as text and see it there.

Area: vcl\win 32 controls\tcoolbar

Reference Number: 1034 (Published: 10/27/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/27/98
Severity: Critical
Type: Crash

Problem:

Deleting a TCoolBar instance while the Bands 
Editor window is open, and after a control has been 
placed on a band, will cause an access violation 
and or Abstract Error...

comctl32.dll  version is : 4.72.2106.4

Steps:

- start delphi 4
- add CoolBar to form
- right click coolbar, open bands editor
- add a new band using bands editor
- don't close bands editor
- drop a TEdit onto the cool bar, any band
- bands editor must still be open
- select coolbar & press delete

Area: vcl\win 32 controls\tcoolbar

Reference Number: 1263 (Published: 10/24/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/2/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Setting the Visible property of the first coolband in a 
CoolBar does nothing, It is always visible.

Area: vcl\win 32 controls\tcoolbar

Reference Number: 299 (Published: 11/11/98)
Status: Deferred to Next Rel
Date Reported: 2/5/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

Setting the FixedSize property of  a TCoolbar 
causes the selected band to reposition itself.

Steps:

1. Drop a TCoolbar on a form
2. Drop two TToolbars on the coolbar
3. Right click on the coolbar and bring up the band 
editor
4. Select the second band
5. Set the FixedSize property to false

The band moves up to the same line where with the 
first band is located.

Area: vcl\win 32 controls\tdatetimepicker

Reference Number: 657 (Published: 11/19/98)
Status: Deferred to Next Rel
Date Reported: 6/8/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Setting Font.Color for TDateTimePicker fails to 
change font color of control

Steps:

1.  Drop TDateTimePicker on form
2.  Set the font.color via the object inspector to 
clBlue.
(no change, same results setting this at 
runtime/design time)

Area: vcl\win 32 controls\tdatetimepicker

Reference Number: 937 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/13/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

TDateTimePicker fails retrieve currently selected 
date from OnChange event.

Steps:

1. Drop a TDateTimePicker on a form.
2. Put the below line of code in the OnChange 
event of the TDateTimePicker
- - -
Showmessage(DateToStr(DateTimePicker1.Date));
- - -
In Delphi3 the same line of code will give you the 
date that you changed the DateTimePicker to.  
Under Delphi 4 the date will be the previously 
selected date.

Area: vcl\win 32 controls\tdatetimepicker

Reference Number: 1185 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/21/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Date is incorrectly changed by the 
TDateTimePicker in D4.01 C/S.

Area: vcl\win 32 controls\timagelist

Reference Number: 253 (Published: 7/17/98)
Status: Fixed in Version 4.0
Date Reported: 8/14/97
Severity: Serious
Type: Crash

Problem:

Toggling Masked property of the TImageList will 
cause a "Bitmap image is not valid" error the next 
time the project is opened and saved.

Steps:

*  Drop a TImageList
*  Add the alarm.bmp from images/button
*  Save all
*  Toggle the Masked property
*  Save
*  Close all
*  Open the project
*  Toggle the Masked (for saving purpose)
*  Save
// note error

Area: vcl\win 32 controls\timagelist

Reference Number: 1111 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/13/98
Severity: Serious
Type: Crash

Problem:


When selecting more than one image in the image 
list component editor, if you move the mouse off the 
list you will get an AV in VCL40.bpl

Steps:

1. You put an TImageList on your form.
2. You double-click it.
3. You load say 10 images.
4. You select in the Image listbox at the bottom of 
the dialog MORE than one image.
5. You try to drag them outside the listbox (in order 
to make the list scroll to left or right; it's a new 
feature of delphi 4), and you get an AV in 
VCL40.bpl (address 40057884, Read of address 
$FFFFFFFF

Area: vcl\win 32 controls\timagelist

Reference Number: 452 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 4/25/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Cannot modify images via ImageList Editor after 
initial image loading, closing and re-opening.

Steps:

File | New Application
Drop a TImageList from the Win32 tab onto the 
form
Double click ImageList to open editor and add 
several images from the Borland 
Shared\Images\Buttons directory.
Close the ImageList Editor.
Reopen the ImageList editor. 
All choices are grayed out (Background color, 
Background fill, Stretch, etc.)

Area: vcl\win 32 controls\timagelist

Reference Number: 1544 (Published: 10/21/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/12/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

The image list is not correctly drawing disabled 
bitmaps on menus.  The bitmap used for rendering 
the disabled appearance should be cleared to white 
prior to painting.

Area: vcl\win 32 controls\timagelist

Reference Number: 830 (Published: 10/19/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 6/22/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

The TImagelist editor gets confused if you change 
the Transparent Color of a newly added bitmap to 
clNone -- it displays the bitmap (in the horizontal 
bitmap list) as blanks, though the bitmap displays 
correctly elsewhere in the form designer and at 
runtime.

Steps:

[the bitmap with Transparent Color = clNone 
displays correctly once the ImageList editor is 
closed and reopened, however - MD]

Area: vcl\win 32 controls\tlistview

Reference Number: 1188 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/21/98
Severity: Serious
Type: Crash

Problem:

OnDrawItem Event handler is incorrectly defined. 
Resulting in compiler error. Online help shows 
different defination.

Area: vcl\win 32 controls\tlistview

Reference Number: 1547 (Published: 10/16/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/12/98
Severity: Serious
Type: Crash

Problem:

If you click on the TListView.OwnerData you get an 
AV in KERNEL.DLL

Steps:

1. Place a TListView on a Form and add some 
Items to it. (Items-Property)
2. Set the OwnerDraw Property to True
3. Click on the OwnerData property
- Observe the AV

Area: vcl\win 32 controls\tlistview

Reference Number: 652 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 6/8/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

NEW:
OnCustomDrawSubItem is being called for subitem 
0.  It should only be called for subitems whose 
Index is > 0.

OLD:
TListview's custom draw facilities don't work for 
subitems.

For this to work, the return flag 
CDRF_NOTIFYITEMDRAW needs to be returned 
from the CDDS_PREPAINT *and* 
CDDS_ITEMPREPAINT drawing stages. Only then 
will the control get CDDS_SUBITEMPREPAINT 
notifications.

Basically, this means that TCustomDrawTarget 
needs a dtSubItem added and TListView needs 
either an OnCustomDrawSubItem event or the 
OnCustomDrawItem needs an integer iSubItem 
parameter.


Area: vcl\win 32 controls\tlistview

Reference Number: 673 (Published: 12/15/98)
Status: Deferred to Next Rel
Date Reported: 6/9/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The default value of TListView.HotTrackStyles is 
streamed out thus causing backward incompatibility 
with D3 DFM files.

I know that you can click on a button to ignore it, 
but this does get tedious and shouldn't be 
necessary if you haven't touched the property in 
D4. 

Area: vcl\win 32 controls\tlistview

Reference Number: 1065 (Published: 10/27/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/1/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The TListView class clears the checked property of 
all items when an item is manually added and its 
Checked property is set to TRUE

Steps:

1.  Create a new applicatoin.
2.  Drop a TButton and a TListview on the form.
3.  Add a bunch of items to the Listview in the OI
4.  Set the Listview's Checked property to True
5.  Add this code to the OnClick of the button --

procedure TForm1.Button2Click(Sender: TObject);
var
  ListItem: TListItem;
begin
  ListItem := Listview1.Items.Add;
  ListItem.Caption := 'Added item';
  ListItem.Checked := True;
end;


6.  Run the application.   Select the checkboxes of 
any or all of the items.  Then press the button.

Notice that the checked properties of all of the 
items are cleared.

Area: vcl\win 32 controls\tlistview

Reference Number: 1417 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/24/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

With Full Drag enabled, our Columns collection 
does not get updated to reflect the new positions of 
the columns.

Area: vcl\win 32 controls\tlistview

Reference Number: 264 (Published: 7/17/98)
Status: Fixed in Version 4.0
Date Reported: 10/3/97
Severity: Commonly Encountered
Type: Crash

Problem:

Calling FindData with a negative StartIndex 
parameter causes an access violation. FindData 
does not check that the returned item is nil before 
checking it's Data property.

Steps:

Drop a ListView on a form add a couple of items.
Drop a button, in it's OnClick add:

ListView1.FindData(-1, nil, True, False);

Run and click the button.

Area: vcl\win 32 controls\tlistview

Reference Number: 483 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 5/9/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

ListView check boxes don't show up the first time 
you turn them on if you turn on checkboxes before 
adding items.

Note: checkboxes are erased anew each time the 
items list is edited, even if you've toggled the 
Checkboxes property to force them to appear.

Area: vcl\win 32 controls\tlistview

Reference Number: 696 (Published: 12/15/98)
Status: Deferred to Next Rel
Date Reported: 6/10/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

When adding TListItems dynamically to a 
TListView, setting their Checked property isn't 
accepted for any item, except the last.

Steps:

1. Drop ListView1 on new form with Checkboxes = 
True.
2. Write the following code in the form's 
FormCreate:

with ListView1.Items.Add do
begin
  Caption := 'one';
  Checked := True;
end;

with ListView1.Items.Add do
begin
  Caption := 'two';
  Checked := True;
end;

3. Only the 'two' item has a checkmark.

Workaround:

 add the items, then set their Checked states in a 
2nd pass.

Area: vcl\win 32 controls\tlistview

Reference Number: 894 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 7/6/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

The Checked property of TListItem doesn't work 
properly when adding list items. If a set of items is 
added and the Checked property is set to true, only 
the last item ends up checked.

Steps:

1. Create a new project using the following unit:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, 
Controls, Forms, Dialogs,
  ComCtrls;

type
  TForm1 = class(TForm)
    ListView1: TListView;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var i : integer ;
begin
  for i := 1 to 4 do with ListView1.Items.Add do begin
    Caption := Format( 'Item %d', [ i ] ) ;
    Checked := true ;
  end ;
end;

end.

---Unit1.dfm---
object Form1: TForm1
  Left = 192
  Top = 107
  Width = 696
  Height = 480
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = True
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object ListView1: TListView
    Left = 96
    Top = 48
    Width = 385
    Height = 289
    Checkboxes = True
    Columns = < 
      item
        Width = 150
      end > 
    HotTrackStyles = []
    TabOrder = 0
    ViewStyle = vsReport
  end
end
---------

2. Run the app - only the last list item is checked, 
even though the Checked property of each is set to 
true. Works fine in D3.

Area: vcl\win 32 controls\tlistview

Reference Number: 1562 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/13/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

The TListView.Columns.ImageIndex does not work.  
I set it to an Image in the ImageList but it is not 
displayed in the title of the ListView. 


Area: vcl\win 32 controls\tlistview

Reference Number: 1413 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 9/23/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

Changing a ListView's Column's width when the 
ViewStyle isn't vsReport screws up the painting of 
the control.

[Happens in D3, too, so feel free to defer....]

Steps:

Drop a TListView on a form, add a few items to it.
Make sure ViewStyle isn't vsReport.
Add a couple of columns.
Change the width of the first column.

Area: vcl\win 32 controls\tmonthcalendar

Reference Number: 1226 (Published: 10/23/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/25/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Date property of TMonthCalendar fails to update

Steps:

1.  Drop a Tbutton, Tedit, and TMonthCalendar on 
a form.
2.  Assign the following code to the button click 
event:    
  Edit1.Text := DateToStr(MonthCalendar1.Date);
3.  Change the date by manually clicking on the 
calendar, pressing the button and noting that the 
date is being updated.
4.  Now change the year or month and then press 
the button.  Note the date displayed is the previous 
date not the currently selected date.

Area: vcl\win 32 controls\tmonthcalendar

Reference Number: 1230 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/26/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

The OnGetMonthInfo event of TMonthCalendar 
does not pass the year to which the month belongs

Area: vcl\win 32 controls\tpagecontrol

Reference Number: 841 (Published: 8/4/98)
Status: Fixed in Version 4 Update Pack 1
Date Reported: 6/25/98
Severity: Serious
Type: Crash

Problem:

TPageControl Access Violates upon sequentional 
deletion of tabsheets and then the page control.

Steps:

1.  File | New Application.
2.  Drop a TPageControl on the Form and create a 
TabSheet.
3.  Delete the TabSheet.

(The PageControls ActivePage property will say 
Access Violation at this point)

4.  Delete the TPageControl.  It often raises an 
EAccess Violation).

Area: vcl\win 32 controls\tpagecontrol

Reference Number: 779 (Published: 10/19/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 6/16/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Abstract Error with PageControl component

This eventually may lead to AV's in the IDE. - tlb

[I get an AV in VCL40.BPL, and get another AV 
when trying to delete the PageControl - MD] 

Steps:

1. New Application
2. Drop in a Page Control
3. Right mouse click and add Tabsheet
4. File/Save All
5. Delete the Tab sheet
6. Right mouse click to add the tabsheet again
Should get an abstract error.

Area: vcl\win 32 controls\tpagecontrol

Reference Number: 848 (Published: 10/21/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 6/26/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Shortcut keys on TSpeedButtons do not work 
properly on different pages of a TPageControl.

Area: vcl\win 32 controls\tpagecontrol

Reference Number: 1119 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/16/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Controls dropped on a TTabSheet (TabSheet2) are 
not being shown at run time when TabSheet 1 is 
the default.

Area: vcl\win 32 controls\tpagecontrol

Reference Number: 775 (Published: 12/7/98)
Status: Deferred to Next Rel
Date Reported: 6/16/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

Deleting all of the TTabSheets from a TPageControl 
doesn't set the ActivePage property to nil.

Area: vcl\win 32 controls\tpagecontrol

Reference Number: 288 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 1/26/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

If a form has more than one Tpagecontrol on it 
there is the following problem: If a control on the 
second page control has focus and the user hits 
Ctrl-Tab or Ctrl-Shift-Tab the first page control on 
the form (in tab order) will switch tabs, not the one 
with the active control.

Steps:

Delphi 3.02, running on NT (but platform does not 
matter):

If a form has more than one Tpagecontrol on it 
there is the following 
problem: If a control on the second page control 
has focus and the user 
hits Ctrl-Tab or Ctrl-Shift-Tab the first page control 
on the form (in tab 
order) will switch tabs, not the one with the active 
control. I tracked 
this down to 

procedure TPageControl.CMDialogKey(var 
Message: TCMDialogKey);
begin
  if (Message.CharCode = VK_TAB) and 
(GetKeyState(VK_CONTROL) < 0) then
  begin
    SelectNextPage(GetKeyState(VK_SHIFT) > = 
0);
    Message.Result := 1;
  end else
    inherited;
end;

Note that the code does not check if the active 
control is in fact on this 
page control. Since the CM_DIALOGKEY message 
is broadcast from the form 
level via TWinControl.CMDialogKey (since 
TCustomForm.CMDialogKey calls 
inherited when it sees Ctrl down on a VK_TAB) the 
first page control on the 
form will always see it first and handle it. 

Workaround:

The workaround is to add a CM_DIALOGKEY 
handler to the form:

Procedure TForm1.CMDialogKey( Var msg: 
TCMDialogKey );
Var
  Control: TWinControl;
Begin
  With Msg Do Begin
    If (charcode = VK_TAB) and 
(GetKeyState(VK_CONTROL) < 0) Then Begin
      Control:= ActiveControl.Parent;
      While Assigned(Control) Do
        If Control Is TPageControl Then Begin
          Control.Perform( CM_DIALOGKEY, 
charcode, keydata );
          Exit;
        End
        Else
          Control := Control.Parent;
    End;
  End;
  inherited;
End;

Area: vcl\win 32 controls\tpagecontrol

Reference Number: 356 (Published: 11/16/98)
Status: Deferred to Next Rel
Date Reported: 3/2/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Setting ScrollOpposite to true on a TPageControl 
causes the Style property to be ignored; tsTabs is 
used automatically.

Either this observe the Style property or it should 
change the Style property back to tsTabs and be 
documented in the help.

Steps:

Add a PageControl to a form.
Add a few pages.
Set the Style property to tsButtons.
Toggle the ScrollOpposite property and notice that 
the Style switches back and forth from tsButtons to 
tsTabs.

Area: vcl\win 32 controls\tpagecontrol

Reference Number: 1117 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/14/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Pagecontrol's tabsheet fails to resize properly

Steps:

1. Drop TPageControl on a blank form and set its 
anchors to all true so its proportions shadow the 
form . 
2..  Add 2 tabsheets to the pagecontrol and on 
each tab sheet put a TPanel and set all of its 
anchors to true. (note the size of the panels for 
verification later)
3.  Run the application, when you resize the form 
the pagecontrol should resize appropriately.  This 
will happen for the currently selected (showing) tab, 
but the tab that is not shown will not resize at all 
even though it's anchors specify that it should.

Area: vcl\win 32 controls\tpagecontrol

Reference Number: 1306 (Published: 10/24/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/11/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

TPageControl component:  When a user clicks on 
a TTabSheet Delphi executes the  
PageControl.OnChanging event then the
TPageControl.OnChange event.  If the 
TTabSheet.Caption contains an '&' to HotKey to the 
TTabSheet, when the HotKey  is used Delphi does 
not execute the TPageControl.OnChanging event, 
*only* the TPageControl.OnChange event.


Area: vcl\win 32 controls\tpagecontrol

Reference Number: 1437 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 9/26/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

FT for UP2:
A Control inside a TPanel Dockside does not 
correct paint, if the Control has Align = alClient on 
startup of the Application. You must bring the 
control to floating and back do docking state to 
display the Dragpanel above the control.

Steps:

[An additional bug is that TMemo NEVER appears 
to be docked when it is created parented by a 
docksite - subsitute a TRichEdit for TMemo in the 
steps - MD]

1. Create a new Appl.
2. On the Mainform add a TPanel and set Aling = 
alLeft and DockSite = True.
3. Add a TMemo inside the TPanel, set its Align 
property to alClient, set DragKind = dkDock and 
DragMode = dmAutomatic.
4. Compile the Application and run it.

Now is the dragpanel (the two lines with the close 
squeare in docked windows) not displayed. It looks 
simply as a normal Memo with align to Client. 

5. Birng the TMemo in floating stile by move it from 
the Mainform.
6. Dock the TPanel back to the TPanel docksite

Now you see the Dragpanel as it should be on 
startup of the Application.  

Area: vcl\win 32 controls\trichedit

Reference Number: 1528 (Published: 10/21/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/8/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

Rich Edit control's PageRect doesn't function as 
documented.

This is a Documentation error.  
TRichEdit.PageRect is in device pixels, not twips.

Steps:

Create a Rich Edit control
Add text to the control
Set the PageRect to (0,0,100,100) which according 
to the documentation should be 5 by 5 inches.
Print the Rich Edit (with the Print method)
The resulting output seems to be clipped by a very 
tiny window, thus causing hundreds of pages of 
output.

Area: vcl\win 32 controls\trichedit

Reference Number: 520 (Published: 11/12/98)
Status: Deferred to Next Rel
Date Reported: 5/17/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

TRichEdit tab support is slightly broken. If you want 
three custom tab stops, you have to put a dummy 
fourth tab stop in to ensure your third one is taken

The code in ComCtrls.TParaAttributes.SetTab is 
erroneous as the tabs in a rich edit are numbered 
from 0. If you have three tabs, they will be 
numbered 0, 1 and 2. The TabCount property 
should, at this point, return 3.

The logic in this particular method will set TabCount 
to 2 when you set the third tab (indexed at 2) due to 
this code:

if cTabCount < Index then cTabCount := Index;

which should read

if cTabCount < = Index then cTabCount := 
Succ(Index);

Steps:

Make a simplae app that tries to set 
RichEdit1.Paragraph.Tab[0], 
RichEdit1.Paragraph.Tab[1] and 
RichEdit1.Paragraph.Tab[2] and then read the 
TabCount property. It will be 2.

Also, if you try and put three tabs into the current 
paragraph in the control, only the values for the first 
two that you set will be taken

Area: vcl\win 32 controls\trichedit

Reference Number: 82 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 5/20/98
Severity: Extremely Rare Case
Type: Minor Functionality Failure

Problem:

In ComCtrls.pas, the procedure 
TCustomRichEdit.Print has at least two bugs:

First, on lines 7603 and 7612, the statement, 
SendMessage(Handle, EM_FORMATRANGE, 0, 
0); is incorrect in that it is sending the wrong handle 
to the SendMessage function. Both statements are 
actually sending Printer.Handle instead of the 
RichEdit control's handle, Self.Handle. The 
EM_FORMATRANGE message is for the RichEdit 
component. The wrong handle is sent because, as 
it says in Help, when "with" statements are used, 
name conflicts are resolved in favor of the 
arguments of the "with" statement. When I fixed 
this error, three problems went away: (1) peculiar 
rendering of fonts, when printer pixel densities were 
changed, (2) printer lockups, and (3) system 
crashing.

Second, in the same function, the RECT being 
formatted for, Range.rc, must always be reset 
before sending the EM_FORMATRANGE message, 
because the message handler alters it, apparently 
returning the rect actually needed for the text 
referred to by Range.chrg. It can only get smaller, 
and if several fonts are used, then as one page 
after another is printed, the bottom of the RECT 
gradually creeps up the page. I commiserate with 
you, as this point was omitted from the Windows 
API help.

Area: vcl\win 32 controls\tstatusbar

Reference Number: 1200 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/24/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

The AutoHint property of the TStatusBar does not 
properly display hints for popup menus and menus 
associated with toolbar buttons.  If the hint is just a 
simple one then there is no problem.  However, if a 
long hint is also available the hint is not properly 
parsed and both are displayed.  In other words, it 
will be displayed as " < small hint > | < long hint 
> "  Other controls seems to work fine.

Steps:

1.  Create a popup menu with the Caption "Print" 
and a hint of "Print|Print a document".
2.  Assign this menu to the PopupMenu property of 
the main form.
3.  Add a statusbar and set the AutoHint property to 
be true.
4.  Run the project, right click and activate that 
menu item, and then view the hint.

It should be "Print a document" only and it is not.

Area: vcl\win 32 controls\ttoolbar

Reference Number: 549 (Published: 11/12/98)
Status: Deferred to Next Rel
Date Reported: 5/22/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Toolbars don't resize ToolButtons properly when 
you scale the form.

Steps:

* Drop a TToolBar in a form
* Add 2 toolbuttons
* Right click, select Scale
* Enter 200, click OK
// Note the new size of the toolbuttons

Area: vcl\win 32 controls\ttoolbar

Reference Number: 550 (Published: 11/12/98)
Status: Deferred to Next Rel
Date Reported: 5/22/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Toolbars mix the position of separators and buttons 
when you scale the form.

Steps:

* Drop a TToolBar in a form
* Add a ToolButton and a Separator
* Add a ToolButton and a Separator
// the order should be button, separator, button, 
separator

* Right click, select Scale
* Enter 50, click OK
// Note that order now is button, button, separator, 
separator

* Right click, select Scale
* Enter 200, click OK
* Right click, select Scale
* Enter 50, click OK
// Note that order now is button, separator, 
separator, button

Area: vcl\win 32 controls\ttoolbar

Reference Number: 1196 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/23/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

It is not always possible to set the properties of 
dynamically created toolbuttons.

Area: vcl\win 32 controls\ttoolbar

Reference Number: 806 (Published: 10/19/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 6/17/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

TToolbar problems.

Steps:

1)  Create a new project & save...
2)  On the form add a TControlBar and set align := 
alLeft
3)  Add a TToolBar to the ControlBar w/  
ShowCaptions := TRUE and List := TRUE
4)  Add 2 buttons to the ToolBar and adjust size of 
toolbar just a little wider than the buttons and adjust 
the size of the control bar to just a little wider than 
the toolbar.

Note:  The buttons should appear vertical 
(ToolButton1 above ToolButton2).

5) Run...

BUG:  Notice that the buttons at runtime are not 
stacked, they are horizontal.

6) Be sure that Wrap on both ToolButtons is TRUE 
and that the ToolBar Wrapable property is TRUE.  
(running still has same effect).

7) Set the ToolBar.AutoSize to TRUE.  & Run

Notice that the buttons are now vertical.

BUG:  at design time ToolButton1 is above 
ToolButton2, but at run time ToolButton2 is above 
ToolButton1.

Area: vcl\win 32 controls\ttoolbar

Reference Number: 1568 (Published: 12/21/98)
Status: Deferred to Next Rel
Date Reported: 10/14/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

Captions of buttons on TToolBar don't get the 
ToolBar's font color


Area: vcl\win 32 controls\ttrackbar

Reference Number: 405 (Published: 10/15/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 3/27/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

The TTrackBar.OnChange doesn't fire if you set the 
TTrackBar.Position in run-time.

Steps:

1. File | New Application
2. Drop a TTrackBar and a TButton down
3. Cut and paste this code:

procedure TForm1.TrackBar1Change(Sender: 
TObject);
begin
  Caption := IntToStr(TrackBar1.Position);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  TrackBar1.Position := TrackBar1.Position+1;
end;

4. Run and hit the Button.
5. You won't see the OnChange fire.

Area: vcl\win 32 controls\ttrackbar

Reference Number: 308 (Published: 11/12/98)
Status: Deferred to Next Rel
Date Reported: 2/13/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

TTrackBar does not repaint if the Windows system 
colors are changed

Steps:

1.  Drop a TTrackbar onto a form
2.  Change the windows color scheme via the 
control panels Display | Appearance.  
3.  Choose apply.

Notice the TTrackbar's color does not change to 
match the new color scheme.  Resizing the form or 
the control will fix the problem.  

Area: vcl\win 32 controls\ttreeview

Reference Number: 447 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 4/22/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Changes to Font.Size in OnCustomDrawItem don't 
stick, but those to Color and Name do.

Area: vcl\win 32 controls\ttreeview

Reference Number: 859 (Published: 10/21/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 6/30/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

The Move method of the TTreeNode class falis 
when you use the two available child styles. The 
call to the InternalMove (method (or a similar name) 
receives wrong parameters and bumps out with no 
moving at all!


Area: vcl\win 32 controls\ttreeview

Reference Number: 664 (Published: 11/19/98)
Status: Deferred to Next Rel
Date Reported: 6/9/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

TTreeView fails to draw properly when you add 
more than 2048 items (if it draws each one as it is 
added) only on Windows 95. The top item repeats 
and overlaps, and the lines are clipped.

Steps:


Add these objects to a form, and then make the 
event handlers as listed below. Run the app and 
push the button. On Windows 95 (at least) the tree 
view draws itself badly

Objects:

  object TreeView1: TTreeView
    Left = 8
    Top = 8
    Width = 393
    Height = 169
    Indent = 19
    Items.Data = {
      
010000001A0000000000000000000000FFFFFFFF
FFFFFFFF0000000001000000
      
01411A0000000000000000000000FFFFFFFFFFFF
FFFF00000000000000000142}
  end
  object Button1: TButton
    Left = 424
    Top = 32
    OnClick = Button1Click
  end

Event handlers:

procedure TForm1.FormCreate(Sender: TObject);
begin
  TreeView1.FullExpand
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Loop: Integer;
begin
  for Loop := 1 to 2060 do
  begin
    TreeView1.Items.AddChild(TreeView1.Items[0], 
Format('%d - The quick brown fox jumps over the 
lazy dog', [Loop]));
    Application.ProcessMessages;
  end
end;

Area: vcl\win 32 controls\ttreeview

Reference Number: 417 (Published: 12/7/98)
Status: Deferred to Next Rel
Date Reported: 4/2/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

[AutoExpand]

If the TreeView has been fully expanded via the 
FullExpand method, selecting a node does not 
collapse all the other nodes, just the previously 
selected one.

Steps:

Drop a TTreeView on a form.
Add items like this:

0
   1
2
   3
4
   5

Set AutoExpand to True.
Drop a button on the form and in it's OnClick event 
handler do:
  TreeView1.FullExpand.

Run the applet. Push the button. Select node 2.
Notice node 4 does not collapse as it should.

Area: vcl\win 32 controls\ttreeview

Reference Number: 1203 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/24/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

TTreeview.GetHitTestInfoAt does not return 
htOnItem when when the x, y coordinates are on a 
label, bitmap or status bitmap.

Area: vcl\win 32 controls\tupdown

Reference Number: 439 (Published: 12/15/98)
Status: Deferred to Next Rel
Date Reported: 4/16/98
Severity: Commonly Encountered
Type: Minor Functionality Failure

Problem:

The combination of Updown and edit components 
has a strange bug: updating the value is possible 
via the updown position or the edit text, but some 
combinations do not work.

Workaround: beware of the odd combinations, and 
use a single technique.

Steps:

1. NEw form with edit, updown (associated with 
edit) and button.

2. for the button onclick write:

edit1.text := '10';
updown1.position := 22;

3. run the program, press the button, and the output 
is 22

4. press the button again and the output is 10!

Area: vcl\win 32 controls\tupdown

Reference Number: 276 (Published: 11/11/98)
Status: Deferred to Next Rel
Date Reported: 1/7/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

A TUpDown associated with a TEdit does not 
remember design-time size or shape changes.

Note: setting the Height value explicitly in code 
works fine.

Second note: changing the size of the TUpDown 
prior to associating it with the TEdit will cause the 
TUpDown to resize to default at the time of 
association.

Third note: if the TUpDown is not associated, when 
you run the application, the design-time height is 
used. If you then associate it with the TEdit in code, 
the TUpDown resizes to the default size.

Steps:

Create a new form.
Drop a TEdit and a TUpDown on it.
Associate the TUpDown with the TEdit.

Enlarge the TUpDown.
Run.

Note that the TUpDown has resized itself
to its default size.

Area: vcl\win 32 controls\tupdown

Reference Number: 1606 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 11/13/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

The OnClick does not preceed the OnChanging. 
The docs state that it does.

Also, the OnClick doesn't always fire.

Steps:

1. Drop a TUpDown on a brand new form
2. Drop a TMemo.
3. For OnClick, just make it do a 
Memo1.Lines.Add('OnClick');
4. For OnChanging, do a 
Memo1.Lines.Add('OnChanging');

Run the app, and click the up down buttons a few 
times. You'll see that the events do not fire in the 
doc'd order, as well as the OnClick not always firing.

Area: vcl\win 32 controls\tupdown

Reference Number: 411 (Published: 12/3/98)
Status: Deferred to Next Rel
Date Reported: 3/30/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

Setting TUpDown  Min and Max to zero
displays the UpDown disabled.

Steps:

New Form
Drop a TEdit
Drop a TUpDown
Set UpDown1.Associate to Edit1
Set UpDown1. Min and Max both to zero.
Now press Alt F12 to go to Form-text mode, and Alt 
F12 
again to Form normal mode.

The UpDown is disabled.



NOTE: These listings are for informational use only. It is not intended for use when calling Borland's Developer Support Department.
If you have any suggestions or complaints about these 'Delphi Enhancements and Fixes' pages, please contact the Delphi Administrator. This e-mail address is not intended for support issues.
 
Site Map Search Contact