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

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

Автор: NeoAnomaly
Дата сообщения: 27.03.2015 16:52

Цитата:
А то все вместе не видно где мои а где среды.
Вообще их можно разделить?

dix75 как workaround могу посоветовать DbgView от sysinternals, там есть фильтрация сообщений.
Автор: Frodo_Torbins
Дата сообщения: 27.03.2015 17:09
dix75
Помнится лишние можно было отключить.
Автор: nyinick
Дата сообщения: 28.03.2015 02:23
dix75
включаете в настройках отображение Event Log панели (в меню главного окна дельфы - View - Debug Windows - Event Log)
в него можно выводить свои сообщения через процедуру OutputDebugString
что бы в Event Log окне отображались лишь Ваши сообщения открывайте свойства на самом окне или заходите в настройки Дельфы по такому пути: Tools - Options - Debugger Options - Event Log и убираете галочки с ненужных Messages, можете оставить лишь галку на Output Messages
Автор: dix75
Дата сообщения: 29.03.2015 00:11
nyinick Спасибо попробую.

А какой инструмент для тестирования, кто может посоветовать?
Автор: nyinick
Дата сообщения: 29.03.2015 03:40
dix75, а что именно тестировать и по каким критериям?
Автор: LadyOfWood
Дата сообщения: 29.03.2015 21:51

Цитата:
А какой инструмент для тестирования, кто может посоветовать?

CodeSite, DUnit. А так все зависит от задачи.
Автор: SuPriTo
Дата сообщения: 29.03.2015 23:12
Как вам новая версия XE8?
У меня отладка в андроид приложениях не работает
Автор: nyinick
Дата сообщения: 29.03.2015 23:57

Цитата:
Как вам новая версия XE8?

За час с лишним юзанья пока что могу лишь сказать что ничего особенного по сравнению с ХЕ7 для себя не нашел. Во многом считай 7-ка только интерфейс чуть намарафетили.


Цитата:
У меня отладка в андроид приложениях не работает

У меня что на ХЕ7 не работала в силу какого-то локального глюка на смартфоне (почему-то дельфе не удаётся запустить на смарте дебагер модуль), что и на ХЕ8 не заработало. Приходится дебажить через симулятор Андроида



Добавлено:
Кстати, а кто знает можно ли заставить Дельфу устанавливаться полностью на диск Д, к примеру?
А то уже надоело при установке новой версии каждый раз искать место на диске С. Он у меня SSD и всего 60 Гб, а Дельфе для установки требуется считай 30 гиг. Каждый раз приходится переносить папки временно, перелинковывать через символьные ссылки большие папки на другой диск.
При установке Дельфы конечно есть возможность указать пусть на другой диск, но всё равно на С копируются файлы причём более 10 Гб, да и если свободного места на С меньше 30 Гб то вовсе не хочется устанавливаться, нужно высвобождать место даже если я не планирую ставить на С.
Автор: dred2k
Дата сообщения: 30.03.2015 01:20
nyinick
Распакованный инсталл кладется в ProgramData, в подкаталог с именем в виде GUID.
И сдается мне, что для конкретной версии студии он совершенно определенный.
Для D2010, к примеру - {2D559015-4C05-4AE5-8C8B-7E13E1EAB09D}.
Хинт: перед установкой создай в ProgramData символическую ссылку с этим именем на любой пустой каталог на любом свободном диске. Может получиться - и инсталл начнет юзать именно этот "подготовленный путь".

Добавлено:
После установки все это можно смело грохнуть, или оставить файлы в корне плюс подкаталог OFFLINE - тогда деинсталляция пройдет корректно.
В любом случае, с установкой все можно проделать и без этой копии, запустив инсталл с исошника.
Автор: LadyOfWood
Дата сообщения: 30.03.2015 03:18

Цитата:
Как вам новая версия XE8?

Как я понял нового в VCL практически нет, все пытаются довести до ума мобильные платформы.
Автор: Frodo_Torbins
Дата сообщения: 30.03.2015 12:59
Наиболее интересен, пожалуй, стандартный менеджер пакетов GetIt. Если бы его еще и на предыдущие версии дельфы портировали, то вообще отлично было бы.
С AppAnalytics тоже надо будет разобраться.
Автор: SuPriTo
Дата сообщения: 30.03.2015 13:28

Цитата:
С AppAnalytics тоже надо будет разобраться.

