Вопрос вот такой всплыл. Есть кнопки и поля Grid в которых есть необходимость заголовок сделать многострочным. Если с кнопками прокатил вариант подстановки рисунка с необходимым текстом то Grid это не берет. Как нибудь можно решить эту проблему?
C уважением Прохвост
P.S. Пробовал в заголовок подставлять такое сочетание #10#13 ... не прокатывает
08.01.03 10:43: Перенесено модератором из 'Базы данных' — MM
Здравствуйте, Proxvost, Вы писали:
P>Вопрос вот такой всплыл. Есть кнопки и поля Grid в которых есть необходимость заголовок сделать многострочным. Если с кнопками прокатил вариант подстановки рисунка с необходимым текстом то Grid это не берет. Как нибудь можно решить эту проблему?
Если ничего не имеешь против сторонних компонент посмотри EhLib. Очень хороший грид и не только; с исходными кодами; бесплатный для граждан России. Умеет и то, что тебе нужно
Здравствуйте, Proxvost, Вы писали:
P>Здравствуйте, DemAS, Вы писали:
P> DAS>> Если ничего ... Умеет и то, что тебе нужно
P>Благодарю, за информацию , но правильно ли я понимаю, что стандартными средствами это не реализуется?
P>С уважением Прохвост
Нет ни правильно...
Для реализации многострочных заголовков(да и вообще содержания Grid`а), достаточно переписать метод рисования компонента.
Здравствуйте, AlexandrN, Вы писали:
AN>Для реализации многострочных заголовков(да и вообще содержания Grid`а), достаточно переписать метод рисования компонента.
В дельфях я еще зеленоват, не могли бы немного конкретнее обьяснить. В какой раздел мне конкретно нужно залезть для реализации. Я пока попробую сам разобраться, но был бы признателен за информацию.
P>В дельфях я еще зеленоват, не могли бы немного конкретнее обьяснить. В какой раздел мне конкретно нужно залезть для реализации. Я пока попробую сам разобраться, но был бы признателен за информацию.
Например, так:
procedure TMyForm.AdvStringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
s: string;
begin
if aRow = 0 then// Рисуем заголовки Fixed Cellsbegin
case aCol of
1: s:='столбец'#13'номер'#13' один';
2: s:='столбец'#13'номер'#13' два';
3: s:='столбец'#13'номер'#13' три';
end; // case
DrawText( AdvStringGrid1.Canvas.Handle,
PChar(s),
Length(s),
Rect,
DT_CENTER or DT_VCENTER);
end;
end
То есть перекрываешь у грида своего событие OnDrawCell
Народ огромное спасибо за информацию, щас сижу экспериментирую
В принципе до этого выкрутился перекрытием заголовка Грида статическим текстом, там правда приходилось следить за привязкой к форме. Но этот метод сами понимаете за уши притянут.
Так что спасибо огромное.
Здравствуйте, Сергей Лисовский, Вы писали:
СЛ>procedure TMyForm.AdvStringGrid1DrawCell(Sender: TObject; ACol, СЛ> ARow: Integer; Rect: TRect; State: TGridDrawState);
СЛ>То есть перекрываешь у грида своего событие OnDrawCell
хмм, спасибо за инфо, но в общем то такого события нет. есть OnDrawColumnCell и OnDrawDateCell. Второй не подходит, первый же берет Rect как константу и соответственно в DrawText ей ничего нельзя присвоить.
Я в принципе эту проблему решал посредством статической записи которая перекрывала соответствующие заголовки. Но сами понимаете это некрасиво. Вот и ищу решение
P>хмм, спасибо за инфо, но в общем то такого события нет. есть OnDrawColumnCell и OnDrawDateCell. Второй не подходит, первый же берет Rect как константу и соответственно в DrawText ей ничего нельзя присвоить.
Да, с DBGrid'ом сложнее. Мне видится два пути:
1) Отнаследоваться от DBGrid и перекрыть ф-цию DrawCell. Там и Rect некостантный. Можно еще перетащить св-во RowHeights из protected в public или published.
2) поискать дбгрид, который умеет такие штуки делать.
Здравствуйте, Сергей Лисовский, Вы писали:
СЛ>1) Отнаследоваться от DBGrid и перекрыть ф-цию DrawCell. Там и Rect некостантный. Можно еще перетащить св-во RowHeights из protected в public или published. СЛ>2) поискать дбгрид, который умеет такие штуки делать.
Ну чтож попробовать можно, завтра поэкспериментирую. А насчет второго, такая штука есть, мне ее изначально предлагали. Из интернета я ее уже укачал. Поставить в общем не проблема.
Я просто щас осваиваюсь со всеми возможностями которые исходный вариант предлагает.
Здравствуйте, Proxvost, Вы писали:
P>Вопрос вот такой всплыл. Есть кнопки и поля Grid в которых есть необходимость заголовок сделать многострочным. Если P>P.S. Пробовал в заголовок подставлять такое сочетание #10#13 ... не прокатывает