Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3

Максимально быстро определить длину слова в пикселях

14.12.2015, 15:20. Показов 1334. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!!!!
Давно хотел создать такую тему и вот настал момент. Хотел спросить как можно быстро определить максимально длинное слово в пикселях в DBGrid или StringGrid и вовсех сеткоподобных. Многие из вас скажут, что можно пройтись циклом по строкам и через свойство TextWidth() с условием определить максимальное в пикселях слово! Да это так, но если к примеру 1000 или больше строк и пробегать по ним циклом это слишком долго, а если у тебя 10 полей и в каждом поле тоже 1000 строк, то это сколько ж времени понадобиться для поиска в каждом поле максимально длинного слова в пикселях. Так вот может есть какой-нить другой способ нахождения максимально длинного слова в пикселях, даже не используя цикла?

Заранее благодарен за ответ.

P.S Не сочтите тему глупой.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2015, 15:20
Ответы с готовыми решениями:

Определить длину строки в пикселях
Знаю, что вопрос сначала покажется простым (а может даже и тупым:)). Стандартно для расчета длины использую вот такую функцию: void...

Ввести фамилию, имя и отчество одной строкой, определить длину каждого слова (XE4, визуальный режим)
добрый вечер, уважаемые программисты, а также всем людям, который любят программирование. помогите, пожалуйста, написать программу на языке...

Максимально быстро достать все уникальные слова из файла
Добрый день! Задача - достать все уникальные слова из файла. Словом считается любая последовательность из кириллических букв,...

7
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
14.12.2015, 15:50
Sasha, а это случаем нужно не для автопостройки ширины колонок в таблицах?
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
14.12.2015, 16:01
Думаю, что знать в какой из ячеек самый длинный (в пикселях) текст, не пройдясь по всем, невозможно. Даже если и есть встроенный механизм.

Другое дело, что не обязательно проходить каждый раз по ячейкам, содержимое которых не изменилось.
Т. е. достаточно хранить максимальную длину в переменной и делать сравнение с ней при изменении текста ячейки.
Также придётся снова пройтись по всем ячейкам, если будет изменёно содержимое в той, в которой ранее был самый длинный текст.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
14.12.2015, 16:21  [ТС]
Цитата Сообщение от Dinkin Посмотреть сообщение
Sasha, а это случаем нужно не для автопостройки ширины колонок в таблицах?
Да именно для этого
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
14.12.2015, 16:32
тогда уточнение такое, в ячейках текст сплошняком или так же по строкам?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
14.12.2015, 16:47  [ТС]
Цитата Сообщение от Dinkin Посмотреть сообщение
в ячейках текст сплошняком или так же по строкам
По строкам
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
14.12.2015, 17:12
Ну вот ниже код, он смотрит максимальную длину вывода слова по ячейками протестировал его на таблице с 10000 строками и 20 колонками, вроде все ровно вычисляет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    int ColSize = 0, MaxColSize = 0;
    for (int j = 0; j <sg->ColCount; j++)
     {
        for (int i = 0; i < sg->RowCount; i++)
         {
            ColSize = sg->Canvas->TextWidth(sg->Cells[j][i]);
            if (ColSize > MaxColSize)   MaxColSize = ColSize;
 
        }
        if (MaxColSize == 0)
          sg->ColWidths[j] = 125;
           else
              sg->ColWidths[j] = MaxColSize +   sg->GridLineWidth + 10;
 
        ColSize = 0;
        MaxColSize = 0;
     }
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
14.12.2015, 17:26  [ТС]
Dinkin, я это знал. я вопрос задал немного по другому.
Цитата Сообщение от Sasha Посмотреть сообщение
так вот может есть какой-нить другой способ нахождения максимально длинного слова в пикселях, даже не используя цикла?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2015, 17:26
Помогаю со студенческими работами здесь

Определить длину и позицию слова, которое имеет наименьшую длину в строке
Определить длину и позицию слова, которое имеет наименьшую длину в строке. Строки Пожалуйста помогите!

Определить среднюю длину слова в введенной текстовой строке, символы пунктуации на длину не влияют
определить среднюю длину слова в введенной текстовой строке, символы пунктуации на длину не влияют. Скажите, в чем здесь ошибка??? ...

Определить длину введенного слова. Вставить звездочки в начале и в конце слова
1. Определить длину введенного слова. Вставить звездочки в начале и в конце слова. 2. Из предложения S1 в переменную S скопировать четыре...

Определить длину слова, стоящего на N-ом месте и вывести все слова, состоящие из такого же количества символов
Задача № 1. Дана символьная строка и натуральное число N. Слово - последовательность символов между пробелами, не содержащая пробелы внутри...

Определить длину слова, стоящего на N-ом месте и вывести все слова, состоящие из такого же количества символов
Битовы операции + pchar Определить длину слова, стоящего на N-ом месте и вывести все слова, состоящие из такого же количества символов,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru