:: Visual Foxpro, Foxpro for DOS
Выравнивание текста в колонке грида
FaustGreen
Автор

Сообщений: 116
Дата регистрации: 26.06.2023
Есть колонка в гриде:
thisform.grid1.column1.ControlSource = cursor.name"
Тип поля "name" - С(50).
Если для этой колонки задать выравнивание "middle center", то наблюдается поведение:
1) При небольшой ширине калонки текст выравнивается по левой стороне.
2) При большой ширине колонки текст выравниает ПРИМЕРНО по центру.

Как сделать, чтобы независимо от ширины колонки выравнивание было по центру?

Этот код помогает, но как то некрасиво
thisform.grid1.column1.ControlSource = ALLTRIM(cursor.name)"



Исправлено 3 раз(а). Последнее : FaustGreen, 24.05.24 13:50
Ratings: 0 negative/0 positive
Re: Выравнивание текста в колонке грида
AndyNigmatec

Сообщений: 1590
Откуда: Волгоград
Дата регистрации: 28.06.2015
А что некрасивого то? ну я бы RTRIM() использовал - но суть та же ... еще есть вариант - тип поля не c(50) а v(50)
Ratings: 0 negative/0 positive
Re: Выравнивание текста в колонке грида
akvvohinc

Сообщений: 4256
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Этот код помогает, но как то некрасиво
Непонятно, что именно некрасиво - использовать функцию ALLTRIM() или результат все равно плохо центрируется (не совсем по центру) .
Если первое, то именно так и решается вопрос - ведь центрироваться, видимо, должна строка без учета "лишних" пробелов - они же тоже занимают некоторое место в поле.
Ratings: 0 negative/0 positive
Re: Выравнивание текста в колонке грида
FaustGreen
Автор

Сообщений: 116
Дата регистрации: 26.06.2023
Мой внутренний перфекционист протестует )
Я не представляю себе ситуации, когда мне в таблице в текстовом поле понадобится хранить что-то типа такого: "Строка____", где "____" - это пробелы.
А по сему программа должна сама обрезать все лишнее.

Дефолтное состояние строки в колонке грида по мне должно быть - строка с обрезанными пробелами (так как это сосотяние мы будем применять наиболее часто),
а если нам по какой то неведомой причине захочется хранить еще и пробелы (перед или после строки), то для этого должна быть какая то отдельная настройка.
Но не наооборот.

А так мне приходится каждый раз дописывать лишние ALLTRIM()/RTRIM(), чтобы добиться дефолтного, в подавляющем количестве случаев, поведения.

ps. Под "захочется хранить еще и пробелы " я тут имел ввиду отображение в гриде, а не способ хранения в памяти.



Исправлено 2 раз(а). Последнее : FaustGreen, 24.05.24 15:51
Ratings: 0 negative/0 positive
Re: Выравнивание текста в колонке грида
FaustGreen
Автор

Сообщений: 116
Дата регистрации: 26.06.2023
Т.е. я бы хотел, чтобы по умолчанию все строки в текстовых колонках грида автоматически отображались без лишних пробелов.
Подумал, может кто то делает это как то подругому, а не через *TRIM().
Ratings: 0 negative/0 positive
Re: Выравнивание текста в колонке грида
of63

Сообщений: 25406
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
FaustGreen
Мой внутренний перфекционист протестует )
Я не представляю себе ситуации, когда мне в таблице в текстовом поле понадобится хранить что-то типа такого: "Строка____", где "____" - это пробелы.
А по сему программа должна сама обрезать все лишнее.

Дефолтное состояние строки в колонке грида по мне должно быть - строка с обрезанными пробелами (так как это сосотяние мы будем применять наиболее часто),
а если нам по какой то неведомой причине захочется хранить еще и пробелы (перед или после строки), то для этого должна быть какая то отдельная настройка.
Но не наооборот.

А так мне приходится каждый раз дописывать лишние ALLTRIM()/RTRIM(), чтобы добиться дефолтного, в подавляющем количестве случаев, поведения.

ps. Под "захочется хранить еще и пробелы " я тут имел ввиду отображение в гриде, а не способ хранения в памяти.

() Ни в коем случае в полях таблиц БД не нужно хранить текст числового изображения (уже вопрос, чьего?) "изображение". Поверьте старому програмеру
Есть тип - число, к тому же в фоксе интегер (32)?

