:: Visual Foxpro, Foxpro for DOS
Можно ли сделать внешний вид Grid'а совсем плоским
rvc44
Автор

Сообщений: 2211
Откуда: Тамбов
Дата регистрации: 06.12.2005
Может я чего не знаю?
Можно ли сделать внешний вид стандартного Grid'а СОВСЕМ плоским, например, при помощи GDI+?
ComponentOne True DBGrid и Microsoft Hierarchical Flex Grid позволяют это сделать!
Иначе, как ни крути, объемность Grid'у придает его заголовок.
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
h.i.a.

Сообщений: 4002
Откуда: Мурманск/Спб/Мск
Дата регистрации: 18.11.2005
Стандартными средствами "площе" не получается.
[attachment 7074 grid.jpg]
Если не ищешь простых путей, можно нарисовать свой скроллбар и заголовок


------------------
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Поставь в винде тему с плоскими гридами и любуйся полностью плоским гридом.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
rvc44
Автор

Сообщений: 2211
Откуда: Тамбов
Дата регистрации: 06.12.2005
Да нет, вполне пойдет! Просто сначала цвета подобрал неудачные, но посмотрел на твои
RGB(196,242,255) и RGB(255,254,195) и решил все оставить как есть!
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
rvc44
Автор

Сообщений: 2211
Откуда: Тамбов
Дата регистрации: 06.12.2005
В итоге сделал так:
[attachment 7076 grid1.JPG]
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
Myhailo

Сообщений: 750
Дата регистрации: 07.02.2006
Уважаемый rvc44
Как построить такую красивую форму, можно пример кода в студию или личку, код хороший ему ничего не будет
Спасибо.
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
h.i.a.

Сообщений: 4002
Откуда: Мурманск/Спб/Мск
Дата регистрации: 18.11.2005
Имхо, папки в дереве лучше без линий показывать
[attachment 7077 grid2.jpg]


------------------
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
Рома

Сообщений: 1079
Дата регистрации: 06.06.2001
Myhailo
Уважаемый rvc44 Как построить такую красивую форму, можно пример кода в студию или личку, код хороший ему ничего не будет
Спасибо.

Я так понимаю, ипользвалось www.codeplex.com
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Myhailo
Уважаемый rvc44 Как построить такую красивую форму, можно пример кода в студию или личку, код хороший ему ничего не будет
Спасибо.
А в чем проблема-то? Все всегда элементарно делается руками. Можно же просто даже только по внешнему виду сделать какую угодно свою собственную форму - совершенно не зная кода, выводящего подобную форму у кого-то другого, если уж так она понравилась.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
rvc44
Автор

