2009. május 18., hétfő
Determine if ColCount has changed in a TStringGrid
Problem/Question/Abstract:
I'm writing a TStringGrid descendant in which I would like to know, if the ColCount is being changed, because I have some other objects hidden in the component, that should be updated, when the ColCount changes. How can I accomplish that?
Answer:
You can try the following:
unit MyStringGrid;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids;
type
TMyStringGrid = class(TStringGrid)
private
FColCount: Integer;
FOnColCountChanged: TNotifyEvent;
procedure SetColCount(Value: Integer);
protected
procedure ColCountChanged; virtual;
public
constructor Create(aOwner: TComponent); override;
published
property ColCount: Integer read FColCount write SetColCount default 5;
property OnColCountChanged: TNotifyEvent read FOnColCountChanged
write FOnColCountChanged;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Test', [TMyStringGrid]);
end;
constructor TMyStringGrid.Create(aOwner: TComponent);
begin
inherited Create(aOwner);
FColCount := 5;
end;
procedure TMyStringGrid.SetColCount(Value: Integer);
begin
if FColCount <> Value then
begin
FColCount := Value;
inherited ColCount := FColCount;
ColCountChanged;
end;
end;
procedure TMyStringGrid.ColCountChanged;
begin
{do dependend stuff here}
if Assigned(FOnColCountChanged) then
FOnColCountChanged(Self);
end;
end.
Feliratkozás:
Megjegyzések küldése (Atom)
Nincsenek megjegyzések:
Megjegyzés küldése