Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.11;
Скачать: CL | DM;

Вниз

StringGrid   Найти похожие ветки 

 
zep   (2004-06-30 18:31) [0]

привет всем.

begin
   if (gdFocused in State) then begin
     begin
   if (gdFocused in State) then begin
     StringGrid1.Canvas.Brush.Color := clred;
     StringGrid1.Canvas.Font.Color := clred;
     StringGrid1.canvas.fillRect(Rect);
   end;
при испальзовании данного кода в StringGrid ячейка где фокус закрашивается красным, а как сделать чтобы при нажатии на другую ччейку закрашивалась и предыдущая и та на которой фокус.

зарание спасибо.


 
Алхимик ©   (2004-06-30 18:36) [1]


> begin
>    if (gdFocused in State) then begin
>      begin
>    if (gdFocused in State) then begin
>      StringGrid1.Canvas.Brush.Color := clred;
>      StringGrid1.Canvas.Font.Color := clred;
>      StringGrid1.canvas.fillRect(Rect);
>    end;


Вторая проверка для того чтоб спокойнее было?
:)


> при испальзовании данного кода в StringGrid ячейка где фокус
> закрашивается красным, а как сделать чтобы при нажатии на
> другую ччейку закрашивалась и предыдущая и та на которой
> фокус.


Заноси в ячеёку информацию о том что кликнул на неё, при прорисовке анализируй...


 
zep   (2004-06-30 18:40) [2]

а по подробней можно


 
wisekaa ©   (2004-06-30 18:41) [3]

Сформулируй вопрос по другому!

Вот код который закрашивает всю строку, в которой находиться выделенная ячейка.


procedure TForm.GridDrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
if (not (gdFixed in AState)) and (ACol > Grid.FixedCols-1) and (ARow = Grid.Row) and
   (ACol <> Col)  then Grid.Canvas.Brush.Color:=clRed;
end;


(ACol <> Col) - текущая ячейка стандартная подсветка.


 
zep   (2004-06-30 18:46) [4]

мне надо чтобы все ячейки на которые кликал пользователь остовались закрашеные


 
wisekaa ©   (2004-06-30 18:50) [5]


> zep   (30.06.04 18:46)
> мне надо чтобы все ячейки на которые кликал пользователь
> остовались закрашеные


procedure TForm.GridSelectCell(Sender: TObject; ACol,
 ARow: Integer; var CanSelect: Boolean);
begin
Grid.Objects[ACol,ARow] := TObject(1);
end;

procedure TForm.GridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if Grid.Objects[ACol,ARow] <> nill then
 if Integer(Grid.Objects[ACol,ARow]) = 1 then Grid.Canvas.Brush.Color:=clRed;
end;

Дальше на сколько фантазии хватит


 
zep   (2004-06-30 20:20) [6]

а можно подрабнее просто с объектами еще неработал недавно delphi"ю юзать начал.
С делал как предложил wisekaa ©   (30.06.04 18:50) [5]
но чтото не работает.


 
wisekaa ©   (2004-06-30 20:31) [7]

procedure TForm1.GridDrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
if Grid.Objects[ACol,ARow] <> nil then
if Integer(Grid.Objects[ACol,ARow]) = 1 then begin
 Grid.Canvas.Brush.Color:=clRed;
 Grid.Canvas.FillRect(Rect);
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2004.07.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
1-1088594179
half_litre
2004-06-30 15:16
2004.07.11
Не срабатывает OnClose. Правильно ли это ?


8-1081016095
Forelli
2004-04-03 22:14
2004.07.11
Как проигрывать CDA файлы (AudioCD) в программе?


14-1087797463
ПсихЪ
2004-06-21 09:57
2004.07.11
Глюки форума при рефреше (F5)


14-1087803385
WondeRu
2004-06-21 11:36
2004.07.11
Помогите решить задачку!


14-1087542167
Паниковский
2004-06-18 11:02
2004.07.11
Что вы думаете про это?