А это что за зверь? Исходников к нему нема, не выложили, только dcu
Автор: Frodo_Torbins
Дата сообщения: 30.03.2015 13:39
SuPriTo
Это последнее приобретение Абракадабры: http://blog.marcocantu.com/blog/2015-january-embarcadero-acquires-castalia-usertility.html
Автор: AlekXL
Дата сообщения: 30.03.2015 17:26
вопрос -- атрибуты для аргументов ф-й или методов : что это такое?

---
вопрос2 -- меня сильно напрягает размер служебных полей String в юникодных версиях. Думается, это как-то можно поправить посредством редактирования system.pas..
кто-нибудь этим занимался?
Автор: nyinick
Дата сообщения: 30.03.2015 17:35

Цитата:
вопрос -- атрибуты для аргументов ф-й или методов : что это такое?  

По этой теме хорошая статья с примером:
http://forum.codecall.net/topic/76463-introducing-attribute/


Добавлено:

Цитата:
вопрос2 -- меня сильно напрягает размер служебных полей String в юникодных версиях. Думается, это как-то можно поправить посредством редактирования system.pas.. кто-нибудь этим занимался?

А зачем Вам их укорачивать? Много на этом памяти не съэкономить.
Да и стринги не важно какие юникод или нет - они же динамической длины, если конечно размер не задан напрямую.
Автор: dred2k
Дата сообщения: 30.03.2015 17:45
Информация для тех, кто ставит студию в условиях ограниченного свободного пространства.
На первом этапе установки происходит распаковка ВСЕГО пакета в каталог \ProgramData\{C49877F5-B9A4-4C4D-AB8D-F7F9DA1A9BBB}
Это для XE8. Для других GUID свой.
Я для теста перед установкой создал на D: каталог {C49877F5-B9A4-4C4D-AB8D-F7F9DA1A9BBB} и в \ProgramData - символическую ссылку на него (с таким же именем).
Все нормально, установщик начал использовать существующий каталог (фактически лежащий на D.
Так что можно этот трюк использовать.

Вопрос к тем, кто уже поставил XE8: в сетапе вроде задается вопрос, какие языки ставить. До XE8 - был такой вопрос или нет я не помню - в конечном итоге заливались файлы для всех языков.
Как с этим сейчас, в XE8 ?
Просто я взял и малость отредактировал оригинальный iso, убрав файлы с суффиксами french, german и japanese. С него вот сейчас и ставлю. Один раз сказал он мне, что типа не могу распаковать весь нужный контент, предложил скачать с веба или продолжить попытки. Выбрал продолжить - вроде идет без вопросов. Вот и думаю - может зря я редактировал, и в этот раз они не засунут все языки, если даже выбран только английский.

Добавлено:
Все поставилось, с моего отредактированного iso (english-only).
Кстати, по ходу они одумались.
После установки в каталоге {C49877F5-B9A4-4C4D-AB8D-F7F9DA1A9BBB} какие-то жалкие 108 метров.
В каталоге назначения - около 7 гиг, я ставил только Win64 + OSX.
Баланс свободного до и после сходится.

Посторонние языки все же пихает по-любому.
Причем даже для подправленного мной iso - в бине, доках, либах и еще где-то (около пяти мест) обнаружены подкаталоги de, fr, ja. Ничтожно, конечно, по сравнению с дефолтным iso, где этих языковых копий масса везде.

Исошник delphicbuilder_xe8_win-(english-only).iso есть смысл выложить ? Пригодится кому ?
Автор: BofA
Дата сообщения: 30.03.2015 18:53
Я в XE7 использовал [more=такой]
set studiopath=C:\Program Files (x86)\Embarcadero\Studio\15.0
del "%studiopath%\radstudio_license_ko.rtf"
del "%studiopath%\radstudio_license_pt.rtf"
rd /s /q "%studiopath%\bin\de"
rd /s /q "%studiopath%\bin\fr"
rd /s /q "%studiopath%\bin\ja"
del "%studiopath%\bin\*.de"
del "%studiopath%\bin\*.fr"
del "%studiopath%\bin\*.ja"
del "%studiopath%\bin64\*.de"
del "%studiopath%\bin64\*.fr"
del "%studiopath%\bin64\*.ja"
rd /s /q "%studiopath%\binosx32"
rd /s /q "%studiopath%\Help\Win32\de"
rd /s /q "%studiopath%\Help\Win32\fr"
rd /s /q "%studiopath%\Help\Win32\ja"
rd /s /q "%studiopath%\lib\android"
rd /s /q "%studiopath%\lib\iosDevice"
rd /s /q "%studiopath%\lib\iossimulator"
rd /s /q "%studiopath%\lib\osx32"
rd /s /q "%studiopath%\lib\win32\debug\de"
rd /s /q "%studiopath%\lib\win32\debug\fr"
rd /s /q "%studiopath%\lib\win32\debug\ja"
rd /s /q "%studiopath%\lib\win32\release\de"
rd /s /q "%studiopath%\lib\win32\release\fr"
rd /s /q "%studiopath%\lib\win32\release\ja"
rd /s /q "%studiopath%\lib\win64\debug\de"
rd /s /q "%studiopath%\lib\win64\debug\fr"
rd /s /q "%studiopath%\lib\win64\debug\ja"
rd /s /q "%studiopath%\lib\win64\release\de"
rd /s /q "%studiopath%\lib\win64\release\fr"
rd /s /q "%studiopath%\lib\win64\release\ja"
rd /s /q "%studiopath%\ObjRepos\de"
rd /s /q "%studiopath%\ObjRepos\fr"
rd /s /q "%studiopath%\ObjRepos\ja"
rd /s /q "%studiopath%\Redist\osx32"
del "%studiopath%\Redist\win32\*.de"
del "%studiopath%\Redist\win32\*.fr"
del "%studiopath%\Redist\win32\*.ja"
del "%studiopath%\Redist\win64\*.de"
del "%studiopath%\Redist\win64\*.fr"
del "%studiopath%\Redist\win64\*.ja"

cd /D %studiopath%\source
for /f "tokens=*" %%g in ('dir /b /a:d /s "de"') do rd /s /q "%%g"
for /f "tokens=*" %%g in ('dir /b /a:d /s "fr"') do rd /s /q "%%g"
for /f "tokens=*" %%g in ('dir /b /a:d /s "ja"') do rd /s /q "%%g"

rd /s /q "C:\Users\Public\Documents\Embarcadero\InterBase"

cd /D "C:\ProgramData\{CF504BCC-79FC-4455-BF0B-F2866429F689}"
@echo off
for /f "tokens=*" %%g in ('dir /b /a:d') do (
if NOT "%%g"=="OFFLINE" (
rd /s /q "%%g"
)
)
[/more] скрипт после установки, вырезал больше 2ГБ ненужного мне хлама. ИМХО это проще, чем редактировать ISOшник. Для XE8 надо поменять несколько строчек. Ну и разумеется каждому нужно подредактировать его в соотсвтствии с используемыми компонетнами (я не пользовался мобильными платформами, OSX, InterBase).
Автор: AlekXL
Дата сообщения: 30.03.2015 19:43
nyinick

Цитата:
По этой теме хорошая статья с примером:
http://forum.codecall.net/topic/76463-introducing-attribute/

разве я об этом спрашивал?
Я спрашивал:

Цитата:
вопрос -- атрибуты для аргументов ф-й или методов : что это такое?



Цитата:
А зачем Вам их укорачивать? Много на этом памяти не съэкономить.

задавая вопрос, я жду ответа по существу.


Цитата:
Да и стринги не важно какие юникод или нет - они же динамической длины, если конечно размер не задан напрямую.

разве я об этом спрашивал?
я говорил об оверхеде строк. При чем тут длина?




Автор: NeoAnomaly
Дата сообщения: 30.03.2015 21:51

Цитата:
вопрос -- атрибуты для аргументов ф-й или методов : что это такое?  



Цитата:
По этой теме хорошая статья с примером:
http://forum.codecall.net/topic/76463-introducing-attribute/


AlekXL тебе прям не угодишь с ответами


Цитата:
что это такое?

То же, что и для других элементов, RTFM в общем ))

