У меня есть компонент TDBGrid. Мне нужно поймать событие, вызванное, когда я изменяю размер столбца сетки.Где произошло событие изменения размера столбцов TDBGrid
2
A
ответ
3
единственное место, чтобы получить события, кажется, перекрывая ColWidthChanged ...
type
TDBgrid=Class(DBGrids.TDBGrid)
private
FColResize:TNotifyEvent;
procedure ColWidthsChanged; override;
protected
Property OnColResize:TNotifyEvent read FColResize Write FColResize;
End;
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
DBGrid1: TDBGrid;
ADODataSet1: TADODataSet;
DataSource1: TDataSource;
procedure FormCreate(Sender: TObject);
private
procedure ColResize(Sender: TObject);
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TDBgrid }
procedure TDBgrid.ColWidthsChanged;
begin
inherited;
if Assigned(FColResize) then FColResize(self);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DBgrid1.OnColResize := ColResize;
end;
procedure TForm1.ColResize(Sender:TObject);
begin
Caption := FormatDateTime('nn:zzz',now) ;
end;
3
вам нужно создать потомок TDBGrid и осуществлять мероприятия самостоятельно. Что-то вроде этого:
unit MyDBGrid;
interface
type
TMyDBGrid = class(TDBGrid)
private
FOnColResize: TNotifyEvent;
protected
procedure ColWidthsChanged; override;
public
published
property OnColResize: TNotifyEvent read FOnColResize write FOnColResize;
end;
implementation
{ TMyDBGrid }
procedure TMyDBGrid.ColWidthsChanged;
begin
inherited;
if (Datalink.Active or (Columns.State = csCustomized)) and
AcquireLayoutLock and Assigned(FOnColResize) then
FOnColResize(Self);
end;
end.
Это должно работать, у меня нет времени, чтобы проверить его.
+0
Спасибо +1. Вам не нужно отменять эффект AquireLayoutLock, так как он вызывает BeginLayout, которому нужен EndLayout? – DaveBoltman
Смежные вопросы
- 1. AuiNotebook, где произошло событие
- 2. Событие изменения размера бутстрапа
- 3. Обнаружение, где произошло событие смены событий
- 4. Событие изменения размера столбца TStringGrid?
- 5. Событие изменения размера DataGridViewRow?
- 6. событие изменения размера jQuery
- 7. Только событие изменения размера
- 8. Алгоритм изменения размера столбцов
- 9. Почему не произошло событие изменения флажка?
- 10. Detect ListViewItem где rightTapped событие произошло
- 11. WPF: событие изменения размера GridViewColumn
- 12. jqGrid - событие изменения размера столбца
- 13. PyQt4 окно изменения размера событие
- 14. TDBGrid где условие SQL WHERE?
- 15. Событие после изменения размера столбца TListView
- 16. jqGrid: Колонка изменения размера Триггеры нажмите событие
- 17. Событие изменения размера триггера с помощью dojo
- 18. Как использовать событие для изменения размера эллипса?
- 19. Событие изменения размера панели Autodesk Maya
- 20. touchUpInside событие не произошло
- 21. Onmouse событие не произошло
- 22. jQuery UI: Resizable: ухватить событие изменения размера
- 23. Как игнорировать событие изменения размера в Qt3?
- 24. Javascript симулирует событие изменения размера маленького окна
- 25. Событие изменения размера для окна X
- 26. Событие изменения размера Qt для доков
- 27. C# событие изменения размера браузера ASP.NET
- 28. Невозможно прослушать документ изменения размера событие
- 29. как захватить событие изменения размера в IE8
- 30. Событие изменения размера окна в AngularJS
Я не могу понять этот вопрос. Вы спрашиваете, как управление запускает событие? Если это так, это так же просто для вас, как для нас, чтобы посмотреть исходный код. –
теперь должно быть более понятно :) – RBA
@RBA - Это, безусловно, более ясно. Но действительно ли вопрос, который должен был спросить? –