Главная страница
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.033 c
14-1106081823
Hypercube
2005-01-18 23:57
2005.02.06
Linux


6-1101410970
Strumpf
2004-11-25 22:29
2005.02.06
Определение места сайта в Яндексе


1-1106430214
ser_max
2005-01-23 00:43
2005.02.06
Запись в файл


1-1106318220
Eraser
2005-01-21 17:37
2005.02.06
TJvRichEdit и распознавание смайликов.


4-1103486999
dimonf
2004-12-19 23:09
2005.02.06
Перехват нажатия копирования в Clipboard и вставки из него!