Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Embarcadero RAD Studio XE5-XE8,10.x(Seattle, Berl

Автор: X11
Дата сообщения: 15.07.2014 10:04
Ты бы сразу сообщил, как определяется в C# тип decimal
Автор: stanzdor
Дата сообщения: 15.07.2014 10:38
>> В C# есть тип decimal, а в Delphi есть полный аналог?
currency    

http://msdn.microsoft.com/en-us/library/cc208367.aspx

PDecimal = ^TDecimal;
{$EXTERNALSYM tagDEC}
tagDEC = packed record
wReserved: Word;
case Integer of
0: (scale, sign: Byte; Hi32: Longint;
case Integer of
0: (Lo32, Mid32: Longint);
1: (Lo64: LONGLONG));
1: (signscale: Word);
end;
TDecimal = tagDEC;
{$EXTERNALSYM DECIMAL}
DECIMAL = TDecimal;

посмотрите так же: http://rvelthuis.de/zips/decimals.zip
Автор: Ludens
Дата сообщения: 15.07.2014 13:13
В опциях проекта есть чекбокс Enable runtime themes, который позволяет включить в exe-файл ресурс по имени Manifest. Это так называемый "манифест Windows XP", и по умолчанию он включается в любой проект Delphi под Windows. Про него можно найти и прочитать довольно много веб-страниц. Я их прочитал, но так и не понял: а зачем он сейчас нужен, этот манифест? Можно ли без него всегда обойтись или в каких-то случаях он необходим? В какие проекты его следует включать? Или это чистый пережиток прошлого, и на него вообще не надо обращать внимания?
Автор: ant0ni02004
Дата сообщения: 15.07.2014 13:32
Ludens
Manifest - это не только runtime themes. Это еще и права доступа (execution privileges), что гораздо важнее.
Автор: Ludens
Дата сообщения: 15.07.2014 14:14

Цитата:
Это еще и права доступа

И что это значит? В каких случаях надо включать манифест в exe-файл, а в каких — необязательно?
Автор: X11
Дата сообщения: 15.07.2014 14:27
Я не включаю вообще.
Манифест в любой момент можно применить. Просто кинуть его в папку с программой. Имя ему должно быть "имя_исполняемого_файла.manifest"
Автор: Ludens
Дата сообщения: 15.07.2014 14:33

Цитата:
Манифест в любой момент можно применить. Просто кинуть его в папку с программой.

Но зачем, зачем? Зачем это делать? Зачем кидать его — хоть внутрь exe-файла, хоть в папку с программой? В каких случаях это может понадобиться? Существуют ли вообще такие случаи?
Автор: XPerformer
Дата сообщения: 15.07.2014 14:40
Ludens
например чтобы информировать систему, что для запуска нужны права администратора и запросить повышение привилегий
Автор: X11
Дата сообщения: 15.07.2014 14:42
Ну зачем-то же он существует?
Пусть программист сам решает. Я за то, чтобы не использовать его, пока он реально не нужен.
Автор: stanzdor
Дата сообщения: 15.07.2014 14:53
Манифест - это описание данного конкретного PE-executable. Предназначен для идентификации файла и некоторых других целей, которые подробней описаны в MSDN
http://msdn.microsoft.com/en-us/library/aa375365.aspx

с Delphi идет и встраивается в приложение по умолчанию файл манифеста. для windows, например, файл default_app.manifest
Автор: SuPriTo
Дата сообщения: 15.07.2014 16:07

Цитата:
>> В C# есть тип decimal, а в Delphi есть полный аналог?
currency

Currency - не подходит. Он не соотвествует типу Decimal

Цитата:
PDecimal = ^TDecimal;

Спасибо за информацию.


Цитата:
посмотрите так же: http://rvelthuis.de/zips/decimals.zip

Что-то не работает. Нужно будет самому разбираться с этим типом.

Автор: Frodo_Torbins
Дата сообщения: 15.07.2014 21:12
Ludens
Манифест описывает ваше приложение системе. Там может содержатся информация о том, какие из фишек системы приложение поддерживает, а какие нет, и что ему нужно для нормальной работы. Без манифеста ваше приложение будет выглядеть и функционировать так, будто его писали в 95-м.
Автор: Erazor84
Дата сообщения: 16.07.2014 11:22
Смотрю сейчас вебинар из московского офиса Embarcadero. Презентующий создал новое приложение на FM, бросил две кнопки. В итоге так и не смог скомпилировать приложение и отключил экран на 2 минуты
Автор: stanzdor
Дата сообщения: 16.07.2014 11:34
Erazor84, где идёт трансляция?
Автор: Erazor84
Дата сообщения: 16.07.2014 12:09
stanzdor
Уже закончился первый. Регистрироваться можно здесь на следующие:

http://forms.embarcadero.com/EM14Q3RUWebinarRADStudioXE6?elq=ce828a861c894fdfb9ec98e3dd06d501&elqCampaignId=1868
Автор: ego666
Дата сообщения: 16.07.2014 12:46
я вот интересуюсь, а эти вебинары можно где-нибудь посмотреть потом? все и в одном месте.
Автор: Erazor84
Дата сообщения: 16.07.2014 13:05
ego666
Обычно да. В начале трансляции об этом говорилось, но ссылку так и не дали. Скорее всего будет доступно чуть позже.
Автор: AlekXL
Дата сообщения: 17.07.2014 20:50

Цитата:
я вот интересуюсь, а эти вебинары можно где-нибудь посмотреть потом? все и в одном месте.

или хотя бы ссылки все собрать..
Казалось бы, абре выгодно все эти вебинары на видное место положить, но нет.. делаем все по русски, через..
Автор: Ludens
Дата сообщения: 18.07.2014 00:00
Frodo_Torbins

Цитата:
Без манифеста ваше приложение будет выглядеть и функционировать так, будто его писали в 95-м.

Ну а в чем это конкретно будет проявляться? Я пробовал компилировать разные проекты с манифестом и без него — никакой разницы не заметил.
Автор: ego666
Дата сообщения: 18.07.2014 09:14
Ludens
визуально, все контролы будут рисоваться в классическом стиле widnows
Автор: stanzdor
Дата сообщения: 18.07.2014 11:27
Ludens, delphi автоматом подключает свой манифест по умолчанию.
посмотрите в хексредакторе свой ехе'шник, увидите строку:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> ...
чёго он вам дался?
лично я использую его только когда нужно дать софту права администратора.
Автор: Frodo_Torbins
Дата сообщения: 18.07.2014 11:54
Ludens
Без манифеста:контролы не покрытые скинами и нестандартной отрисовкой (системные диалоги) будут выглядеть как в 95 винде
ваша прога не сможет запросить права администратора
винда применит к вашей проге виртуализацию файловой системы. Ваша прога не будет падать при попытках писать в Program Files и прочие защищенные папки, но все файлы будут попадать в специальную папочку в каталоге юзера, и будут не видны нормальным приложениям.
винда будет врать вашей проге про DPI, а масштабирование интерфейса будет происходить с помощью алгоритмов увеличения изображения -> размытая картинка на мониторах с высоким DPI (ультрабуки, 2К и 4К моники)
ваше приложение будет использовать древний, но совместимый менеджер системной памяти и прочих ресурсов. Из за этого оно будет работать медленнее чем если бы имело нормальный манифестСписок выше лишь вершина айсберга. Вот еще кое что: http://msdn.microsoft.com/en-us/library/windows/desktop/hh848036%28v=vs.85%29.aspx http://technet.microsoft.com/en-us/library/cc722305.aspx А вообще можно считать, что на свежих версиях винды каждая третья функция WinAPI будет выдавать не верные результаты.
Автор: Ludens
Дата сообщения: 18.07.2014 22:40
Frodo_Torbins
ой, вот, действительно, спасибо за содеражательный ответ!
Из него, в общем, следует, что манифест надлежит ОБЯЗАТЕЛЬНО вставлять в exe-файл или класть рядом с ним в виде отдельного документа. Иначе проявятся неприятности в виде — давай пока только об этом — старомодного изображения контролов.
Я очень долго пытался получить это старомодное изображение, компилируя тестовый проект без манифеста. Но у меня ничего не получилось. Windows 7, Delphi XE. Хоть с манифестом, хоть без — окно программы и все контролы выглядят совершенно одинаково. Подскажи, пожалуйста, каким образом можно воспроизвести те старомодные (как в 95) контролы и диалоги, о которых ты говоришь.
Автор: dred2k
Дата сообщения: 18.07.2014 22:55
Frodo_Torbins
Уважаемый, я первый голосую за то, чтобы Вам статейку "прибросить". Тема эта, на самом деле, насколько занимательна - настолько же и не особо раскрыта. Мало кому как бы нужно, мало кто замечает, а оно - есть. По причине "незаметности".
Сорвите покровы !
Будет интересно !

P.S. По возможности, конечно.
Автор: Erazor84
Дата сообщения: 19.07.2014 00:58
Ludens
У меня на XE2 и Windows 8 разница очень заметна. Если отключить манифест кнопки становятся серыми и без градиента. Вы точно используете стандартные компоненты типа TButton, а не, например, DevExpress?
Автор: dred2k
Дата сообщения: 19.07.2014 01:21
Да уж, сейчас заметил, как работает опция проекта в среде (и даже комманд-компиляторе) Дельфи2010 "Enable runtime schemes".
Прикольно.
Frodo_Torbins
Даешь всеобъемлющую статью !
Автор: Ludens
Дата сообщения: 19.07.2014 02:19
Erazor84

Цитата:
Вы точно используете стандартные компоненты типа TButton, а не, например, DevExpress?

Абсолютно точно. Только стандартные компоненты. Ненавижу скины, градиенты и прочую анимацию.
Автор: stanzdor
Дата сообщения: 19.07.2014 07:23
Ludens, вот вам пишешь, а вы или не читаете или хрен поймешь.
если мы говорим про xe6 то в папке bin дельфи удалите файл default_app.manifest
создайте пустой проект с кнопкой, запустите и увидите ваш простой стиль
Автор: Erazor84
Дата сообщения: 20.07.2014 13:44
stanzdor
У него ХЕ. Должно, по идее, галочкой включаться и отключаться в настройках проекта.
Можно конечно и удалить файл \RAD Studio\8.0\bin\default_app.manifest, только ведь без него ведь потом не получиться манифест опять включить. Тогда уж лучше переименовать в что-то типа default_app.manifest_old, чтобы можно было вернуть всё как было.
Автор: Lena44
Дата сообщения: 20.07.2014 15:13

Цитата:
Ктонибудь уже столкнулся с багом Fullscreen в FireMonkey в XE6?
Если форму в runtime сделать fullscreen, у неё только пропадает рамка.


Возможно речь идет о том, что было исправлено в первом апдейте для RADXE6:
"Window can't be maximized with styles, which have custom window border"
http://edn.embarcadero.com/article/43893

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129

Предыдущая тема: Отмена встречи в Outlook из Excel VBA


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.