Примеров применения не встречал, но, я думаю, можно какой-нибудь фреймворк контрактов на них построить.
Автор: nyinick
Дата сообщения: 30.03.2015 22:05
AlekXL

Цитата:
разве я об этом спрашивал? я говорил об оверхеде строк.

научитесь тогда правильно формулировать вопросы, что бы получать правильные ответы


Цитата:
задавая вопрос, я жду ответа по существу.

Вам дали я и товарищь NeoAnomaly ссылки на официальную документацию и просто на наглядную разжёванную статью с примерами использования аттрибутов. Правда они на английском, но я же думаю Вы с ним знакомы раз с Дельфой дружите
Или Вам влом РТФМ-ить то, что и так толково расписано?


Автор: stanzdor
Дата сообщения: 30.03.2015 22:58
подскажите, в какой последней версии Delphi приложения работают на XP ?
Автор: Alexey_Gawrilow
Дата сообщения: 30.03.2015 23:02
dred2k

Цитата:
Исошник delphicbuilder_xe8_win-(english-only).iso есть смысл выложить ? Пригодится кому ?

Я б принял.
Автор: nyinick
Дата сообщения: 31.03.2015 00:26
stanzdor

Цитата:
подскажите, в какой последней версии Delphi приложения работают на XP ?

все приложения, скомпилированные в Дельфи вплоть до последней версии (ХЕ8) успешно запускаются и работают на ХР, если не используются какие-то специфические заточки под более старшие версии Виндов или новые API, которых ещё не было в ХР.



