powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / EditBox в Grid - небольшая косметическая проблема
20 сообщений из 20, страница 1 из 1
EditBox в Grid - небольшая косметическая проблема
    #35413370
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Если вставить в грид едитбокс, то если у грида не AllowCellSelection, при перемещении курсора по строкам грида текущая строка выделяется по-стандарту синим цветом. И тут какой прикол - цвет текста в текстбоксах неактивных строк - черный на белом, по стандарту так. А когда строка становится активной, фон текстбоксов становится синим, а текст в них - белым! Так вот, как с едитбоксом сделать чтобы так же было?
Если едитбоксово свойство Opaque = Т, то в "синей" строке получаются белые "прерывания" едитами. Если Opaque = F, то прерываний нет, активная строка вся синяя, но цвет текста в едитах всегда черный, а это на синем фоне... Если дать колонке Sparse = T, то с цветом текста в едите все как и у текстбоксов, т.е. в активной строке он становится белым, но при этом если высота ячейки достаточна для вывода текста в несколько строк, этого не происходит, текст в едитах выводится в одну строку по середине - само собой так же как и у текстбоксов. Если F - текст выводится в несколько строк (чего и добиваюсь), но всегда черным цветом.

А может есть возможность вывода с переносом у текстбоксов (типа св-ва WordWrap как у Label-ов)?

вфп9

сасибо
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35413431
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нормально editbox показывает в гриде при Allowcellselection=.f. :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
with Editbox
.BackColor = COLOR_WHITE
.BackStyle =  0 
.BorderStyle =  0 
.ForeColor = COLOR_BLACK
.ScrollBars =  0 
.SpecialEffect =  1 
.Margin =  1 
.ReadOnly = .t.
endwith

with grid
.Allowcellselection=.f.
.BackColor = COLOR_WHITE
.ForeColor = COLOR_BLACK
.HighlightBackColor = COLOR_BLUE
.HighlightForeColor = COLOR_WHITE
.HighlightStyle =  2 
.SelectedItemBackColor = COLOR_BLUE
.SelectedItemForeColor = COLOR_WHITE
endwith
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35413674
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все настройки как и у Вас (кроме грид.HighlightStyle, что ничего не меняло), но как я писал:
Если дать колонке Sparse = T , то с цветом текста в едите все как и у текстбоксов, т.е. в активной строке он становится белым, но при этом если высота ячейки достаточна для вывода текста в несколько строк, этого не происходит, текст в едитах выводится в одну строку по середине - само собой так же как и у текстбоксов . Если Sparse = F - текст в едитбоксах выводится в несколько строк (чего и добиваюсь), но всегда черным цветом.
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414152
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давайте тестовый примерчик, посмотрим. И ещё, какое значение Editbox.Margin?
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414226
CTAC-KOВсе настройки как и у Вас (кроме грид.HighlightStyle, что ничего не меняло), но как я писал:
Если дать колонке Sparse = T , то с цветом текста в едите все как и у текстбоксов, т.е. в активной строке он становится белым, но при этом если высота ячейки достаточна для вывода текста в несколько строк, этого не происходит, текст в едитах выводится в одну строку по середине - само собой так же как и у текстбоксов . Если Sparse = F - текст в едитбоксах выводится в несколько строк (чего и добиваюсь), но всегда черным цветом.
И что тут необычного или недокументированного?
HelpThe settings for the Sparse property are as follows:
Setting Description
True (.T.)
(Default) Only the Column's active cell uses the CurrentControl property setting to accept and display data. The other cells use the TextBox control if the current control for the cells is not the container object or a command button. The other cells remain empty if the current control for the cells is the container object or a command button.

False (.F.)
All cells in the Column object use the CurrentControl property setting to display data; the active cell accepts data.
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414465
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видимо ничего необычного, но меня не это интересует, а как добиться определенного вида от едитбоксов в гриде.
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414479
CTAC-KOвидимо ничего необычного, но меня не это интересует, а как добиться определенного вида от едитбоксов в гриде.
Надо полагать изменением свойств, связанных с цветами, этого Editbox'а.
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414551
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваше предположение с одной стороны правильно. К примеру, в метод AfterRowColChange я сканю весь грид на предмет едитбоксов в нем и выставляю цвет текста для текущей строки в едитах - белый. Только вот и во всех остальных едитах по всему гриду цвет текста также станет белым и в итоге текст я буду видеть только в текущей строке :)

