Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизЦвет в stringride Найти похожие ветки
← →
KOSH (2004-11-29 10:31) [0]Привет Всем! Подскажите плз. Надо сделать чтобы по нажатию на button строка находящаяся в фокусе в stringgride выделялась другим цветом, при передаче фокуса другой строке (произвольной) и
опять нажатии, выделилась еще одна строка и т.д. и т.п.
Обрабатывая drawcell все получается но если ранее выделенной строке опять дать фокус выделение затирается. Help my!!!
← →
KOSH (2004-11-29 10:58) [1]Неужели вармантов нет? Помогите кто чем!
← →
KSergey © (2004-11-29 11:01) [2]Надо отдельно хранить список "отмеченных" строк (например, и номера) и обрабатывать эту информацию в drawcell
← →
KOSH (2004-11-30 16:41) [3]В программе это выглядит примерно так:
unit Unit1;
// чтобы это работало предварительно в options stringgrida надо установить
// gorowselect:=true
// и gorangeselect:=false
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Button1: TButton;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a,b:integer;
implementation
{$R *.dfm}
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
a:=arow;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (gdFocused in State) then begin
StringGrid1.Canvas.Brush.Color := clsilver;
StringGrid1.Canvas.Font.Color := clblack;
end
else
if Arow = b
then StringGrid1.Canvas.Brush.color := clred
else StringGrid1.canvas.brush.Color := clwindow;
If (ACol > 0) and (ARow>0) then
begin
StringGrid1.canvas.fillRect(Rect);
StringGrid1.canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
b:=a;
stringgrid1.SetFocus;
end;
end.
Смутно представляю себе процес сохранения всех сохраненных строк
Может кто поможет....
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c