2-х и более строчные надписи (delphi6)
От: Proxvost  
Дата: 08.01.03 07:03
Оценка:
Вопрос вот такой всплыл. Есть кнопки и поля Grid в которых есть необходимость заголовок сделать многострочным. Если с кнопками прокатил вариант подстановки рисунка с необходимым текстом то Grid это не берет. Как нибудь можно решить эту проблему?

C уважением Прохвост

P.S. Пробовал в заголовок подставлять такое сочетание #10#13 ... не прокатывает

08.01.03 10:43: Перенесено модератором из 'Базы данных' — MM
Re: 2-х и более строчные надписи (delphi6)
От: DemAS http://demas.me
Дата: 08.01.03 08:27
Оценка:
Здравствуйте, Proxvost, Вы писали:

P>Вопрос вот такой всплыл. Есть кнопки и поля Grid в которых есть необходимость заголовок сделать многострочным. Если с кнопками прокатил вариант подстановки рисунка с необходимым текстом то Grid это не берет. Как нибудь можно решить эту проблему?


Если ничего не имеешь против сторонних компонент посмотри EhLib. Очень хороший грид и не только; с исходными кодами; бесплатный для граждан России. Умеет и то, что тебе нужно
... << Играет Pet Shop Boys — Do I Have To>>
Re[2]: 2-х и более строчные надписи (delphi6)
От: Proxvost  
Дата: 08.01.03 08:36
Оценка:
Здравствуйте, DemAS, Вы писали:


DAS> Если ничего ... Умеет и то, что тебе нужно


Благодарю, за информацию , но правильно ли я понимаю, что стандартными средствами это не реализуется?

С уважением Прохвост
Re[3]: 2-х и более строчные надписи (delphi6)
От: AlexandrN Россия  
Дата: 08.01.03 14:09
Оценка: 6 (1)
Здравствуйте, Proxvost, Вы писали:

P>Здравствуйте, DemAS, Вы писали:


P>

DAS>> Если ничего ... Умеет и то, что тебе нужно

P>Благодарю, за информацию , но правильно ли я понимаю, что стандартными средствами это не реализуется?


P>С уважением Прохвост


Нет ни правильно...
Для реализации многострочных заголовков(да и вообще содержания Grid`а), достаточно переписать метод рисования компонента.
С уважением.
AlexandrN
Re[4]: 2-х и более строчные надписи (delphi6)
От: Proxvost  
Дата: 09.01.03 06:20
Оценка:
Здравствуйте, AlexandrN, Вы писали:

AN>Для реализации многострочных заголовков(да и вообще содержания Grid`а), достаточно переписать метод рисования компонента.


В дельфях я еще зеленоват, не могли бы немного конкретнее обьяснить. В какой раздел мне конкретно нужно залезть для реализации. Я пока попробую сам разобраться, но был бы признателен за информацию.

С уважением Прохвост
Re[5]: 2-х и более строчные надписи (delphi6)
От: DemAS http://demas.me
Дата: 09.01.03 06:50
Оценка:
Здравствуйте, Proxvost, Вы писали:

Честно говоря — так не скажу, нет Дельфей под руками. Если кто нибудь знает — посоветуйте.

От себя скажу следующее — можно скачать Grid, который я тебе порекомендовал — он с исходниками, там можно посмотреть как это делается.
... << Играет Manic Street Preachers — You're tender and you're tired>>
Re[5]: 2-х и более строчные надписи (delphi6)
От: Сергей Лисовский  
Дата: 09.01.03 07:05
Оценка:
Здравствуйте, Proxvost, Вы писали:


P>В дельфях я еще зеленоват, не могли бы немного конкретнее обьяснить. В какой раздел мне конкретно нужно залезть для реализации. Я пока попробую сам разобраться, но был бы признателен за информацию.


Например, так:

procedure TMyForm.AdvStringGrid1DrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
var
  s: string;
begin
  if aRow = 0 then  //  Рисуем заголовки Fixed Cells
  begin
    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
Сергей.
Re: 2-х и более строчные надписи (delphi6)
От: Proxvost  
Дата: 09.01.03 08:34
Оценка:
Народ огромное спасибо за информацию, щас сижу экспериментирую
В принципе до этого выкрутился перекрытием заголовка Грида статическим текстом, там правда приходилось следить за привязкой к форме. Но этот метод сами понимаете за уши притянут.
Так что спасибо огромное.

С уважением Прохвост
Re[6]: 2-х и более строчные надписи (delphi6)
От: Proxvost  
Дата: 09.01.03 10:12
Оценка:
Здравствуйте, Сергей Лисовский, Вы писали:

СЛ>procedure TMyForm.AdvStringGrid1DrawCell(Sender: TObject; ACol,

СЛ> ARow: Integer; Rect: TRect; State: TGridDrawState);

СЛ>То есть перекрываешь у грида своего событие OnDrawCell


хмм, спасибо за инфо, но в общем то такого события нет. есть OnDrawColumnCell и OnDrawDateCell. Второй не подходит, первый же берет Rect как константу и соответственно в DrawText ей ничего нельзя присвоить.

Я в принципе эту проблему решал посредством статической записи которая перекрывала соответствующие заголовки. Но сами понимаете это некрасиво. Вот и ищу решение

С уважением Прохвост
Re[7]: 2-х и более строчные надписи (delphi6)
От: Сергей Лисовский  
Дата: 09.01.03 13:07
Оценка:
Здравствуйте, Proxvost, Вы писали:


P>хмм, спасибо за инфо, но в общем то такого события нет. есть OnDrawColumnCell и OnDrawDateCell. Второй не подходит, первый же берет Rect как константу и соответственно в DrawText ей ничего нельзя присвоить.



Да, с DBGrid'ом сложнее. Мне видится два пути:
1) Отнаследоваться от DBGrid и перекрыть ф-цию DrawCell. Там и Rect некостантный. Можно еще перетащить св-во RowHeights из protected в public или published.
2) поискать дбгрид, который умеет такие штуки делать.
Сергей.
Re[8]: 2-х и более строчные надписи (delphi6)
От: Proxvost  
Дата: 09.01.03 13:32
Оценка:
Здравствуйте, Сергей Лисовский, Вы писали:

СЛ>1) Отнаследоваться от DBGrid и перекрыть ф-цию DrawCell. Там и Rect некостантный. Можно еще перетащить св-во RowHeights из protected в public или published.

СЛ>2) поискать дбгрид, который умеет такие штуки делать.

Ну чтож попробовать можно, завтра поэкспериментирую. А насчет второго, такая штука есть, мне ее изначально предлагали. Из интернета я ее уже укачал. Поставить в общем не проблема.
Я просто щас осваиваюсь со всеми возможностями которые исходный вариант предлагает.

С уважением Прохвост.
Re: 2-х и более строчные надписи (delphi6)
От: vasketsov Россия http://ntprog.by.ru
Дата: 09.01.03 16:19
Оценка:
Здравствуйте, Proxvost, Вы писали:

P>Вопрос вот такой всплыл. Есть кнопки и поля Grid в которых есть необходимость заголовок сделать многострочным. Если

P>P.S. Пробовал в заголовок подставлять такое сочетание #10#13 ... не прокатывает

TBitBtn замечательно понимает 'xxx'#13#10'yyy'.
Васкецов Сергей
http://registry.km.ru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.