Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

работа в ячейке StringGrid с различными объектами. [D6, WinXP]


Leon161 ©   (2008-04-02 13:21:00) 

Скажите, пожалуйста, с помощью какой компоненты можно работать в ячейке StringGrid с разлиными объектами. Пример: нужно в ячейки расположить три строки, которые будут по выбору изменяться, но проблема в том, что в ячейки запись идет строкой в 255 символов.


TStas   (2008-04-08 20:57:00) [1]

Зачем же в ячейку пихать лэйблы? Если нужен многострочный текст, есть чудестная ф-ция DRawText. Она может рисовать многострочный текст, если выставить флаг DT_WORDBREAK. Форматирует, как нужно и т. д. Зачем же с метками извращаться? Ведь при этом ячейки могут быть изменяетмых размеров. Тогда DRawText нормально отрисует текст под новый размер, а метка что сделает?


MsGuns   (2008-04-08 08:23:00) [2]

>как?

Верятно, забитием на таком способе построения интерфейса


azamatufa   (2008-04-08 06:43:00) [3]


> всем спасибо, проблема решена.


как?


Leon161   (2008-04-04 15:42:00) [4]

всем спасибо, проблема решена.


KSergey   (2008-04-04 14:48:00) [5]

> Leon161   (02.04.08 15:48) [5]
> что нужно добавить в код, чтобы в выбранной ячеки появилось
> сверху вних три Label?

Если надо просто отобразить - то, на мой взгляд, будет правильнее либо в текст вводить #13 для обозначения новой с строки, тогда оно при выводе разобъется, либо ручками отрисовать эти 3 строки в OnDrawCell как хочется, что тоже просто.

А вот при редактировании - это другое дело. Тут Edit радо подставлять в нужное место, вероятно срязу 3 будет легче в реализации, пока не начнем озабачиваться проблемой корректной навигации кравишами. Вот тут уже наверное станет проще один дополнительный Edit использовать.


tesseract   (2008-04-02 20:41:00) [6]


> они оказываются на "втором" плане и другие компоненты (в
> данном случае ListBox просто не видно).


parent выставляй. Работает точно, просто делалось лет 5 назад, щас уже не помню как и что в деталях.


Leon161   (2008-04-02 19:47:00) [7]


> Определить координаты ячейки  StringGrid  и поместить их
> туда

они оказываются на "втором" плане и другие компоненты (в данном случае ListBox просто не видно).


tesseract   (2008-04-02 16:18:00) [8]

Определить координаты ячейки  StringGrid  и поместить их туда. Можно также фрэйм попробовать. А не проще в JVCL пошарить, там что-то такое было, я не помню уже что в D7 из контролов хорошего.


Leon161   (2008-04-02 15:48:00) [9]


> брабатывать события захода в ячейку и выводить в эту область
> свой элемент управления.

а как добавлять свой элемент по ходу выполнения программы? допустим:

procedure TSostoyaniya.StringGrid3SelectCell(Sender: TObject; ACol,
 ARow: Integer; var CanSelect: Boolean);
begin

label1.Caption:=inttostr(ARow);
label2.Caption:=inttostr(ACol);

end;
что нужно добавить в код, чтобы в выбранной ячеки появилось сверху вних три Label?


tesseract   (2008-04-02 15:43:00) [10]


> поставил Delphi 7.


В TurboDelphi/D2006 точно есть.


> P.S. Событие захода в ячейку - это какое? :)


OnClock OnKeyDown. Помню ComboBox у меня однозначно хорошо влезал.


Сергей М.   (2008-04-02 15:22:00) [11]


> есть только DBCtrlGrid, но работаю не с БД


А БД для этого и не нужна.


Leon161   (2008-04-02 15:14:00) [12]

поставил Delphi 7. TControlGrid не нахожу. есть только DBCtrlGrid, но работаю не с БД. Может чего не понимаю, но всё таки....в какой закладке у Вас она находится, для начала...
P.S. Событие захода в ячейку - это какое? :) Спасибо.


tesseract   (2008-04-02 13:53:00) [13]


> Скажите, пожалуйста, с помощью какой компоненты можно работать
> в ячейке StringGrid с разлиными объектами.


Обрабатывать события захода в ячейку и выводить в эту область свой элемент управления. TControlGrid вроде в D6 ещё не появилась.


Наверх

Титульная страница Поиск, карта сайта Написать письмо