Автор: LadyOfWood
Дата сообщения: 31.03.2015 00:37

Цитата:
подскажите, в какой последней версии Delphi приложения работают на XP ?

В любой, но если не используешь новые api, например TaskDialogs и прочее.
Автор: AlekXL
Дата сообщения: 31.03.2015 04:50
nyinick

Цитата:
научитесь тогда правильно формулировать вопросы, что бы получать правильные ответы

я это умею. Я спрашивал:

Цитата:
вопрос2 -- меня сильно напрягает размер служебных полей String в юникодных версиях. Думается, это как-то можно поправить посредством редактирования system.pas..
кто-нибудь этим занимался?

про размер служебных полей , это и есть оверхед

NeoAnomaly
nyinick

Цитата:
Вам дали я и товарищь NeoAnomaly ссылки на официальную документацию и просто на наглядную разжёванную статью с примерами использования аттрибутов

разве я об атрибутах вообще спрашивал?
Повторяю вопрос:

Цитата:
вопрос -- атрибуты для аргументов ф-й или методов : что это такое?

про чукчу напомнить?

Добавлено:
stanzdor
XE7 IDE запускается и работает по XP, включая отладку.


Добавлено:
nyinick

Цитата:
все приложения, скомпилированные в Дельфи вплоть до последней версии (ХЕ8) успешно запускаются и работают на ХР, если не используются какие-то специфические заточки под ХР.

вот и уровень твоего мышления: а если в XE8 использовать заточки под XP, то что, под XP -- перестанет работать?
Автор: NeoAnomaly
Дата сообщения: 31.03.2015 07:10
AlekXL



Цитата:
разве я об атрибутах вообще спрашивал?
Повторяю вопрос:

Цитата:
вопрос -- атрибуты для аргументов ф-й или методов : что это такое?  

про чукчу напомнить?

AlekXL, про чукчу я б послушал. Всёравно про программирование не клеится у нас разговор

З.Ы.
Если фразу:

Цитата:
разве я об атрибутах вообще спрашивал?

трактовать как: разве я в целом об атрибутах спрашивал? То чем не устроили предложенные ответы? Атрибуты для аргументов ничем не отличаются от атрибутов для [more=других элементов языка]
Код: unit uAttributesEverywhere;

interface

type
SampleAttribute = class(TCustomAttribute);

[Sample]
TStopLight = (Red, Yellow, Green);

[Sample]
TAttributesEverywhere = class
private
[Sample]
FSomeProperty: Extended;
procedure SetSomeProperty(const Value: Extended);
public
[Sample]
procedure DoThis([Sample]aString: string);
[Sample]
function DoThat([Sample]aObject: TObject): integer;
[Sample]
property SomeProperty: Extended read FSomeProperty write SetSomeProperty;
end;

procedure DoAttributesEverywhere;

type
FirstAttribute = class(TCustomAttribute);

SecondAttribute = class(TCustomAttribute);

ThirdAttribute = class(TCustomAttribute);

[First] [Second]
[Third]
TMultipleAttributes = class(TObject);


procedure DoMultipleAttributes;

implementation

uses
RTTI
;

procedure DoAttributesEverywhere;
var
Context: TRTTIContext;
TempClassType: TRttiType;
TempEnumType: TRttiOrdinalType;
TempAttribute: TCustomAttribute;
TempAttribute1: TCustomAttribute;
TempField: TRttiField;
TempMethod: TRttiMethod;
TempParam: TRttiParameter;
TempProperty: TRttiProperty;
begin
// Enum
TempEnumType := Context.GetType(TypeInfo(TStopLight)).AsOrdinal;
for TempAttribute in TempEnumType.GetAttributes do
begin
WriteLn(TempEnumType.Name, ' has the following attributes: ');
Write(' ', TempAttribute.ToString);
end;
WriteLn;
WriteLn;



// Class
TempClassType := Context.GetType(TAttributesEverywhere);
WriteLn('TAttributesEverywhere has the following attributes:');