Сообщений: 2211
Откуда: Тамбов
Дата регистрации: 06.12.2005
Да, использовались возможности упомянутой Sedna (VFPX). Зайдите по указанной выше ссылке, там есть всё необходимое. Файл Themes.xml придется таскать за своим проектом. Рулить атрибутами Grid header, в зависимости от установленной темы, можно и без этого, например, так:
#Define WIN_XP ((OS(3) == '5') and (val( OS(4) ) > 0))
*-- Если программа запущена под Windows XP или выше
If (VAL(OS(3)) >= 6 ) OR (VAL(OS(3)) = 5 AND VAL(OS(4)) >= 1 )
*-- Поддержка тем в Windows XP
DECLARE LONG IsThemeActive IN uxTheme
*-- Поддержка тем в Windows XP
DECLARE LONG GetCurrentThemeName IN uxTheme ;
STRING @ O_pwszThemeFileName, INTEGER nMaxNameChars, ;
STRING @ O_pwszColorBuff, INTEGER nMaxColorChars, ;
STRING @ O_pwszSizeBuff, INTEGER nMaxSizeChars
If (IsThemeActive() == 1) && WinAPI Function
lw_ThemeFileName = Space( MAX_WCHAR )
lw_ColorBuff = Space( MAX_WCHAR )
lw_SizeBuff = Space( MAX_WCHAR )
ll_Themed = (GetCurrentThemeName( @lw_ThemeFileName, MAX_WCHAR, ;
@lw_ColorBuff, MAX_WCHAR, ;
@lw_SizeBuff, MAX_WCHAR ) == 0)
If ll_Themed
*-- C:\WINDOWS\Resources\themes\Luna\Luna.msstyles
ThisForm.ThemeFileName = MakeANSI( lw_ThemeFileName )
lc_ColorBuff = MakeANSI( lw_ColorBuff )
Do Case
Case (lc_ColorBuff == 'NormalColor')
ThisForm.ThemeColorScheme = 'Default'
With ThisForm.pgfProperties.ThemedTitlePage1.UserControls.SprGrid
STORE RGB(210,229,255) TO .Column1.Header1.BackColor, .Column2.Header1.BackColor, ;
.Column3.Header1.BackColor, .Column4.Header1.BackColor
STORE RGB(0,0,0) TO .Column1.Header1.ForeColor, .Column2.Header1.ForeColor, ;
.Column3.Header1.ForeColor, .Column4.Header1.ForeColor
EndWith
Case (lc_ColorBuff == 'Metallic')
ThisForm.ThemeColorScheme = 'Silver'
With ThisForm.pgfProperties.ThemedTitlePage1.UserControls.SprGrid
STORE RGB(219,220,232) TO .Column1.Header1.BackColor, .Column2.Header1.BackColor, ;
.Column3.Header1.BackColor, .Column4.Header1.BackColor
STORE RGB(0,0,0) TO .Column1.Header1.ForeColor, .Column2.Header1.ForeColor, ;
.Column3.Header1.ForeColor, .Column4.Header1.ForeColor
EndWith
Otherwise
ThisForm.ThemeColorScheme = 'Olive Green'
With ThisForm.pgfProperties.ThemedTitlePage1.UserControls.SprGrid
STORE RGB(228,235,200) TO .Column1.Header1.BackColor, .Column2.Header1.BackColor, ;
.Column3.Header1.BackColor, .Column4.Header1.BackColor
STORE RGB(0,0,0) TO .Column1.Header1.ForeColor, .Column2.Header1.ForeColor, ;
.Column3.Header1.ForeColor, .Column4.Header1.ForeColor
EndWith
Endcase
lc_SizeBuff = MakeANSI( lw_SizeBuff ) && MakeANSI в main.prg
Do Case
Case (lc_SizeBuff == 'NormalSize')
ThisForm.ThemeFontSize = 'Normal' && 'Normal'
Case (lc_SizeBuff == 'LargeFonts')
ThisForm.ThemeFontSize = 'Large Fonts'
Otherwise
ThisForm.ThemeFontSize = 'Extra Large Fonts'
Endcase
EndIf
Else
* 'Theme is not active ( Windows Classic )'
With ThisForm.pgfProperties.ThemedTitlePage1.UserControls.SprGrid
STORE RGB(210,229,255) TO .Column1.Header1.BackColor, .Column2.Header1.BackColor, ;
.Column3.Header1.BackColor, .Column4.Header1.BackColor
STORE RGB(32,77,137) TO .Column1.Header1.ForeColor, .Column2.Header1.ForeColor, ;
.Column3.Header1.ForeColor, .Column4.Header1.ForeColor
EndWith
EndIf
EndIf
*
* Процедура преобразования строки в кодировке Unicode (wide characters) в double-byte characters, а затем в single-byte characters (ANSI-строку)
PROCEDURE MakeANSI( tw_String )
LOCAL lc_String, ln_Pos
lc_String = Strconv( Strconv( tw_String, 6 ), 2 )
ln_Pos = At( Chr(0), lc_String )
If (ln_Pos > 0)
lc_String = Left( lc_String, ln_Pos - 1 )
Endif
Return lc_String
ENDPROC
Установку атрибутов столбцов, лучше заменить на цикл FOR EACH и поместить всё это в класс.
Кто имеет возможность протестировать этот код на Vista, напишите свои отзывы и предложения.
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
rvc44
Да, использовались возможности упомянутой Sedna (VFPX). Зайдите по указанной выше ссылке, там есть всё необходимое. Файл Themes.xml придется таскать за своим проектом.
Маленький вопросик типа.
Пока не смотрел еще саму эту штуку. Мельком глянул код просто.
А возможно ли в ней скажем подключать - только для своего приложения! - установленную, но неактивную тему? Или это из области фантастики?
А так неплохо бы было.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Можно.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Тогда безусловно это вещь супер!
А то недавно как-то наткнулся на любопытные темы - в них и кнопки и грид довольно-таки оригинальные. Вот тут показаны некоторые скриншоты: forum.foxclub.ru
Единственно, что мешает их использовать - в Windows и других программах интерфейс получается не совсем привычным, что для других пользователей может оказаться неприемлемым.
Поэтому возможность подключать тему, помимо активной на данный момент для самой Windows, была бы очень даже неплохой.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
rvc44
Автор

