Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

Опять, всем надоевший, 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.034 c
4-1103182061
gdaujk
2004-12-16 10:27
2005.02.06
При нажатии TAB фокус не перескакивает с одного контрола на др.


1-1106635693
Артем К.
2005-01-25 09:48
2005.02.06
Подскажите, как напечатать графики 3-х TChart(ов) на одном листе?


14-1105971912
1008
2005-01-17 17:25
2005.02.06
Пиво опен сурс


4-1103123827
-=SS=-
2004-12-15 18:17
2005.02.06
Можно ли по ID просесса узнать хендл окна этого просесса ?


8-1098395688
фантазер
2004-10-22 01:54
2005.02.06
Список форматов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский