Поиск:

Ответ в темуСоздание новой темы Создание опроса
> много строк в TStringGrid 
:(
    Опции темы
maddoc
Дата 5.8.2005, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



Никак не могу решить проблемку, надо вывести текст в ячейку , но многострочный.
Раньше я подобное спрашивал, мне не ответили, так вот я со всем справился, а тут......


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
Dubinsky
Дата 5.8.2005, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



мне тож нестандарт приходилось делать ... на канве сделал , ручками .
PM MAIL WWW   Вверх
maddoc
Дата 6.8.2005, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



а можно примерчик, хотя бы коротенький


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
Dubinsky
Дата 7.8.2005, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



мой пример тебе не поможет , он делал немного другие вещи (типо StringGrid только свой стиль немного изменил внешний вид и принцип работы ) но схема была такова :

- перехватываем события WM_PAINT
- исходя из состояния компонента рисуем его (canvas->pixels , canvas->textout ну и т.п.) кстати кто знает лучше способ прорисовок текста , картинок на канве (или ещё как) пишите ...
- ну и собственно меняем состояние компонента (свои какие то переменные типо выделение строки , ячейки , цвет текста , enable disable ) различные обработчики mousemove , mouseleave , keydown и т.п.

вообщем через гланды автогеном , но он у меня заработал правда сейчас смотрю неровности , глюки.
Добавлено @ 13:13
а куда выводить собрался многострочный текст не в StringGrid DrawGrid ??
PM MAIL WWW   Вверх
maddoc
Дата 8.8.2005, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



текст хочу выводить в стриггрид. нашел компоненту , назся ADVStringgrid, только она платная и очень свежая (за конец июля) => крака нет. может у кого есть такая но старая или с краком для 5 билдера, очень надо!


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
Dubinsky
Дата 8.8.2005, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



нууу если в StringGrid то зачем каие то там платные компоненты ? у StringGrida же есть метод - OnDrawCell() ???
там и координаты ячейки и вообще всё что нужно чтобы там картины рисовать.
не то что текст в две три строчки ...
PM MAIL WWW   Вверх
maddoc
Дата 8.8.2005, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



да нет. мне не две, а много строк, то есть ширина ячейки фиксированная, а текста мб
сколько угодно.


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
Dubinsky
Дата 8.8.2005, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



хмммм и скролл бар на каждой ячейке ?

PM MAIL WWW   Вверх
maddoc
Дата 8.8.2005, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



нет, зачем, просто вся строка подгоняется под размер самой высокой


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
Dubinsky
Дата 8.8.2005, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



ну тогда это можно и самому ...

когда что то меняется в компоненте смотрим где больше всего строк , вычисляем размер ячеек исходя из этого , перерисовываем используя onDrawCell текст вручную.
PM MAIL WWW   Вверх
maddoc
Дата 9.8.2005, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



так а как запихнуть туда много строк?


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
Dubinsky
Дата 9.8.2005, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



так попробую сгенерить сам ...
вечером может смогу
PM MAIL WWW   Вверх
Dubinsky
Дата 9.8.2005, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



Код

void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
      int ARow, TRect &Rect, TGridDrawState State)
{
int TEXTHEIGHT = 15;//visota teksta
  if ((ARow == 1) && (ACol == 1))//eto index izvrashennoj jachejki
  {
     StringGrid1->RowHeights[1] = Memo1->Lines->Count*TEXTHEIGHT;//vichisljaem visotu tekushej jachejki
                                                                 //voobshe nado znatj kakaja jachejka bolshe vseh v dannoj stroke !
     for(int i = 0 ; i < Memo1->Lines->Count ; i++)
     {
       StringGrid1->Canvas->TextOutA(Rect.Left,Rect.top+i*TEXTHEIGHT,Memo1->Lines->Strings[i]);//risuem tekst
     }
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Memo1Change(TObject *Sender)
{
StringGrid1->Refresh();
}


не самый лучший вариант но легко доделать.
1 информацию о ячейке (даже много строк) нужно хранить в StringGrid->Cell[x][y]
и вытягивать её оттуда а не из Мемо
2 вычислять высоту ячейки не по текущей ячейке а по самой большой в строке

ну а вообщем это криво но работает...
PM MAIL WWW   Вверх
maddoc
Дата 9.8.2005, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



спасибо. я уже кое что нашел


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0829 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.