powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в одной ячейки StringGrid'а записать две строчки?
4 сообщений из 4, страница 1 из 1
Как в одной ячейки StringGrid'а записать две строчки?
    #33762127
cruse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в одной ячейки StringGrid'а записать две строчки?
Код: plaintext
1.
 111111 
               111111 
...
Рейтинг: 0 / 0
Как в одной ячейки StringGrid'а записать две строчки?
    #33762128
cruse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь:
Код: plaintext
1.
 11111 
 11111 
...
Рейтинг: 0 / 0
Как в одной ячейки StringGrid'а записать две строчки?
    #33762168
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рисуйте вручную, используя Canvas. Ниже пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
#define MAXWORDS  50 
//---------------------------------------------------------------
void Draw1TextInStringGridCell(TStringGrid *g, TRect &Rect,
  AnsiString ss,  bool Center){
// Нарисовать текст в ячейке StringGrid *g
// Rect - ячейка, s - строка,
// Center - центрировать по горизонтали

int FontHeight,nString;
int i,k,TextLeft,CellWidth,n,nEmptyStrings;
AnsiString s[MAXWORDS],p1,p[MAXWORDS];

FontHeight=g->Canvas->TextHeight("a");
n=StringToWords(ss,s); // разбить строку на слова
nString=(Rect.Bottom-Rect.Top)/FontHeight; // в ячейку входит столько строк
CellWidth=Rect.Right-Rect.Left;
p[ 0 ]="";
k= 0 ;
for(i= 0 ;i<n;i++){
    TextLeft= 2 ;
    p1=p[k]+" "+s[i];
    if(g->Canvas->TextWidth(p1)>CellWidth){
        if(k>=MAXWORDS){
            Msg(PROGRAMMER,NULL,
              "Draw1TextInStringGridCell():\n"
              "Число слов превышает максимум (%d)",MAXWORDS);
            break;
        }
        k++;
        p[k]=s[i];
    } else {
        p[k]=p[k]+" "+s[i];
    }
}
n=k+ 1 ;
nEmptyStrings=(nString-n)/ 2 ;
if(nEmptyStrings< 0 ){
    nEmptyStrings= 0 ;
}
g->Canvas->FillRect(Rect);
for(i= 0 ;i<n;i++){
    if(Center){
        TextLeft=(CellWidth-g->Canvas->TextWidth(p[i]))/ 2 ;
        if(TextLeft< 0 ){
            TextLeft= 2 ;
        }
    }
    g->Canvas->TextOutA(Rect.Left+TextLeft,Rect.Top+
      (nEmptyStrings+i)*FontHeight,p[i]);
}
}
...
Рейтинг: 0 / 0
Как в одной ячейки StringGrid'а записать две строчки?
    #33762533
cruse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне надо вказать в какой ячейке!!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в одной ячейки StringGrid'а записать две строчки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]