По просьбе прилагаю пример.
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414566
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть, впрочем, менингиный вариант - играть в динамикколор, не используя подсветку вообще. Тогда для текущей строки для всех контролов можно будет выставлят свои цвета...
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414577
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XAndyкакое значение Editbox.Margin?я использовал 0 (пробовал и 1 и 2), но Вы загляните в тестовый примерчик и все сами увидите и поймете...
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414591
CTAC-KOесть, впрочем, менингиный вариант - играть в динамикколор, не используя подсветку вообще. Тогда для текущей строки для всех контролов можно будет выставлят свои цвета...
Вот для определения цвета контрола одной конкретной строки и служат свойства dynamic*. Прочие "цветовые" свойства как раз и служат для определения цвета всех строк.
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414625
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
та да. я это прекрасно понимаю, однако надеюсь что можно стандартной подсветкой обойтись.
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414642
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во! придумал!
Дал такие настройки цветов выделения, чтобы оставаться при ченом цвете текста!
Код: plaintext
1.
2.
3.
4.
with grid1
.HighlightBackColor = RGB( 128 , 255 , 255 )
.HighlightForeColor =  0 
endwith
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414685
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче, как я понял, проблема заключается в следующем:
1) если в колонке с едитом выставлено Sparse = .F., то цвета выделения заданные в гриде на такую колонку не распространяются, потому текст в едитах остается черным, но за то текст в ячейке располагается по всей высоте ячейки, т.е. в несколько строк.
2) если Sparse = .Т., то цвета выделения заданные в гриде на такую колонку распространяются, потому текст в едитах ведет себя так же как и в текстбоксах, но при этом почему-то текст в ячейке располагается в одну строку.

т.е. по большому счету, что-то не дает при Sparse = .Т. располагать текст в едитах в несколько строк - вот собственно в этом-то и проблема. Что же это за "что-то" такое?
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414697
CTAC-KOт.е. по большому счету, что-то не дает при Sparse = .Т. располагать текст в едитах в несколько строк - вот собственно в этом-то и проблема. Что же это за "что-то" такое?
Приведенную мной цитату из хелпа читал? Внимательно читал? Может еще раз перечитать?
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35414749
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сие?
Only the Column's active cell uses the CurrentControl property setting to accept and display data

дейстивтельно, если тыкнуть в едитбокс, при Sparse=T, выводящий data в одну строку, то он начинает display data в несколько строк, т.к. становится active cell и соотвецтвенно uses the CurrentControl property setting to accept and display data...
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35415149
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CTAC-KO
У меня пример работает нормально (см. скриншот). Подозреваю, дело в шрифте. Шрифт какой и используется? (Кстати, грид ведет себя хорошо, когда находится в контейнере)
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35416438
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык ёлы-палы! Вы издеваетесь, чтоли? Где ж у Вас на скрине указанное Вами же
Код: plaintext
1.
.HighlightBackColor = COLOR_BLUE
.HighlightForeColor = COLOR_WHITE
если цвет хайлайта - серый, а текст - черный??? К такой идее выделения я как раз и сам дошел, когда написал:
CTAC-KOво! придумал!
Дал такие настройки цвета выделения, чтобы оставаться при черном цвете текста!
Код: plaintext
1.
2.
3.
4.
with grid1
.HighlightBackColor = RGB( 128 , 255 , 255 )
.HighlightForeColor =  0 
endwith
пример вот так выглядит
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35416718
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CTAC-KOдык ёлы-палы! Вы издеваетесь, чтоли? Где ж у Вас на скрине указанное Вами же
Код: plaintext
1.
.HighlightBackColor = COLOR_BLUE
.HighlightForeColor = COLOR_WHITE

И не думал :)
Это твой пример у меня так выглядит :)
...
Рейтинг: 0 / 0
EditBox в Grid - небольшая косметическая проблема
    #35417273
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видать в винде у Вас, батенька, цветовая схема ни разу не стандартная. Я еще вчера об этом заподозрил. Хотя ведь при чем тут это, если указаны цветовые расклады для хайлайта... У Вас, поди, где-то что-то перебивает настройки форм/грида и всего остального на свои, что характерно как раз для глобальной виндовой цветовой схемы.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / EditBox в Grid - небольшая косметическая проблема
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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