Текущий архив: 2007.12.30;
Скачать: CL | DM;
Вниз
SVISTAPLYASKA - разработка приложения для Vista в Delphi 7 Найти похожие ветки
← →
TIF © (2007-11-12 12:33) [0]В Vista открыл свой проект и ахнул: у меня на форме было много картинок, располагающихся рядом. Так вот, они были пригнаны плотно друг к другу, например размер их был 100х50. В Vista сами Image расширились, стали где-то 120х70, естественно картинка болтается по центру этой области и не касается соседних.
И так случилось со всеми Image-ами. В XP всё нормально.
Изменения коснулись и других компонентов - использую красивые графические компоненты, так у них тоже поехали ширина, высота...
Самый прикол в том, что когда всё подогнал, скомпилил в Vitsa и открыл потом exe-шник в XP, то ... всё сузилось!
Неужели придётся как-то программировать задание размеров компонентов в зависимости от типа операционки? Абсурд! Либо создавать два идентичных приложения, различающихся только размерами компонентов, что не лучше.
Ничего не понимаю! Может в Vista какие-то коэффициенты пересчёта размеров? Или как-то влияет разрешение, масштабирование экрана? Кто сталкивался с чем-либо подобным или знает, в чём тут может быть дело? Плз, помогите.
PS: просьба советов типа: "Зачем тебе виста, пиши в ХР и работай в ХР" - не давать.
Sorry за возможные ошибки в тексте
← →
ЮЮ © (2007-11-12 12:53) [1]> у меня на форме было много картинок, располагающихся рядом.
До такого не додумвлся бы ни в ХP, не в Viste.
> Так вот, они были пригнаны плотно друг к другу, например
> размер их был 100х50. В Vista сами Image расширились, стали
> где-то 120х70,
Это уже юольше на чудеса похоже. Ты в церкви Висту не окравлял?
> Самый прикол в том, что когда всё подогнал,
Пару строк кода все-же проще написать, даже когда "батонокидатель".
З.Ы. Может дело не в системах, а в настройках монитора в разных системах?
> просьба советов типа: "Зачем тебе виста, пиши в ХР и работай
> в ХР" - не давать.
А зачем советуешь ставить Висту? :)
← →
Anatoly Podgoretsky © (2007-11-12 12:56) [2]D6, D7 c Вистой не совместимо, кроме того надо смотреть настройки системы, в первую очередь шрифты
← →
TIF © (2007-11-12 13:02) [3]
> А зачем советуешь ставить Висту? :)
не советую и не пропагандирую, а говорю, что делаю под неё прогу.
> D6, D7 c Вистой не совместимо, кроме того надо смотреть
> настройки системы, в первую очередь шрифты
в ХР скопировал шрифты segoe ui, на них прога и работает в любой системе. размер тоже подобрал тот же, или отключил использование системных шрифтов.
А какая версия тогда совместима? Кроме 2007? turbo delphi подойдёт?
← →
Anatoly Podgoretsky © (2007-11-12 13:21) [4]> TIF (12.11.2007 13:02:03) [3]
> а говорю, что делаю под неё прогу.
Ключевая фраза, тогда причем тут ХР
← →
TIF © (2007-11-12 13:27) [5]
> Ключевая фраза, тогда причем тут ХР
дык вот притом, что не у всех виста, поэтому должна быть совместимость с более ранними ОС.
← →
Anatoly Podgoretsky © (2007-11-12 13:35) [6]> TIF (12.11.2007 13:27:05) [5]
Ну тогда и не говори, что пишешь программу для Висты, говори чисто для всех версий ОС, вне зависимости от пользовательских настроек и метрик.
← →
TIF © (2007-11-12 13:40) [7]
> Ну тогда и не говори, что пишешь программу для Висты, говори
> чисто для всех версий ОС, вне зависимости от пользовательских
> настроек и метрик.
Да будет так
← →
DVM © (2007-11-12 14:09) [8]
> TIF ©
это недоработка где то в недрах VCL - я тоже сталкивалсяю. Дело не в шрифтах.
Дело в бордюре окон. У висты он другой и че-то там в VCL не так вычисляется. Проблемы с якорями и Align
← →
TIF © (2007-11-12 14:56) [9]
> это недоработка где то в недрах VCL - я тоже сталкивалсяю.
> Дело не в шрифтах.
> Дело в бордюре окон. У висты он другой и че-то там в VCL
> не так вычисляется. Проблемы с якорями и Align
согласен!
кстати, о бордюрах: вот кусок кода с которым у меня глюки, когда в всите установлен не вистовая тема, а классическая или стандартная. в скобках {} всё подробно описано
{Реализация "необычного" окна: без заголовка, только рамка + возможность изменения размера окна}procedure TOffice2007Form.CreateParams(var Params: TCreateParams);
const
CS_DROPSHADOW = $00020000;
begin
inherited CreateParams(Params);
{Так решили сделать TMS-овцы...}//Params.Style := Params.Style and not WS_CAPTION + WS_POPUP;
{...а так решил переделать я - эффект тот же}Params.Style := Params.Style - WS_CAPTION + WS_POPUP;
{
ВНИМАНИЕ!!!
Обнаружены ошибки с реализацией данного момента в Windows Vista.
Если в разделе "Персонализация > Цвет и внешний вид окна >
Открыть свойства классического внешнего вида для выбора других возможностей".
Откроется окно "Параметры оформления".
Если выбрана цветовая схема "Windows Vista - обычный стиль" или
"Windows vista - упрощённый стиль", то неполадки не наблюдаются.
Но если выбрана "Стандартная" или "Классическая" цветовая схема,
то на окне начинают рисоваться вертикальные полосы тёмно-синего
цвета, они создаются правой границей окна.
Очисткой Canvas избавитьься от них можно, но придётся рисовать
определённый прямоугольник определённого цвета. Видимо, виновата
Windows Vista. Можно попытаться поискать решение у специалистов
Microsoft.
}
{Непонятно, зачем нужен этот участок кода? В Windows Vista он
добавляет к нижнему правому углу, который закруглён, некую
"квадратность" (рисует под ним квадратный угол на тени
if not (csDesigning in ComponentState) then
begin
if (Win32Platform = VER_PLATFORM_WIN32_NT) and
((Win32MajorVersion > 5) or
((Win32MajorVersion = 5) and (Win32MinorVersion >= 1))) then
Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;
}end;
{ ------------------------- }
← →
Игорь Шевченко © (2007-11-12 15:01) [10]Учимся создавать корректные заголовки тем
← →
Darvin © (2007-11-13 17:19) [11]>Anatoly Podgoretsky © (12.11.07 12:56) [2]
>D6, D7 c Вистой не совместимо, кроме того надо смотреть настройки >системы, в первую очередь шрифты
Не знаю, не знаю. На XP и D7 делаю прогу, причем использующую paradox, запускаю ее на висте, все работает и картинки никуда не уезжают.
← →
Anatoly Podgoretsky © (2007-11-13 19:06) [12]У тебя получилось, а у автора нет.
← →
DVM © (2007-11-13 22:01) [13]
> На XP и D7 делаю прогу, причем использующую paradox, запускаю
> ее на висте, все работает и картинки никуда не уезжают.
Парадокс тут точно не по теме, а глюки проявляются только при определенных сочетаниях якорей и выравниваний и то не у всех контролов.
← →
TIF © (2007-11-19 12:23) [14]
> глюки проявляются только при определенных сочетаниях якорей
> и выравниваний и то не у всех контролов.
интересно. Тогда что это за волшебные сочетания? Как их избежать? И какие контролы можно использовать, чтобы глюков не было?
← →
DVM © (2007-11-19 12:37) [15]
> интересно. Тогда что это за волшебные сочетания? Как их
> избежать?
Я досконально не разбирался, но как то устранил, не помню уже.
← →
TIF © (2007-11-20 17:57) [16]
> но как то устранил, не помню уже.
а может, всё-таки вспомните?
← →
TIF © (2007-11-23 14:28) [17]Интересно, а на Turbo Delphi можно написать приложение, корректно работающее под вистой? А то может мне его скачать?
← →
Dennis I. Komarov © (2007-11-23 14:36) [18]> [17] TIF © (23.11.07 14:28)
В TDelphi низя юзать сторонние компоненты в Design-Time. Если конечно бесплатно юзаешь TDelphi. Это так, предупреждение.
← →
DVM © (2007-11-23 16:40) [19]
> а на Turbo Delphi можно написать приложение, корректно работающее
> под вистой?
Его можно написать и на Delphi 7. И даже на Delphi 2.
Количество же глюков среды разработки в Delphi 2007 просто поражает воображение.
← →
TIF © (2007-11-27 17:32) [20]мда, никтоничем что-ли н может помочь?
← →
TIF © (2007-11-28 15:01) [21]тут предлагают 205 делыу. А у неё тоже ведь глюки пойдут? а?
← →
TIF © (2007-11-29 15:39) [22]
> тут предлагают 205 делыу. А у неё тоже ведь глюки пойдут?
> а?
блин, что-то по китайски напечатал:
тут предлагают 2005 делфу. А у неё тоже ведь глюки будут?
← →
TIF © (2007-12-04 09:28) [23]Ё-МОЁ! ( sorry, sorry, sorry :-) )
Оказывается дело в разрешении экрана! В висте ведь есть средство масштабирования экрана! Вот оно и было включено (разрешение 120 dpi, вместо 96 обычных)!
И как никто не мог догадаться?
Вот теперь встал вопрос корректного отображения на экранах с различным dpi. Испробовал все способы, которые смог найти - не работает.
Кто чем может помочь?
← →
Dracula (2007-12-04 12:15) [24]Вот эта функция точно работает, а про DPI забывать нельзя (очень многие люди пользуются нестандартным), тем более когда на форме куча картинок
function GetScreenDPI: Integer;
var
hdcScreen: HDC;
iDPI: Integer;
begin
hdcScreen := GetDC(0);
iDPI := -1; // assume failure
if (hdcScreen > 0) then
begin
iDPI := GetDeviceCaps(hdcScreen, LOGPIXELSX);
ReleaseDC(0, hdcScreen);
end;
Result := iDPI;
end;
Далее в обработчике FormCanResize
procedure TMainForm.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
var
Mul: Real;
begin
Mul := GetScreenDPI / 96;
if NewHeight <= (480 * Mul) then NewHeight := Round(480 * Mul);
if NewWidth <= (710 * Mul) then NewWidth := Round(660 * Mul);
Resize := True;
end;
работает как в висте, так и в хп.
а вот с бордюром окон, такая проблема тоже есть, но решение пока не нашол, да я в принципе и не искал :).
← →
TIF © (2007-12-04 15:04) [25]спасибо! то что надо, конечно, лучше бы модернизированный вариант, но пока хватит :-)
← →
Kolan © (2007-12-04 15:10) [26]разработка приложения для Vista в Delphi 7
…
Невозможна. Возмите RAD Studio 2007
← →
Игорь Шевченко © (2007-12-04 15:12) [27]
> Невозможна.
Точно ?
← →
Kolan © (2007-12-04 15:17) [28]> Точно ?
Нет, ну нормальная, быстрая. Если конечно самому адаптировать VCl итд… ну вы же поняли меня…
← →
Игорь Шевченко © (2007-12-04 15:38) [29]Kolan © (04.12.07 15:17) [28]
Нет, я не понял, давай подробности. Какой именно эатп невозможен - установка Delphi 7 на Vista, неработоспособность приложений, созданных на delphi 7 под Vista или что-то еще ?
← →
TIF © (2007-12-04 15:42) [30]возможно. но, например, не поддерживаются новые диалоги висты.
← →
Kolan © (2007-12-04 17:36) [31]> установка Delphi 7 на Vista,
Для начала, да. Как минимум будет ругаться виста.
> неработоспособность приложений
Так как в формах нет новых свойств, которые могут иметь окна в висет, то соотв…
ЗЫ
См. CodeGear RAD 2007 список изменений, странно что вы Игорь придрались… Не зря же борланд выпустил студию где в основном сделана поддержка висты…
← →
Dennis I. Komarov © (2007-12-04 17:41) [32]Хочу Turbo D 2007!!!
← →
Игорь Шевченко © (2007-12-04 17:53) [33]Kolan © (04.12.07 17:36) [31]
> См. CodeGear RAD 2007 список изменений, странно что вы
> Игорь придрались… Не зря же борланд выпустил студию где
> в основном сделана поддержка висты
Кушать хочется. Это как раз не аргумент.
> Для начала, да. Как минимум будет ругаться виста.
То есть, D7 на висту в принципе нельзя установить ? :)
← →
Kolan © (2007-12-04 19:18) [34]> То есть, D7 на висту в принципе нельзя установить ? :)
В принципе можно сделать все. За сто с небольшим лет я вам и ни ассемблере браузер на висту напишу в блокноте.
← →
Игорь Шевченко © (2007-12-05 10:11) [35]Kolan © (04.12.07 19:18) [34]
Во-первых, не напишешь.
Во-вторых:
"1. Открываем каталог "....Borland\Delphi7\"
2. Нажимаем правой клав. мыши на каталоге Bin и выбираем "Свойства"
3. Открываем вкладку "Безопасность"
4. Нажимаем "изменить"
5. Выбираем нужного пользователя и напротив "Изменения" ставим галочку в колонке разрешить
Можно так же проделать для Borland\Delphi7\Projects."
из гугля.
Гугль - рулез фарева.
← →
Kolan © (2007-12-05 10:30) [36]> Во-первых, не напишешь.
Предлогаю заключить контракт. + К браузеру берусь обучить говорить осла :).
Гугль — рулез фарева.
Честно скажите, пытались писать? Я нет. Мое мнение основана на том, что я прочитал про RAD 2007
← →
Игорь Шевченко © (2007-12-05 10:57) [37]Kolan © (05.12.07 10:30) [36]
> Предлогаю заключить контракт.
Можешь сразу заплатить неустойку
> Мое мнение основана на том, что я прочитал про RAD 2007
Практика - критерий истины. Ты в таках случаях, когда делаешь заявления о возможности/невозможности чего-то добавляй, что "я прочитал, но сам не знаю".
← →
Kolan © (2007-12-05 11:19) [38]> Можешь сразу заплатить неустойку
За что это? За сто с небольшим управлюсь, при соотв финансировании.
← →
Игорь Шевченко © (2007-12-05 11:24) [39]Kolan © (05.12.07 11:19) [38]
Флудить завязываем. То, что не управишься - это гарантировано, почитай Таненбаума, он доходчиво объясняет, почему не управишься ни за сто ни за тысячу
← →
Kolan © (2007-12-05 11:50) [40]Уговорили, делайте программы для висты на D7, а я пожалуй воспоьзуюсь RAD 2007.
Страницы: 1 2 вся ветка
Текущий архив: 2007.12.30;
Скачать: CL | DM;
Память: 0.58 MB
Время: 0.022 c