Code: |
{ There are two routines to implement the OnColumnClick Methods for a TStringGrid. Set the first row as fixed and the Defaultdrawing to True. }
type TForm1 = class(TForm) StringGrid1: TStringGrid; procedure StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private zelle: TRect; // cell acol, arow: Integer; public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Text: string; begin with stringgrid1 do begin MouseRoCell(x, y, acol, arow); if (arow = 0) and (button = mbleft) then case acol of 0..2: begin // Draws a 3D Effect (Push) // Zeichnet 3D-Effekt (Push) zelle := CellRect(acol, arow); Text := Cells[acol, arow]; Canvas.Font := Font; Canvas.Brush.Color := clBtnFace; Canvas.FillRect(zelle); Canvas.TextRect(zelle, zelle.Left + 2, zelle.Top + 2, Text); DrawEdge(Canvas.Handle, zelle, 10, 2 or 4 or 8); DrawEdge(Canvas.Handle, zelle, 2 or 4, 1); end; end; end; end;
procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Text: string; begin with StringGrid1 do begin // Draws a 3D-Effect (Up) // Zeichnet 3D-Effekt (Up) Text := Cells[acol, arow]; if arow = 0 then begin Canvas.Font := Font; Canvas.Brush.Color := clBtnFace; Canvas.FillRect(zelle); Canvas.TextRect(zelle, zelle.Left + 2, zelle.Top + 2, Text); DrawEdge(Canvas.Handle, zelle, 4, 4 or 8); DrawEdge(Canvas.Handle, zelle, 4, 1 or 2); MouseToCell(zelle.Left, zelle.Top, acol, arow); end; end; if (arow = 0) and (Button = mbleft) then case acol of 0..2: begin // Code to be executed... // Programmcode der ausgefuhrt werden soll ShowMessage('Column ' + IntToStr(acol)); zelle := stringgrid1.CellRect(1, 1); end; end; end;
end. |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!