> А так мне приходится каждый раз дописывать лишние ALLTRIM()/RTRIM(), чтобы добиться дефолтного, в подавляющем количестве случаев, поведения.
Да, и с чисовыми полями и с символьнымы нужно, придется поепаться, если будешь пользоваться фоксом. Вариантов нет.
Ratings: 0 negative/0 positive
Re: Выравнивание текста в колонке грида
of63

Сообщений: 25406
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> программа должна сама обрезать все лишнее.
У проги, типа фокса, есть и изобразительная часть (и встроенные функции) и визуальная, в полях, которые мы ставим в наши обьекты при создании окна для юзера... Епаться надо лично, а не обсуждать пользу епли/или соседей, которые готовые продуты создали, или не создали, а провалялисб в кровати с бутылкой вина.
Ratings: 0 negative/0 positive
Re: Выравнивание текста в колонке грида
AndyNigmatec

Сообщений: 1590
Откуда: Волгоград
Дата регистрации: 28.06.2015
Про числа не понял к чему, ТС же написал - поле с(50).
Ну и особых "танцев" не вижу с использованием ALLTRIM(), единственное неудобство что при этом всплывающая подсказка (если текст не умещается по ширине столбца грида) не всплывает.

Еще такой момент - мне вот как-то всегда эстетически претило выравнивание текста по центру по горизонтали - особенно если длина сильно разная в записях ... ну убого как-то смотрится, но это моя имха



Исправлено 1 раз(а). Последнее : AndyNigmatec, 24.05.24 19:27
Ratings: 0 negative/1 positive
Re: Выравнивание текста в колонке грида
of63

Сообщений: 25406
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Ты про ф-ию фокса PADC() ?...
АндрейЮ эта функция сейчас тебе не пригодится, это функи,хобрважения/печати... <censored>писать известное )



Исправлено 1 раз(а). Последнее : ssa, 25.05.24 22:27
Ratings: 0 negative/0 positive
Re: Выравнивание текста в колонке грида
akvvohinc

Сообщений: 4256
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Т.е. я бы хотел, чтобы по умолчанию все строки в текстовых колонках грида автоматически отображались без лишних пробелов.
Умолчания Фокса зашиты в базовых классах его объектов.
А все свои умолчания программисты записывают в свои классы, производные от базовых.

Вот и вам ничто не мешает создать свой класс для Column, заполнив в нём свойство Format значением "T".
Ratings: 0 negative/0 positive
Re: Выравнивание текста в колонке грида
Taran

Сообщений: 13688
Откуда: Красноярск
Дата регистрации: 16.01.2008
AndyNigmatec
Еще такой момент - мне вот как-то всегда эстетически претило выравнивание текста по центру по горизонтали - особенно если длина сильно разная в записях ... ну убого как-то смотрится, но это моя имха

И даже вне грида. Не люблю центровку. Слишком дорого обходится если текст не помещается в textbox.
Ratings: 0 negative/0 positive
Re: Выравнивание текста в колонке грида
FaustGreen
Автор

Сообщений: 116
Дата регистрации: 26.06.2023
AndyNigmatec
Еще такой момент - мне вот как-то всегда эстетически претило выравнивание текста по центру по горизонтали - особенно если длина сильно разная в записях ... ну убого как-то смотрится, но это моя имха

В целом, да, но бывают исключения.
Пример: поле "код", символьное, 10 знаков (ширина для каждой строки постоянная). Заголовок колонки чуть шире данных в колонке.
При таком раскладе центрирование выглядит посимпатичнее (ИМХО).

| Код продукта |
|8597455454    |
|8597455455    |
|8597455456    |
|8597455457    |

| Код продукта |
|  8597455454  |
|  8597455455  |
|  8597455456  |
|  8597455457  |

Плюс бывают запросы от пользователей типа:
После колонки с цифровыми данными (выравнивание по правой части), идет колонка с текстовыми данными (выравнивание по левой части).
Данные "сливаются", сделайте нам небольшой пробел между ними.

|  2536849|Коляска детская|

| 2536849 |Коляска детская|



Исправлено 5 раз(а). Последнее : FaustGreen, 25.05.24 11:31
Ratings: 0 negative/0 positive
Re: Выравнивание текста в колонке грида
sphinx

Сообщений: 31392
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Цитата:
При таком раскладе центрирование выглядит посимпатичнее (ИМХО).

Если код всегда 10 цифр - я бы название колонки сделал бы КодПродукт и оставил бы выравнивание слева.




------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 19 (Гостей: 19)

© 2000-2024 Fox Club 
Яндекс.Метрика