Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 21.02.2023
Сообщений: 42

Автоматический перенос на вторую строку текста в одной ячейке StringGrid

01.03.2023, 00:51. Показов 2650. Ответов 34

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите, как сделать автоматический или хотя-бы через Enter перенос на другую строку текста в одной ячейке. Возможно повторяюсь по теме, но код который предложили в теме Как сделать перенос текста внутри одной ячейки StringGrid?, переносит тот текст в ячейках, который прописан в редакторе исходного кода, а мне нужно, чтобы он при наборе текста переносился автоматически, в соответствии с шириной ячейки, или через пробел. Как можно это сделать ?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.03.2023, 00:51
Ответы с готовыми решениями:

Автоматический перенос текста из одной ячейки в другую
помогите сделать формулу, есть дата когда человек должен пойти в отпуск, когда дата наступила перенести его автоматически в столбец "в...

Автоматический перенос выходящего за рамки ячейки текста на новую строку
Доброго времени суток, уважаемые форумчане! Вопрос значит такой. Как реализовать перенос текста, который не вмещается в ячейку. ...

Перенос текста на новую строку в конкретной ячейке DataGridView
Доброго дня! Необходимо сделать что бы текст переносился на новую строку только в конкретной ячейке. Я ввожу в ячейку текст, если он...

34
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
06.03.2023, 02:23
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от olnekit Посмотреть сообщение
Знаки встали как положено, благодарю за помощь, но появилась ещё другая проблема. При нажатие на ячейку с текстом кнопкой мыши, текст в ячейке пропадает, как только кнопкой мыши нажимаешь на другу ячейку, текст в ячейке опять появляется. В чём может быть проблема ?
Предположу, что текст у вас имеет в начале кучу пробелов и это дает такой эффект.
0
0 / 0 / 0
Регистрация: 21.02.2023
Сообщений: 42
06.03.2023, 02:41  [ТС]
Цитата Сообщение от Пытливый Посмотреть сообщение
Предположу, что текст у вас имеет в начале кучу пробелов и это дает такой эффект.
Даже без единого пробела текст также пропадает при нажатии.
0
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
06.03.2023, 13:04
Цитата Сообщение от olnekit Посмотреть сообщение
Даже без единого пробела текст также пропадает при нажатии.
А вот у меня не пропадет и даже не получается добиться такого эффекта. Интересно, что я делаю не так?
Можете прикрепить архив с проектом, где такой эффект имеется?
0
0 / 0 / 0
Регистрация: 21.02.2023
Сообщений: 42
07.03.2023, 07:48  [ТС]
Цитата Сообщение от Пытливый Посмотреть сообщение
А вот у меня не пропадет и даже не получается добиться такого эффекта. Интересно, что я делаю не так?
Можете прикрепить архив с проектом, где такой эффект имеется?
При воспроизведении проекта, нажмите на "Загрузить", там текст появится. На любую ячейку нажимаете, и он пропадает. Возможно курсор разукрашен в белый цвет при клики на ячейку.
Вложения
Тип файла: rar Проект.rar (4.95 Мб, 17 просмотров)
0
Модератор
 Аватар для D1973
9951 / 6486 / 2461
Регистрация: 21.01.2014
Сообщений: 27,481
Записей в блоге: 3
07.03.2023, 07:54
Цитата Сообщение от olnekit Посмотреть сообщение
нажмите на "Загрузить"
Вот скриншот окна Вашего приложения. И где это пресловутое "Загрузить"?
Миниатюры
Автоматический перенос на вторую строку текста в одной ячейке StringGrid  
0
 Аватар для mr-Crocodile
3054 / 1673 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
07.03.2023, 10:55
D1973, разверните на всё окно:
0
 Аватар для mr-Crocodile
3054 / 1673 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
07.03.2023, 11:04
Цитата Сообщение от olnekit Посмотреть сообщение
На любую ячейку нажимаете, и он пропадает.
текст выбранной ячейки у тебя белым выделяется. и фон тоже белый. поэтому белым по белому - ничего не видно.
0
Модератор
 Аватар для D1973
9951 / 6486 / 2461
Регистрация: 21.01.2014
Сообщений: 27,481
Записей в блоге: 3
07.03.2023, 11:11
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
разверните на всё окно
Развернул, не совсем дурак еще пока. У меня ноутбук 19" - этого мало оказалось!
Я ведь это опубликовал не потому, что кнопку в проекте найти не могу, а для того, чтобы ТС задумался о масштабировании... Но, чувствую, это вряд ли...
Миниатюры
Автоматический перенос на вторую строку текста в одной ячейке StringGrid  
1
 Аватар для mr-Crocodile
3054 / 1673 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
07.03.2023, 11:17
Цитата Сообщение от D1973 Посмотреть сообщение
У меня ноутбук 19" - этого мало оказалось!
почему такой маленький? 27 дюймов мне хватило, чтобы отобразить полностью

