Форум: "Основная";
Текущий архив: 2009.02.01;
Скачать: [xml.tar.bz2];
Внизработа в ячейке StringGrid с различными объектами. Найти похожие ветки
← →
Leon161 (2008-04-02 13:21) [0]Скажите, пожалуйста, с помощью какой компоненты можно работать в ячейке StringGrid с разлиными объектами. Пример: нужно в ячейки расположить три строки, которые будут по выбору изменяться, но проблема в том, что в ячейки запись идет строкой в 255 символов.
← →
tesseract © (2008-04-02 13:53) [1]
> Скажите, пожалуйста, с помощью какой компоненты можно работать
> в ячейке StringGrid с разлиными объектами.
Обрабатывать события захода в ячейку и выводить в эту область свой элемент управления. TControlGrid вроде в D6 ещё не появилась.
← →
Leon161 (2008-04-02 15:14) [2]поставил Delphi 7. TControlGrid не нахожу. есть только DBCtrlGrid, но работаю не с БД. Может чего не понимаю, но всё таки....в какой закладке у Вас она находится, для начала...
P.S. Событие захода в ячейку - это какое? :) Спасибо.
← →
Сергей М. © (2008-04-02 15:22) [3]
> есть только DBCtrlGrid, но работаю не с БД
А БД для этого и не нужна.
← →
tesseract © (2008-04-02 15:43) [4]
> поставил Delphi 7.
В TurboDelphi/D2006 точно есть.
> P.S. Событие захода в ячейку - это какое? :)
OnClock OnKeyDown. Помню ComboBox у меня однозначно хорошо влезал.
← →
Leon161 (2008-04-02 15:48) [5]
> брабатывать события захода в ячейку и выводить в эту область
> свой элемент управления.
а как добавлять свой элемент по ходу выполнения программы? допустим:
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 16:18) [6]Определить координаты ячейки StringGrid и поместить их туда. Можно также фрэйм попробовать. А не проще в JVCL пошарить, там что-то такое было, я не помню уже что в D7 из контролов хорошего.
← →
Leon161 (2008-04-02 19:47) [7]
> Определить координаты ячейки StringGrid и поместить их
> туда
они оказываются на "втором" плане и другие компоненты (в данном случае ListBox просто не видно).
← →
tesseract © (2008-04-02 20:41) [8]
> они оказываются на "втором" плане и другие компоненты (в
> данном случае ListBox просто не видно).
parent выставляй. Работает точно, просто делалось лет 5 назад, щас уже не помню как и что в деталях.
← →
KSergey © (2008-04-04 14:48) [9]> Leon161 (02.04.08 15:48) [5]
> что нужно добавить в код, чтобы в выбранной ячеки появилось
> сверху вних три Label?
Если надо просто отобразить - то, на мой взгляд, будет правильнее либо в текст вводить #13 для обозначения новой с строки, тогда оно при выводе разобъется, либо ручками отрисовать эти 3 строки в OnDrawCell как хочется, что тоже просто.
А вот при редактировании - это другое дело. Тут Edit радо подставлять в нужное место, вероятно срязу 3 будет легче в реализации, пока не начнем озабачиваться проблемой корректной навигации кравишами. Вот тут уже наверное станет проще один дополнительный Edit использовать.
← →
Leon161 (2008-04-04 15:42) [10]всем спасибо, проблема решена.
← →
azamatufa © (2008-04-08 06:43) [11]
> всем спасибо, проблема решена.
как?
← →
MsGuns © (2008-04-08 08:23) [12]>как?
Верятно, забитием на таком способе построения интерфейса
← →
TStas © (2008-04-08 20:57) [13]Зачем же в ячейку пихать лэйблы? Если нужен многострочный текст, есть чудестная ф-ция DRawText. Она может рисовать многострочный текст, если выставить флаг DT_WORDBREAK. Форматирует, как нужно и т. д. Зачем же с метками извращаться? Ведь при этом ячейки могут быть изменяетмых размеров. Тогда DRawText нормально отрисует текст под новый размер, а метка что сделает?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.02.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c