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

Вниз

Опять, всем надоевший, StringGrid...   Найти похожие ветки 

 
Antonn ©   (2005-01-25 15:13) [0]

Здравствуйте, коллеги. Такая вот незадача(скорее идиотизм). Имеем 2 сабжа, у которых есть фиксированая строка. На одном можно выделить(поставить курсор) фиксированую ячейку, на другом нельзя. Свойства одинаковы. Как сделать недоступным для выделения фиксированые ячейки?


 
alless   (2005-01-25 15:25) [1]

Kulba 2000:
Вам необходимо создать обработчик события OnDrawCell. Это легче чем вы думаете. Вот образец кода, который сделает вас счастливым:

procedure TForm.sgrDrawCells(Sender: TObject; Col, Row: Longint; Rect: TRect;

State: TGridDrawState);
var

ACol: longint absolute Col;
ARow: longint absolute Row;
Buf: array[byte] of char;
begin

if State = gdFixed then
Exit;

with sgrGrid do begin
Canvas.Font := Font;
Canvas.Font.Color := clWindowText;
Canvas.Brush.Color := clWindow;

Canvas.FillRect(Rect);
StrPCopy(Buf, Cells[ACol,ARow]);
DrawText(Canvas.Handle, Buf, -1, Rect,
DT_SINGLELINE or DT_VCENTER or DT_NOCLIP or DT_LEFT);
end;
end;


 
alless   (2005-01-25 15:25) [2]

Kuliba 2000:
Вам необходимо создать обработчик события OnDrawCell. Это легче чем вы думаете. Вот образец кода, который сделает вас счастливым:

procedure TForm.sgrDrawCells(Sender: TObject; Col, Row: Longint; Rect: TRect;

State: TGridDrawState);
var

ACol: longint absolute Col;
ARow: longint absolute Row;
Buf: array[byte] of char;
begin

if State = gdFixed then
Exit;

with sgrGrid do begin
Canvas.Font := Font;
Canvas.Font.Color := clWindowText;
Canvas.Brush.Color := clWindow;

Canvas.FillRect(Rect);
StrPCopy(Buf, Cells[ACol,ARow]);
DrawText(Canvas.Handle, Buf, -1, Rect,
DT_SINGLELINE or DT_VCENTER or DT_NOCLIP or DT_LEFT);
end;
end;


 
begin...end ©   (2005-01-25 15:32) [3]

> Antonn ©   (25.01.05 15:13)

> Имеем 2 сабжа, у которых есть фиксированая строка.

Что есть "фиксированная строка"?

> [1] alless   (25.01.05 15:25)

> ACol: longint absolute Col;
> ARow: longint absolute Row;
> Buf: array[byte] of char;


> StrPCopy(Buf, Cells[ACol,ARow]);

Боже ж ты мой...


 
Antonn ©   (2005-01-25 15:43) [4]

alless   (25.01.05 15:25) [1]

> OnDrawCell.

Ну это мы знаем. Раскрашиваем, выравниваем. У меня в другом проблема. Фиксирования строка - FixedRows=1, это шапка таблици. На одном StringGride эта шапка при прокрутке всегда видна и курсором на нее нельзя "тыкнуть"(нет выделения, как будто не на компоненте щелкнули), на другом StringGride фиксирования срока ведет себя как обычная(можно курсор поставить, при скроллинге перемещается). Какое св-во отвечает за "аппатичную" фиксированую строку? Теряюсь в догадках, в чем причина, уже перепробывал все что можно.


 
Neznaika ©   (2005-01-25 15:48) [5]

Не помню что нужно изменить...
Но вот в инспектор объектов я думаю надо точно повнимательней посмотреть...


 
Separator ©   (2005-01-25 15:51) [6]

Удали первый Grid и скопируй на его место второй, поменяв название и подключив все события от первого


 
alless   (2005-01-25 15:53) [7]

Удали СтингГрид который тебе не нужен и поставь новый с таким именем


 
Antonn ©   (2005-01-25 16:13) [8]

В общем, почти разрешилась проблема. Оба компонента создавались копипастом от третьего. Но у одного из них(который с проблеммой) во время работы удалялись все строки, кроме fixed(шапки). После этого, ячейки шапки, хоть и были со свойством fixed, но активно притворялись "обычными" ячейками. В чем замут, так и не понятно. И как восстановить шапку тоже не ясно.


 
ЮЮ ©   (2005-01-26 04:46) [9]

>во время работы удалялись все строки, кроме fixed(шапки). После этого, ячейки шапки, хоть и были со свойством fixed, но активно притворялись "обычными" ячейками. В чем замут, так и не понятно.

После
 StringGrid1.RowCount := 1;
StringGrid1.FixedRows обнулится (StringGrid1.FixedRows должно быть строго меньше StringGrid1.RowCount) и его надо будет восстановить после "добавления" необходимого количества строк.



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

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

Наверх




Память: 0.49 MB
Время: 0.073 c
9-1099395514
Sphinx
2004-11-02 14:38
2005.02.06
Заголовочные файлы DX


1-1106418295
MadGhost
2005-01-22 21:24
2005.02.06
Как динамически создать на форме TLabel TEdit и другие компоненты


4-1103122941
Александер
2004-12-15 18:02
2005.02.06
Общение с окном чужого приложения


4-1103471885
Stot1k
2004-12-19 18:58
2005.02.06
Запуск приложения


14-1105957027
Anton++
2005-01-17 13:17
2005.02.06
NAROD.ru