Конференция "Основная" » работа в ячейке StringGrid с различными объектами. [D6, WinXP]
 
  • Leon161 (02.04.08 13:21) [0]
    Скажите, пожалуйста, с помощью какой компоненты можно работать в ячейке StringGrid с разлиными объектами. Пример: нужно в ячейки расположить три строки, которые будут по выбору изменяться, но проблема в том, что в ячейки запись идет строкой в 255 символов.
  • tesseract © (02.04.08 13:53) [1]

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


    Обрабатывать события захода в ячейку и выводить в эту область свой элемент управления. TControlGrid вроде в D6 ещё не появилась.
  • Leon161 (02.04.08 15:14) [2]
    поставил Delphi 7. TControlGrid не нахожу. есть только DBCtrlGrid, но работаю не с БД. Может чего не понимаю, но всё таки....в какой закладке у Вас она находится, для начала...
    P.S. Событие захода в ячейку - это какое? :) Спасибо.
  • Сергей М. © (02.04.08 15:22) [3]

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


    А БД для этого и не нужна.
  • tesseract © (02.04.08 15:43) [4]

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


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


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


    OnClock OnKeyDown. Помню ComboBox у меня однозначно хорошо влезал.
  • Leon161 (02.04.08 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 © (02.04.08 16:18) [6]
    Определить координаты ячейки  StringGrid  и поместить их туда. Можно также фрэйм попробовать. А не проще в JVCL пошарить, там что-то такое было, я не помню уже что в D7 из контролов хорошего.
  • Leon161 (02.04.08 19:47) [7]

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

    они оказываются на "втором" плане и другие компоненты (в данном случае ListBox просто не видно).
  • tesseract © (02.04.08 20:41) [8]

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


    parent выставляй. Работает точно, просто делалось лет 5 назад, щас уже не помню как и что в деталях.
  • KSergey © (04.04.08 14:48) [9]
    > Leon161   (02.04.08 15:48) [5]
    > что нужно добавить в код, чтобы в выбранной ячеки появилось
    > сверху вних три Label?

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

    А вот при редактировании - это другое дело. Тут Edit радо подставлять в нужное место, вероятно срязу 3 будет легче в реализации, пока не начнем озабачиваться проблемой корректной навигации кравишами. Вот тут уже наверное станет проще один дополнительный Edit использовать.
  • Leon161 (04.04.08 15:42) [10]
    всем спасибо, проблема решена.
  • azamatufa © (08.04.08 06:43) [11]

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


    как?
  • MsGuns © (08.04.08 08:23) [12]
    >как?

    Верятно, забитием на таком способе построения интерфейса
  • TStas © (08.04.08 20:57) [13]
    Зачем же в ячейку пихать лэйблы? Если нужен многострочный текст, есть чудестная ф-ция DRawText. Она может рисовать многострочный текст, если выставить флаг DT_WORDBREAK. Форматирует, как нужно и т. д. Зачем же с метками извращаться? Ведь при этом ячейки могут быть изменяетмых размеров. Тогда DRawText нормально отрисует текст под новый размер, а метка что сделает?
 
Конференция "Основная" » работа в ячейке StringGrid с различными объектами. [D6, WinXP]
Есть новые Нет новых   [134484   +49][b:0][p:0]