olnekit, чтобы понять, о чём я говорю, замени у себя в коде в строке 86 одну строчку SG.Canvas.Brush.Color := SG.Color;
на этот код:
Delphi
86
87
88
89
90
    //  SG.Canvas.Brush.Color := SG.Color;
  if gdSelected in aState then //для selected использовать заливку серым цветом
     SG.Canvas.Brush.Color := clLtGray
  else
     SG.Canvas.Brush.Color := clWindow;
1
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
07.03.2023, 11:51
Лучший ответ Сообщение было отмечено olnekit как решение

Решение

Так компоненты на форме расставлять не надо иначе проблемы гарантированы почти у всех. Вот я немножко подправил вам форму и теперь она нормально будет отображаться на любом мониторе, без плясок с бубном. Там же я подправил немножко код отрисовки, с учетом особенностей Лазарус. Теперь текст не пропадает.
Вложения
Тип файла: rar 2.rar (55.4 Кб, 16 просмотров)
2
07.03.2023, 13:56

Не по теме:

Цитата Сообщение от Пытливый Посмотреть сообщение
я немножко подправил вам форму
Я бы кнопки на ToolBar заменил бы, а то и вообще на меню

0
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
07.03.2023, 14:02
Цитата Сообщение от D1973 Посмотреть сообщение
Я бы кнопки на ToolBar заменил бы, а то и вообще на меню
Ну это уже к ТС, а я хотел показать, как настроить те же компоненты для корректного отображения при изменении размера формы.
0
0 / 0 / 0
Регистрация: 21.02.2023
Сообщений: 42
09.03.2023, 08:32  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
Развернул, не совсем дурак еще пока. У меня ноутбук 19" - этого мало оказалось!
Программу создавал на устройстве с экраном 24 дюйма, разрешением 1080x1920. На других устройствах не проверял.

Цитата Сообщение от mr-Crocodile Посмотреть сообщение
olnekit, чтобы понять, о чём я говорю, замени у себя в коде в строке 86 одну строчку SG.Canvas.Brush.Color := SG.Color;
Цитата Сообщение от Пытливый Посмотреть сообщение
Так компоненты на форме расставлять не надо иначе проблемы гарантированы почти у всех. Вот я немножко подправил вам форму и теперь она нормально будет отображаться на любом мониторе, без плясок с бубном. Там же я подправил немножко код отрисовки, с учетом особенностей Лазарус. Теперь текст не пропадает.
Понял в чём дело, надо было создать условие если (if) с заливкой цвета в ячейке я как понял ? Форма просто была некорректна отредактирована, но в настройках формы я сразу указал, чтобы открывалась во весь экран. На устройствах с меньшим экраном не проверял.

Всех благодарю за отзыв и за помощь по данной теме !

Добавлено через 3 часа 30 минут
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
текст выбранной ячейки у тебя белым выделяется. и фон тоже белый. поэтому белым по белому - ничего не видно.
Понял причину.
0
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
09.03.2023, 09:22
Цитата Сообщение от olnekit Посмотреть сообщение
разрешением 1080x1920
Я смотрел на таком разрешении, если форму не развернуть на весь экран, то кнопок не видно, а если развернуть, то они у самой нижней границы формы, без отступов. Ну как-то совсем не удобно.

Добавлено через 20 минут
Цитата Сообщение от olnekit Посмотреть сообщение
надо было создать условие если (if) с заливкой цвета в ячейке я как понял ?
По хорошему, нужно проверять состояние aState и отрисовывать содержимое в зависимости от него. Можно поменять параметры для выделенной ячейки:
Delphi
1
2
3
4
5
6
7
    if gdSelected in aState then begin
      Canvas.Pen.Style := psDot;
      Canvas.Brush.Color := clYellow; // Меняем цвет фона .
      Canvas.Pen.Color := clRed;
      aRect.Inflate(0, 0, -1, -1); // Уменьшить ширину и высоту, иначе, не видно правой и нижней части рамки
      Canvas.Rectangle(aRect); // Рисуем рамку выделения ячейки
    end;
Можно отключить DefaultDrawing и вручную отрисовывать все ячейки.
0
0 / 0 / 0
Регистрация: 21.02.2023
Сообщений: 42
13.03.2023, 00:45  [ТС]
Цитата Сообщение от AzAtom Посмотреть сообщение
По хорошему, нужно проверять состояние aState и отрисовывать содержимое в зависимости от него. Можно поменять параметры для выделенной ячейки:
Понял, теперь буду знать, благодарю )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.03.2023, 00:45

Как сделать перенос текста внутри одной ячейки StringGrid?
Как сделать перенос текста внутри одной ячейки StringGrid? Чтобы текст был в несколько строк в одной ячейке. Может свойство какое есть? Чет...

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

Выделить вторую строку в ячейке таблицы | Word
Здравствуйте Коллеги! Прошу помощи в решении следующей задачи. Есть таблица в ней ячейка содержит текст из двух строк. Необходимо...

Автоматический перенос с одной таблице в word в другую
Неделю ломаю голову как сделать. Есть онлайн программа, которая создает ценники по выбранному наименованию товара, сохраняет в pdf...

Автоматический перенос текст с одной страницы на другую
Здравствуйте. Возникла такая проблема: я ежедневно добавляю новый текст на страницу, при этом часть старого текста переношу на следующую...


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

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru