|
BorderWidth - Error en propiedad de componentes
Por Vladimir S. <shvetadvipa@mtu-net.ru>
Si desea usar la propiedad BorderWidth, tenga cuidado. Es muy
extraño, pero Borland cometió en error en casi todos los componentes que tienen
esta propiedad. Por ejemplo observe la figura (border.gif) y podrá ver
barras de progreso (ProgressBars) con varios valores
de BorderWidth. La altura de las barras en todos los casos es 16.
 |
| border.gif |
Si desea corregir este error vea este ejemplo para
la ProgressBar. Tiene que hacer cambios
en COMCTRLS.PAS como este:
interface
...
TProgressBar = class(TWinControl)
private
...
FBorderWidth: TBorderWidth;
...
procedure SetBorderWidth(Value: TBorderWidth);
...
published
...
property BorderWidth: TBorderWidth read FBorderWidth
write SetBorderWidth;
...
...
implementation
...
constructor TProgressBar.Create(AOwner: TComponent);
begin
...
FBorderWidth := inherited BorderWidth;
...
end;
procedure TProgressBar.SetBorderWidth(Value: TBorderWidth);
begin
if Value > (Height div 2)-3 then
raise Exception.CreateFmt('Error: BorderWidth debe ser menor que'
+ ' %d', [(Height div 2)-3]);
if Value <> inherited BorderWidth then begin
inherited BorderWidth := Value;
FBorderWidth := inherited BorderWidth;
end;
end;
...
Puede usar este parche en todos los componentes que tengan una
propiedad BorderWidth.
|