Сообщений: 2211
Откуда: Тамбов
Дата регистрации: 06.12.2005
Интересно сегодня было наблюдать (а теперь за проектом приходится таскать файл Themes.xml), что при инсталляции программы с "такой красивой формой" (см.выше) на 2 компьютера с Vista: на одном все сразу заработало, а на другом - нет, выдав ошибку:
[attachment 7089 VistaMsXml4.JPG]

Подскажите, пожалуйста, какой пакет поддержки XML лучше всего доустановить на эту Висту?
... и что теперь, впредь, дополнительно добавлять в InstallShield при создании дистрибутива для поддержки полноценной работы с XML, там, где её нет ?

Я просто был уверен, что поддержка XML есть в Vista по-умолчанию! НИ-ФИ-ГА!

P.S. Еще интересно, что оба компьютера с Vista покупались в одно и то же время, в одной и той же фирме в славном г.Воронеже, и оба - абсолютно новые!



Исправлено 1 раз(а). Последнее : rvc44, 23.10.08 18:43
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
rvc44
Я просто был уверен, что поддержка XML есть в Vista по-умолчанию! НИ-ФИ-ГА!
Ну, вы, блин, даете! (С) Как быстро некоторые делают далеко идущие выводы...
Поддержка XML в Висте есть. Только она версии 6. А в фоксовых тулзах, с легкой руки мелкософта, явно прописывают создание парсера конкретно 4 версии. Только из-за этого надо или тащить на Висту MSXMLPaser 4 или искать в исходниках и убирать привязку именно к 4 версии.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
rvc44
Автор

Сообщений: 2211
Откуда: Тамбов
Дата регистрации: 06.12.2005
Странно, почему тогда на другом компьютере с Vista запустилось? Оба ведь из коробки!

Цитата:
Поддержка XML в Висте есть. Только она версии 6.
А типа, шестая четвертую не понимает?
А завтра будет 8-я, которая не будет понимать ни 6-ю, ни 4-ю?
Полный бардак и анархия!
Вот если бы был бы один MSXML Paser 4, который не понимает 6-ю версию - это было бы логично,
а так логики нет: получается программы можно разрабатывать только на час/день/полгода/год?
А что потом? Потом они работать перестанут, после выхода очередной Windows 7?
Неужели ничего нельзя придумать, как это обойти, кроме как прописывать в исходниках конкретную версию парсера?

И вообще, в пректе работа с Themes.xml целиком идет через:
m.loXA = Createobject("XMLAdapter")
Что не включено в дистрибутив для поддержки XMLAdapter?
Или класс XMLAdapter предполагает наличие обязательно MSXML Paser версии именно 4?
В help'е по этому поводу я ничего не нашел!



Исправлено 3 раз(а). Последнее : rvc44, 24.10.08 09:00
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
VictorK

