Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
&#133
Невозможна. Возмите RAD Studio 2007


 
Игорь Шевченко ©   (2007-12-04 15:12) [27]


> Невозможна.


Точно ?


 
Kolan ©   (2007-12-04 15:17) [28]

> Точно ?

Нет, ну нормальная, быстрая. Если конечно самому адаптировать VCl итд&#133 ну вы же поняли меня&#133


 
Игорь Шевченко ©   (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,

Для начала, да. Как минимум будет ругаться виста.


> неработоспособность приложений

Так как в формах нет новых свойств, которые могут иметь окна в висет, то соотв&#133

ЗЫ
 См. CodeGear RAD 2007 список изменений, странно что вы Игорь придрались&#133 Не зря же борланд выпустил студию где в основном сделана поддержка висты&#133


 
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]

> Во-первых, не напишешь.

Предлогаю заключить контракт. + К браузеру берусь обучить говорить осла :).

Гугль &#151; рулез фарева.

Честно скажите, пытались писать? Я нет. Мое мнение основана на том, что я прочитал про 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
2-1196940482
smartleds
2007-12-06 14:28
2007.12.30
Коллеги подскажите как заданную ячейку в String Grid


2-1196767210
Егоров А.Н.
2007-12-04 14:20
2007.12.30
получить локальный IP-адрес компьютера


8-1171988250
ndg
2007-02-20 19:17
2007.12.30
изменить яркость, контраст и цветность


15-1196074479
No_Dead
2007-11-26 13:54
2007.12.30
Логика БД


2-1196750879
Kolan
2007-12-04 09:47
2007.12.30
А можно у TreeView отключить рисование пунктирных точек?