Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/32: Рейтинг темы: голосов - 32, средняя оценка - 4.88
69 / 69 / 50
Регистрация: 25.03.2012
Сообщений: 241

Перенос текста в ячейках StringGrid

10.09.2013, 14:50. Показов 6933. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел дельфиский код c использованием API

Delphi
1
2
3
4
5
6
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var s:string;
begin
 s := 'Hello world! Hello world! Hello world! Hello world!';
 DrawText(StringGrid1.Canvas.Handle,PChar(s),length(s),Rect,DT_WORDBREAK);
end
Сам пытаюсь использовать на С++ builder

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,
          TGridDrawState State)
{
 
if ((ACol==i) && (ARow==b))
{
StringGrid1->Canvas->Brush->Color=clRed;
 
   AnsiString s;
 
    s="Hello world! Hello world! Hello world! Hello world!";
 
 DrawText(StringGrid1->Canvas->Handle, PChar(s),10,Rect,DT_WORDBREAK);
 StringGrid1->Canvas->FillRect(Rect);
 
}
ругается на PChar(s) как правильно это описать в С++ builder (уже пробывал s.str()), помогите разобраться что за тип PChar
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.09.2013, 14:50
Ответы с готовыми решениями:

Изображения в ячейках StringGrid
Доброго времени суток, формчане. Есть группа кнопок SpeedButton с изображениями BMP на каждой, и таблица StringGrid; при нажатии одной из...

Убрать повторения в ячейках StringGrid
В ячейках StringGrid есть текст пример: (пр)(о)(пр)(о) как оставить только (пр)(о) Во всей таблице убрать повторения текста в ячейках ((

Изменение значения в ячейках stringgrid
Здравствуйте, такая проблема, суть задачи в замене столбцов в которых лежат наибольший и наименьший элементы матрицы, никак не могу...

8
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33414 / 21523 / 8237
Регистрация: 22.10.2011
Сообщений: 36,923
Записей в блоге: 12
10.09.2013, 14:59
C++
1
2
3
4
        String s = "Hello world! Hello world! Hello world! Hello world!";
 
        StringGrid1->Canvas->FillRect(Rect);
        DrawText(StringGrid1->Canvas->Handle, s.c_str(), s.Length(),&Rect,DT_WORDBREAK);
3
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.09.2013, 16:47
С новой строки в ячейке StringGrid
0
69 / 69 / 50
Регистрация: 25.03.2012
Сообщений: 241
10.09.2013, 18:59  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
StringGrid1->Cells[2][2]="Hello,my dear friend";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,
                    TGridDrawState State)
{
    StringGrid1->Canvas->FillRect(Rect);
    String Text= StringGrid1->Cells[ACol][ARow];
    StringGrid1->Canvas->TextRect(Rect,Text,TTextFormat()<<tfWordBreak);
}
Avazart спс за способ но проблема остаётся дубликаты друг на друге.
TextRect(Rect,Text,TTextFormat()<<tfWord Break) И объясни что это делает, если не трудно.
У меня Embarcadero® RAD Studio XE Version 15.0.3953.35171
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
10.09.2013, 22:52
TextRect(Rect,Text,TTextFormat()<<tfWord Break) помещает текст в ячейку StringGrid1 с возможностью размещения текста (слов) в виде нескольких строк, если не хватает ширины ячейки, чтобы поместить всё в одной строке (tfWordBreak).
1
69 / 69 / 50
Регистрация: 25.03.2012
Сообщений: 241
11.09.2013, 05:56  [ТС]
Чуть позже обнаружил, что текст дублируется только в фиксированных ячейках(FixedRow) в обычных все норм.Можно как то это обойти? TTextFormat(), где можно прочитать про него, ничего найти толком не могу?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.09.2013, 17:40
Аналог WinApi http://msdn.microsoft.com/en-u... 85%29.aspx
1
69 / 69 / 50
Регистрация: 25.03.2012
Сообщений: 241
11.09.2013, 18:44  [ТС]
Ещё 1 вопрос видел в дельфийском коде обращение к параметрам прямоугольника, для отступов от края рамки как это реализовать в builder?
Delphi
1
2
3
4
5
6
TRect tr
tr.left = Rect.left + pole;
tr.top = Rect.top + pole;
tr.right = Rect.right - pole;
tr.bottom = Rect.bottom - pole;
StringGrid1->ColWidths[ACol] = tr.Width() + pole * 2;
0
6 / 5 / 3
Регистрация: 04.06.2015
Сообщений: 250
Записей в блоге: 1
21.06.2017, 13:05
Если кому еще актуально и нужно, код для переноса строк в стринггриде:
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
      int ARow, TRect &Rect, TGridDrawState State)
{
   String Text;
   Text = StringGrid1->Cells[ACol][ARow];
   StringGrid1->Canvas->FillRect(Rect);
   DrawText(StringGrid1->Canvas->Handle, Text.c_str(), Text.Length(), &Rect, DT_WORDBREAK);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.06.2017, 13:05
Помогаю со студенческими работами здесь

Перенос данных из одного StringGrid в другой StringGrid
Здравствуйте . Есть очередной вопрос с матрицами. Есть два StringGrid. В одном столбце первой матрицы есть цифровые значения. Есть Edit....

Изменить отступ текста в ячейках TStringGrid
Всем привет! Есть таблица TStringGrid, нужно уменьшить отступ текста от края ячейки. В событии таблицы DrawCell пишу: ...

Задача на перенос StringGrid-а
Есть форма на которой три стринггрида и кнопка. Нужно сделать так, чтобы при нажатии на кнопку в тритий стринггрид переносились значения...

Перенос строк между StringGrid
имею 2 таблицы Стринггрид1 StringGrid2 в 1 ввожу числа. хочу с 1 таблицы 1 строку перенести в 2 таблицу 1 строку. и сделать сумму чисел...

Перенос данных из StringGrid в массив
Народ подскажите у меня такая проблемка, мне необходимо из StringGrid_a занести данные в массив а потом построить график в TChart вот мой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru