Ver Mensaje Individual
  #5  
Antiguo 03-07-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Reputación: 21
Gydba Va por buen camino
Buenas,

Me tomé el atrevimiento de hacer un ejemplito muy simple de algo similar a lo que pedís. Y en consideración de la admiración que les tengo a Uds para mí es todo un placer poder colaborar, aunque sea con una idea:
Código Delphi [-]
unit CustomDBGrid1;

interface

uses
  Windows, Messages, Dialogs, SysUtils, Classes, Controls, Grids, DBGrids;

type
   TEv_ColumnWidthChg = procedure (Sender: TObject; Columna: Longint) of object;

type TCustomDBGrid1 = class(TDBGrid)
private
   bColMoved      : Boolean;
   varColWidthChg : TEv_ColumnWidthChg;
   varCurrentCell : TGridCoord;
   procedure Proc_MovedEvent(Sender: TObject; FromIndex, ToIndex: Longint);
public
   procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
   constructor Create(AOwner : TComponent); override;
   procedure ColWidthsChanged; override;
published
   property OnColumnWidthChange : TEv_ColumnWidthChg read varColWidthChg write varColWidthChg;
end;

procedure Register;

implementation

procedure TCustomDBGrid1.Proc_MovedEvent(Sender: TObject; FromIndex, ToIndex: Longint);
begin
   bColMoved := True;
end;

procedure TCustomDBGrid1.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   inherited MouseDown(Button, Shift, X, Y);
   varCurrentCell := TCustomGrid(Self).MouseCoord(X - 5, Y);
end;

procedure TCustomDBGrid1.ColWidthsChanged;
begin
   inherited ColWidthsChanged;
      if not bColMoved then begin
         if Assigned(varColWidthChg) then varColWidthChg(Self, varCurrentCell.X);
      end;
   bColMoved := False;
end;

constructor TCustomDBGrid1.Create(AOwner : TComponent);
begin
   inherited Create(AOwner);
   Self.OnColumnMoved := Proc_MovedEvent;
   bColMoved          := False;
end;

procedure Register;
begin
  RegisterComponents('TEST', [TCustomDBGrid1]);
end;

end.
__________________
Suerte
.: Gydba :.
Responder Con Cita