for TempAttribute in TempClassType.GetAttributes do
begin
WriteLn(' Class Attribute: ', TempAttribute.ToString);
end;
WriteLn;
for TempField in TempClassType.GetFields do
begin
WriteLn('The ', TempField.Name, ' has the following attributes:');
for TempAttribute in TempField.GetAttributes do
begin
WriteLn(' ', TempAttribute.ToString);
end;
end;
WriteLn;
for TempMethod in TempClassType.GetMethods do
begin
for TempAttribute in TempMethod.GetAttributes do
begin
WriteLn('The ', TempMethod.Name, 'method has the ', TempAttribute.ToString, ' attribute.');
for TempParam in TempMethod.GetParameters do
begin
for TempAttribute1 in TempParam.GetAttributes do
begin
WriteLn(' The ', TempParam.Name, ' parameter has the ', TempAttribute1.ToString, ' attribute.');
end;
if TempMethod.ReturnType <> nil then
begin
Writeln(' The ', TempMethod.Name, ' method is a function that returns a ', TempMethod.ReturnType.Name, '.');
end else
begin
WriteLn(' The ', TempMethod.Name, ' method is a procedure.');
end;
end;
end;
end;
WriteLn;
for TempProperty in TempClassType.GetProperties do
begin
for TempAttribute in TempProperty.GetAttributes do
begin
WriteLn('The ', TempProperty.Name, ' has the ', TempAttribute.ToString, ' property.');
end;
end;
end;

procedure DoMultipleAttributes;
var
Context: TRTTIContext;
TempType: TRttiType;
TempAttribute: TCustomAttribute;
begin
TempType := Context.GetType(TMultipleAttributes);
WriteLn(TMultipleAttributes.ClassName, ' has the following attributes: ');
for TempAttribute in TempType.GetAttributes do
begin
WriteLn(' ', TempAttribute.ToString);
end;
end;



{ TAttributesEverywhere }

function TAttributesEverywhere.DoThat(aObject: TObject): integer;
begin
Result := aObject.GetHashCode;
end;

procedure TAttributesEverywhere.DoThis(aString: string);
begin
WriteLn(aString);
end;

procedure TAttributesEverywhere.SetSomeProperty(const Value: Extended);
begin
FSomeProperty := Value;
end;

end.
Автор: sergionn
Дата сообщения: 31.03.2015 10:51
Нда, позорный баг в fmx под win8, когда
при нажатии на иконку аппа в панели задач, и затем еще одного нажатия для возврата,
окно из "распахнутого" состояния переходит в нормальный режим само по себе
так и остался в xe8
Автор: dred2k
Дата сообщения: 31.03.2015 10:55
Наблюдение: если ставить XE8 только для текущего юзера, папка с распакованным инсталлом {C49877F5-B9A4-4C4D-AB8D-F7F9DA1A9BBB} создается в "C:\Users\<user>\Local Settings\" (если для всех юзеров - то в "C:\ProgramData\").
Автор: nyinick
Дата сообщения: 31.03.2015 11:28
AlekXL,

Цитата:
научитесь тогда правильно формулировать вопросы, что бы получать правильные ответы  
я это умею. Я спрашивал:


Цитата:
разве я об атрибутах вообще спрашивал? Повторяю вопрос:
Цитата: вопрос -- атрибуты(что?) для аргументов ф-й или методов(для чего?, какие?) : что это такое?

Ну что тут ещё сказать... это как анекдоте:
Забыл мужик кошелёк в пабе, возвращается и спрашивает у официанта:
- А вы не находили тут кошелёк? А то забыл понимаете ли...
- Такой с крокодильей кожи коричневого цвета с блестящей застёжкой?
- Да, да, он самый
- Неа, не находил ))


Цитата:
Атрибуты для аргументов ничем не отличаются от атрибутов для других элементов языка 

На стек-оверфлове есть вопрос, аналогичный заданному AlekXL, с конкретным ответом и примером:
http://stackoverflow.com/questions/22954446/is-it-possible-to-use-attributes-on-delphi-method-arguments


Цитата:
Нда, позорный баг в fmx под win8, когда при нажатии на иконку аппа в панели задач, и затем еще одного нажатия для возврата, окно из "распахнутого" состояния переходит в нормальный режим само по себе так и остался в xe8

Да, есть такое
Ну этот баг самому проще поправить чем дождаться пока Эмбаркадеровцы пофиксят.
Автор: sergionn
Дата сообщения: 31.03.2015 12:56

Цитата:
Ну этот баг самому проще поправить чем дождаться пока Эмбаркадеровцы пофиксят.

ага уже "наисправлялись", но вопрос не в этом,
просто некоторое время назад один из разрабов был поставлен в курс этого бага - результат исправления "на лицо"
p.s. и я молчу про другие кочующие из версии в версию, весьма очевидные и легко исправляемые....

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129

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


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