:: MVP ::
|
|
:: RSS ::
|
|
|
Как выделить строку в TStringGrid?
procedure SelectRow( StringGrid: TStringGrid; RowNumber: integer );
var
NewSel: TGridRect;
begin
with StringGrid do
begin
if ( RowNumber > FixedRows-1 ) and ( RowNumber < RowCount ) then
begin
NewSel.Left := FixedCols;
NewSel.Top := RowNumber;
NewSel.Right := ColCount - 1;
NewSel.Bottom := RowNumber;
Selection := NewSel;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SelectRow( StringGrid1, 1 );
end;
|
Как выделить колонку в TStringGrid?
procedure SelectCol( StringGrid: TStringGrid; ColNumber: integer );
var
NewSel: TGridRect;
begin
with StringGrid do
begin
if ( ColNumber > FixedCols-1 ) and ( ColNumber < ColCount ) then
begin
NewSel.Left := ColNumber;
NewSel.Top := FixedRows;
NewSel.Right := ColNumber;
NewSel.Bottom := RowCount - 1;
Selection := NewSel;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SelectCol( StringGrid1, 1 );
end;
|
Как использовать Enter как Tab в TStringGrid?
// Табуляция по строкам
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
with Sender as TStringGrid do
if Col < ColCount-1 then
Col := Col + 1
else
if Row < RowCount-1 then
begin
Row := Row + 1;
Col := 1;
end
else
begin
Row := 1;
Col := 1;
end;
end;
// Табуляция по колонкам
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
with Sender as TStringGrid do
if Row < RowCount-1 then
Row := Row + 1
else
if Col < ColCount-1 then
begin
Col := Col + 1;
Row := 1;
end
else
begin
Col := 1;
Row := 1;
end;
end;
|
Как определить, отображаются ли полосы прокрутки в TStringGrid?
procedure TForm1.Button1Click(Sender: TObject);
begin
if ( GetWindowlong( StringGrid1.Handle, GWL_STYLE ) and WS_VSCROLL ) <> 0 then
ShowMessage( 'Вертикальный ScrollBar виден' );
if ( GetWindowlong( StringGrid1.Handle, GWL_STYLE ) and WS_HSCROLL ) <> 0 then
ShowMessage( 'Горизонтальный ScrollBar виден' );
end;
|
Как сменить цвет выделения в TStringGrid?
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if gdSelected in State then
with TStringGrid(Sender), Canvas do
begin
Brush.Color := clLime;
FillRect(Rect);
TextRect(Rect, Rect.Left+2, Rect.Top+2, Cells[ACol,ARow]);
end;
end;
|
Как снять выделение в TStringGrid?
procedure GridClean( StringGrid: TStringGrid );
var
hGridRect: TGridRect;
begin
hGridRect.Top := -1;
hGridRect.Left := -1;
hGridRect.Right := -1;
hGridRect.Bottom := -1;
StringGrid.Selection := hGridRect;
end;
procedure TForm1.StringGrid1Exit(Sender: TObject);
begin
GridClean( Sender as TStringGrid );
end;
|
Как изменить цвет выделенных ячеек, когда TStringGrid неактивен?
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if Sender = ActiveControl then
Exit;
if not ( gdSelected in State ) then
Exit;
with Sender as TStringGrid do
begin
Canvas.Brush.Color := clYellow;
Canvas.Font.Color := Font.Color;
Canvas.TextRect( Rect, Rect.Left + 2, Rect.Top + 2, Cells[ACol,ARow] );
end;
end;
|
Как очистить ячейки в TStringGrid?
// Способ первый
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
begin
with StringGrid1 do
for i := 0 to ColCount-1 do
for j := 0 to RowCount-1 do
Cells[i,j] := '';
end;
// Способ второй
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := 0 to StringGrid1.RowCount-1 do
StringGrid1.Rows[i].Clear;
end;
// Способ третий
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := 0 to StringGrid1.ColCount-1 do
StringGrid1.Cols[i].Clear;
end;
|
При использовании материала - ссылка на сайт обязательна
|
|