Сообщений: 211
Откуда: Москва
Дата регистрации: 05.06.2007
Vista распределяет MSXML. Использует разные версия для разных целей. Для решения этой проблемы достаточно запустить Windows Update. Пакет обновления - KB941833. Я сталкивался с этой проблемой. Да и нетолько VFP требует этот пакет,но и Nero, и другие приложения работающие с XML, которые еще не адаптированны для Vista или используют для совместимости.
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
rvc44
Странно, почему тогда на другом компьютере с Vista запустилось? Оба ведь из коробки!
Цитата:
Поддержка XML в Висте есть. Только она версии 6.
А типа, шестая четвертую не понимает?
А завтра будет 8-я, которая не будет понимать ни 6-ю, ни 4-ю?
Полный бардак и анархия!
Вот если бы был бы один MSXML Paser 4, который не понимает 6-ю версию - это было бы логично,
а так логики нет: получается программы можно разрабатывать только на час/день/полгода/год?
А что потом? Потом они работать перестанут, после выхода очередной Windows 7?
Неужели ничего нельзя придумать, как это обойти, кроме как прописывать в исходниках конкретную версию парсера?

И вообще, в пректе работа с Themes.xml целиком идет через:
m.loXA = Createobject("XMLAdapter")
Что не включено в дистрибутив для поддержки XMLAdapter?
Или класс XMLAdapter предполагает наличие обязательно MSXML Paser версии именно 4?
В help'е по этому поводу я ничего не нашел!
Для плохо умеющих читать повторяю еще раз:
Цитата:
А в фоксовых тулзах, с легкой руки мелкософта, явно прописывают создание парсера конкретно 4 версии


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
rvc44
Автор

Сообщений: 2211
Откуда: Тамбов
Дата регистрации: 06.12.2005
2ssa
Да прочитал я, прочитал! Хочется, конечно, знать Ваш источник...
Но это не главное. Главное - какой вариант из 3 имеющихся включать в сборку дистрибутива:
MSXML 4.0 C:\Program Files\Common Files\Merge Modules\msxml4sxs32.msm 4.20.9818.0
msxml4.Manifest 3478
msxml4.cat 7239
msxml4.dll 1233920 4.20.9818.0
msxml4r.Manifest 500
msxml4r.cat 7243
msxml4r.dll 82432 4.10.9404.0
MSXML 4.0 C:\Program Files\Common Files\Merge Modules\msxml4sys32.msm 4.20.9818.0
msxml4.dll 1233920 4.20.9818.0
msxml4a.dll 44544 4.10.9404.0
msxml4r.dll 82432 4.10.9404.0
XML 4.0 C:\Program Files\Common Files\Merge Modules\msxml4.msm 4.10.9404.0
msxml4.Manifest 3489
msxml4.cat 9675
msxml4.dll 1230336 4.10.9404.0
msxml4a.dll 44544 4.10.9404.0
msxml4r.Manifest 500
msxml4r.cat 9679
msxml4r.dll 82434 4.10.9404.0
msxml4r.dll 82434 4.10.9404.0
msxml4.dll 1230336 4.10.9404.0
Понятно, что лучше более свежую сборку 4.20.x, чем 4.10.x, т.е. 3-й вариант отпадает
А вот чет отличается вариан msxml4sxs32.msm от msxml4sys32.msm?
И что за файлы msxml4a.dll, msxml4r.dll так ли они необходимы, или достаточно msxml4.dll?
Ratings: 0 negative/0 positive
Re: Можно ли сделать внешний вид Grid'а совсем плоским
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Источник, говоришь? Их есть у меня. Берем первый попавшийся исходник из Tools\Xsource, например TaskPane и в единственном .H-файле в первых же строчках видим:
* MSXML DOM parser
#define MSXML_PARSER "MSXML2.DOMDocument.4.0"
Достаточно при компиляции убрать из процитированного ".4.0" и перекомпилировать и все встает на свои места.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive


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

On-line: 27 AndyNigmatec  (Гостей: 26)

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