Einzelnen Beitrag anzeigen

bwolf

Registriert seit: 17. Jan 2006
368 Beiträge
 
Delphi 2009 Professional
 
#3

Re: DBgrid + TitleClick + Rechte Maustaste

  Alt 14. Nov 2007, 10:39
Moin!

1000 dank für deine ausführliche Antwort - hat mir sogar SEHR weitergeholfen
Hab mit deinem Code jetzt ein erweiteres DBGrid erstellt, das mir das TitleRightClick-event zu verfügung stellt.


Delphi-Quellcode:
unit JvDbGridTitleClick;

interface

uses
  SysUtils, Classes, Controls, Grids, DBGrids, JvExDBGrids, JvDBGrid;

type
  TJvDbGridTitleClick = class(TJvDBGrid)
  private
    { Private declarations }
    FOnTitleRightClick: TDBGridClickEvent;
  protected
    { Protected declarations }
  public
    { Public declarations }
    procedure TitleRightClick(Column: TColumn); dynamic;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); override;
  published
    { Published declarations }
    property OnTitleRightClick: TDBGridClickEvent read FOnTitleRightClick write FOnTitleRightClick;
  end;

procedure Register;

implementation

procedure TJvDbGridTitleClick.MouseUp(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer);
var
  Cell: TGridCoord;
begin
  inherited MouseUp(Button, Shift, X, Y);
  Cell := MouseCoord(X,Y);
  if (Button = mbright) and (Cell.X >= IndicatorOffset) and (Cell.Y = 0) then
    TitleRightClick(Columns[RawToDataColumn(Cell.X)]);
end;

procedure TJvDbGridTitleClick.TitleRightClick(Column: TColumn);
begin
  if Assigned(FOnTitleRightClick) then FOnTitleRightClick(Column);
end;

procedure Register;
begin
  RegisterComponents('Samples', [TJvDbGridTitleClick]);
end;

end.
  Mit Zitat antworten Zitat