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

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

Автор: apnss
Дата сообщения: 08.11.2013 11:00
на win64 этот баг не воспроизводится там все норм
Автор: Arioch1
Дата сообщения: 08.11.2013 11:39
Да, любопытно, но дело не в BL как таковом, а в несохранении переменной в память изх регистра. Как у меня было со строками, и как в упомянутом на SQL.ru потере Self

Смотрим неоптимизированный код:


TrueFalse.dpr.18: Begin
0041A3E8 55 push ebp
0041A3E9 8BEC mov ebp,esp
0041A3EB 83C4F8 add esp,-$08
0041A3EE 53 push ebx
0041A3EF 56 push esi
0041A3F0 57 push edi
0041A3F1 8845FF mov [ebp-$01],al ******************************************

TrueFalse.dpr.19: If ATestBoolParam Then Writeln('True') Else Writeln('False');
0041A3F4 807DFF00 cmp byte ptr [ebp-$01],$00
0041A3F8 741B jz $0041a415
0041A3FA A120E64100 mov eax,[$0041e620]
0041A3FF BAC8A44100 mov edx,$0041a4c8
0041A404 E84BAAFEFF call @Write0UString
...

TrueFalse.dpr.20: If ATestBoolParam Then Writeln('True') Else Writeln('False');
0041A42E 807DFF00 cmp byte ptr [ebp-$01],$00
0041A432 741B jz $0041a44f
0041A434 A120E64100 mov eax,[$0041e620]
0041A439 BAC8A44100 mov edx,$0041a4c8
0041A43E E811AAFEFF call @Write0UString
...

TrueFalse.dpr.19: Begin
0041A3C4 55 push ebp
0041A3C5 8BEC mov ebp,esp
0041A3C7 51 push ecx
0041A3C8 53 push ebx
0041A3C9 56 push esi
0041A3CA 57 push edi
0041A3CB 8BD8 mov ebx,eax ******** Параметр
0041A3CD 8D5DFC lea ebx,[ebp-$04] ******** WTF ??? Pointer to... WHAT ?


TrueFalse.dpr.20: If ATestBoolParam Then Writeln('True') Else Writeln('False');
0041A3D0 84DB test bl,bl
0041A3D2 741B jz $0041a3ef
0041A3D4 A120E64100 mov eax,[$0041e620]
0041A3D9 BA98A44100 mov edx,$0041a498
0041A3DE E871AAFEFF call @Write0UString
.....

TrueFalse.dpr.21: If ATestBoolParam Then Writeln('True') Else Writeln('False');
0041A408 84DB test bl,bl
0041A40A 741B jz $0041a427
0041A40C A120E64100 mov eax,[$0041e620]
0041A411 BA98A44100 mov edx,$0041a498
....
0041A416 E839AAFEFF call @Write0UString

Тоесть дело вовсе не в if'ах как таковых, а в том, что за каким-то чёртом лысым оптимизатор выдумывает, что у него есть локальная переменная (а её нет, если за неё не считать push ecx) и берёт на неё указатель (который никому не нужен), при этом разрушая параметр.
Автор: deks
Дата сообщения: 14.11.2013 19:32
Arioch1

Ассемблер убил активность в ветке на неделю!

all

В этой ветке _http://talk.remobjects.com/t/how-to-talk-to-remobject-sdk-servers-from-delphi-mobile-firemonkey-ios-and-android/3137/52 довольно забавное обсуждение про Дельфи мобайл и RemObjects. Меня расслабил последний пост. Вкратце, интрига была такая: Марк объяснил что Эмро не очень хочет быть партнёром, а РО в свою очередь не хотят тратить ресурсы на сомнительную обезьяну. Тут восстали юзеры - типо, фигня вопрос, ща мы сами все запилим! И ... развязка предсказуема))
Автор: sergionn
Дата сообщения: 14.11.2013 23:35
deks
я вот еще в этой связи вспомнил Jason Southwell, _https://forums.embarcadero.com/message.jspa?messageID=572167#572167
который очень серьезно взялся за firemonkey и даже собирал на кикстартере на нативные компоненты, а потом я так понял, толи после очередных "изменений" в файерманки, после которых ему пришлось бы перелопачивать огромное количество написанного кода, толи просто не увидел перспективу после неудачи на кикстартере, короче не пошел он дальше что ли - вот этого я так и не понял, что он хотел сказать своей последней фразой:
There have been some major problems moving forward but I'm unfortunately a bit constrained on what I'm allowed to say even though I'd like to be a lot more open about things. Rest assured that there will be some news coming soon as soon as I
Автор: De Niro
Дата сообщения: 15.11.2013 01:54
Случайно наткнулся на такой баг.
Нужно было собрать библиотеку dll, с иконками. Никакого кода в ней быть не должно, только иконки. Чтобы Delphi не "дополнила" DLL'ку своими VCL'ами и RTL'ами, решил собрать её в FASM. Компилятор ресурсов - взял консольную утилиту brcc32.exe из XE5. Но .RES файл на выходе получить так и не удалось. Как оказалось brcc32.exe не может собрать .RES файл, если в исходных .ico файлах присутствуют иконки большого размера (у меня были 256*256). Но если создать библиотеку из среды Delphi и те же самые .ico файлы добавить через Project =>> Resources and Images, то DLL с иконками собирается без ошибок.
Получается что компилятор ресурсов которым пользуется Делфовый компилятор - обновили, а на консольную утилиту забили.
В итоге воспользовался MS'овским rc.exe, который кстати так же поставляется с delphi.
Автор: Eternal_Shield
Дата сообщения: 15.11.2013 08:02

Цитата:
There have been some major problems moving forward but I'm unfortunately a bit constrained on what I'm allowed to say even though I'd like to be a lot more open about things. Rest assured that there will be some news coming soon as soon as I

Было несколько серьёзных проблем в процессе (при движении вперёд). Не могу рассказать всех подробностей, т.к. ограничен в свободе слова .. даже несмотря на то, что люблю более свободно говорить о вещах. В скоре будут ещё новости, будьте уверены ...
Вот как то так ... ждём-с до первой звез новостей

De Niro

Цитата:
Получается что компилятор ресурсов которым пользуется Делфовый компилятор - обновили, а на консольную утилиту забили.  

Неверный вывод. IDE тоже использует brcc32.exe для сборки ресурсов. Весь фокус заключён, наверняка, либо в содержимом rc файла, либо в ключе командной строки. Это как вариант.
Автор: A_V
Дата сообщения: 15.11.2013 09:31
De Niro
в составе студии есть более новый сборщик - cgrc.exe, попробуй с ним
Автор: sergionn
Дата сообщения: 15.11.2013 10:41

Цитата:
Вот как то так ...

да перевод то понятен, непонятен вывод:
Он пилит, что-то крупное, например по заказу emb делает нативные контролы для всех платформ, под одной оберткой, как и планировал на кикстартере, в блоге он молчит как партизан.
Может именно поэтому emb не шевелиться в этом направлении ожидая результата от команды Джейсона?
Может есть все-таки кроссплатформенное будущее у delphi?

Автор: Arioch1
Дата сообщения: 15.11.2013 12:41

Цитата:
я так и не понял, что он хотел сказать своей последней фразой:


Может он TeamB или MVP или какой-нибудь Technology Partner?
Им вообще нельзя ничего недоброжалетельного в адрес EMBT говорить, инчае сразу лишение статуса


Добавлено:

Цитата:
И ... развязка предсказуема


Так и вижу Марка с trollface. Ну что, попробовал, убедился, что не мы идиоты, а это правда сложно ?

Хотя я не понимаю, почему бы просто запил под Delphi/LLVM не переориентировать на FPC в таком случае.
Автор: q111111
Дата сообщения: 15.11.2013 16:15
.,
Автор: Arioch1
Дата сообщения: 15.11.2013 16:53
...вот и на этом форуме появилась своя "девочка Машенька 10 лет"

А начать надо с поиска обучающих статей, например

http://habrahabr.ru/post/164853/
http://habrahabr.ru/post/131662/
http://toster.ru/q/20502
Автор: ermakov_igor
Дата сообщения: 15.11.2013 18:12
q111111
http://startandroid.ru/ru/uroki/vse-uroki-spiskom
Автор: valgreesh
Дата сообщения: 15.11.2013 21:49
sergionn

Цитата:
Он пилит, что-то крупное, например по заказу emb делает нативные контролы для всех платформ, под одной оберткой, как и планировал на кикстартере

Меня после прочтения аналогичная мысль посетила

Добавлено:
Абракадабра набрасывает: Delphi XE6 на экране смарта
Автор: De Niro
Дата сообщения: 16.11.2013 00:46
Решил подробнее разобраться с компиляторами ресурсов и вот что накопал:

brcc32.exe - Borland Resource Compiler
cgrc.exe - The compiler-binder that is called by the IDE (посути это ретранслятор)
rc.exe - Windows SDK Resource Compiler

При компиляции, IDE вызывает cgrc.exe и передает параметры:

-c65001
-foTest.res
F:\Projects\Test\tmpAD0B.tmp

cgrc.exe меняет тире на слэш и передает дальше rc.exe

/c65001
/foTest.res
F:\Projects\Test\tmpAD0B.tmp

В IDE есть настройки компилятора ресурсов Project =>> Options =>> Resource Compiler =>> Resource compiler to use
но среда игнорирует этот параметр. Независимо от того что там выбрано, IDE всегда использует Windows SDK Resource Compiler
Автор: sergionn
Дата сообщения: 18.11.2013 10:22
Установил давеча эту прогу, аннонсируемую Дэвидом И: _http://blogs.embarcadero.com/davidi/2013/11/17/43000/
Девайс на mediatek 1,2Ггц 2 ядра, 512ОЗУ, mali400mp, 960x540, android 4.2.2
вот 5 минут исследования:
1) 42Мб на девайсе - 12Мб данные = 30Мб за грид, нехило! - 2D демо-проект игры на unity3d 4.3 идущий в примере - с текстурами и прочими ассетами весит 30Мб!
2) Шрифты которые в самом гриде (не в заголовках) расплывчатые, как было в xe2 на win
3) На некоторых темах (скинах) при нажатии на кнопку заголовка, подсвечивается совсем не кнопка, а что-то рядом
4) При прокрутке вниз под конец начинаются тормоза
5) Грид перемещается только в одном направлении по вертикали, скроллинга по горизонтали, а также какого-либо выравнивания по экрану нет! Даже web-аппы умеют делать это!
Автор: X11
Дата сообщения: 18.11.2013 10:56
1. Samsung Galaxy S2, Andriod 4.1.2, экран 480x800, CPU Samsung Exynos 4210, 1200 МГц 2 ядра, RAM 1 Gb, Видео Mali-400 MP
2. Есть расплывчатость, а также шрифты прыгают, а также буквы сверху обрезаны некоторые.
3. Не пойму, как выбирать темы оформления.
4. Прокрутка довольно шустрая, что вверху, что внизу.
5. Скроллинг по горизонтали есть. Внизу узкая полоса прокруки по горизонтали. Правда, есть неудобство в том, что узкая она.
Сетка не тормозит. Прокрутка очень быстрая, не знаю, сколько там записей.
Автор: sergionn
Дата сообщения: 18.11.2013 11:03

Цитата:
Не пойму, как выбирать темы оформления.

сверху справа, текст какой не помню, помню по ощущению что за ui дизайн руки оторвал бы по самую майку (спилил уже демку)

Цитата:
Внизу узкая полоса прокруки по горизонтали. Правда, есть неудобство в том, что узкая она.

не смог ее подцепить, даже не понял что это прокрутка
как бы на мобильных девайсах такой прокрутки вообще быть не должно, все должно прокручиваться,
цепляясь за основной экран...........
Автор: X11
Дата сообщения: 18.11.2013 11:09

Цитата:
Цитата:
Не пойму, как выбирать темы оформления.

сверху справа


сверху справа у меня крестик для очистки строки ввода SearchGrid и всё
как сделать снимок окна, не могу найти

Добавлено:
Я понял. Нужно развернуть экран горизонтально, тогда появляется выбор стилей.
Автор: sergionn
Дата сообщения: 18.11.2013 11:13

Цитата:
сверху справа у меня крестик для очистки строки ввода SearchGrid и всё

а экран в landscape режиме? переверни в горизонтальное положение может появится?
Автор: X11
Дата сообщения: 18.11.2013 11:20
вот как у меня

http://f4.s.qip.ru/37EZx9MS.png
Автор: sergionn
Дата сообщения: 18.11.2013 11:25

Цитата:
вот как у меня

да уж, у меня буквы не пляшут, но смазаны также.
видимо разрабы тестируют fm на 2 -3 девайсах с hd разрешением,
и адроидом от 4.2............

p.s я изучаю qt 5.2 (хотя там тоже не все гладко, но таких визуальных косяков нет)
unity3d, и родной android - но с дельфи под адроид, пока однозначно нет, обидно! (((
Автор: X11
Дата сообщения: 18.11.2013 11:38
а что, у qt всё хорошо с подключением к разным СУБД?
Я вот щупаю Android Studio и там всё печально, т.к. есть поддержка только одной недоСУБД - SQLite

Добавлено:

Цитата:
видимо разрабы тестируют fm на 2 -3 девайсах с hd разрешением,


там же написано:
This app was tested on the 2nd generation Nexus 7 and uses TClientDataSet/TDataSource.
Автор: deks
Дата сообщения: 19.11.2013 09:04
X11

Справедливости ради отметим, что мобильное устройство - это не локальное устройство в корпоративной сети. мобильное устройство хорошо тем, что работает даже вне стен офиса. С мобильного устройства не нужно прямое подключение к СУБД. SQLite на мобильном клиенте нужен исключительно как менеджер кэша (чем он и занимается в браузерах).

Нужно подключение к middle-tier типа WebAPI (от ASP.NET), RO SDK/DA, любой REST сервер и тп. Ну - DataSnap в конце-концов.

Светить БД в интернеты - это оч несекьюрно. Плюс с точки зрения архитектуры и скорости работы сети, логичнее сделать специальный API для мобилок - чтобы они за одно обращение к этому API получали все нужные данные "пачкой". Тогда даже по Edge будет работать шустро!
Автор: X11
Дата сообщения: 19.11.2013 09:19

Цитата:
Справедливости ради отметим, что мобильное устройство - это не локальное устройство в корпоративной сети.


это НЕ означает, что оно НЕ может быть таковым
мало того, нет особых проблем поднять свой сервер с какой-нибудь СУБД и дать доступ через интернет
мало того, можно на планшете использовать приложение, которое работает со свое локальной базой, но умеет синхронизироваться с какой-нибудь другой, например, Firebird или MS SQL



Цитата:
С мобильного устройства не нужно прямое подключение к СУБД.

но это НЕ означает, что его быть не должно в принципе и быть не может

в общем, дальше пошёл флуд, хватит на этом
Автор: sergionn
Дата сообщения: 19.11.2013 10:45

Цитата:
в общем, дальше пошёл флуд, хватит на этом

слушай, систематические и глупые оффтопы на этом форуме, и на sql провоцируешь конкретно ты,
а когда умные люди начинают тебе объяснять, что ты приплетаешь вообще что-то левое к топику, ты начинаешь съезжать с темы и кричать как истеричка: флуд! флуд!
Это если честно уже конкретно надоело!
Своими воплями ты делаешь ЛЮБУЮ "ветку" неприятной к общению и соответственно пустой!
Мне кажется администраторам нужно по-внимательней присмотреться к твоей персоне вплоть до полного удаления с форума!
Автор: deks
Дата сообщения: 20.11.2013 12:56
sergionn
X11

Давайте конструктивнее и get technical)

По поводу прямого доступа к СУБД с мобильного устройства. Да, действительно, технически можно сделать любую ересь. Но в отрасли устоялись определенные подходы к вопросу connectivity мобильных устройств, и "это ж неспроста"!)

Почему не стоит делать доступ к СУБД с мобильного устройства? Потому как оно по-умолчанию рассчитано на работу через публичный Интернет. Соответственно, есть два соображения:
1) несекьюрность открывать БД в интернет - без комментариев; нету блокировки по IP брутфорсеров, и прямая дорога к DDOS;
2) медленная работа с сетью по прямым запросам к БД; быстрее - сделать один запрос к серверу приложения, который живет в локальной сети и сделает все необходимые запросы к СУБД.

Именно поэтому у андроида и есть куча фреймворков для работы с серверами, и только SQLite для СУБД. В будущем, когда андроиды попробуют заменить desktop PC ситуация может измениться, но тогда и доделают всю необходимую инфраструктуру. Не вижу на текущем этапе недостатков в Андроиде)
Автор: sergionn
Дата сообщения: 20.11.2013 15:40

Цитата:
Почему не стоит делать доступ к СУБД с мобильного устройства?

большинство дельфийцев, сидят на поддержке legacy систем,
о современных веб-технологиях они имеют мало представления,
как ты правильно заметил клиент-серверные технологии в их представлении ограничены локальной сетью предприятия.........

И да, мне кажется это неприемлемо, когда начинаем обсуждать одни вопросы, к примеру ui, некоторые участники дискуссии начинают съезжать с темы, в результате обсуждение сводиться в разговору уровня "школьников":
- А вот твой папа может машину поднять (а что, у qt всё хорошо с подключением к разным СУБД? ) - абсурден как сам вопрос так и непонятен уход от темы........
И да, некоторые вышеупомянутые программисты на Дельфи неверное полагают, что если программа, не может обеспечить ПРЯМОГО подключения как к минимум к десятку разных баз данных, то это уже не НАСТОЯЩАЯ программа, а то что такое прямое подключение, как минимум ушло в прошлое лет 10 назад, и как максимум просто НЕ ТРЕБУЕТСЯ они бедные ЭТОГО и не знают, ибо застряли году этак в 1995-м!
Так и хочется спросить: если у Дельфи и емб все OK с клиент-серверной технологией - краеугольным камнем в современном ит мире, а у остальных с этим беда, почему же Дельфи с каждым месяцем все больше и больше теряет свои позиции, в отличии от той же qt которая растет!!
Автор: delover
Дата сообщения: 20.11.2013 16:31
deks

Цитата:
Не вижу на текущем этапе недостатков в Андроиде)

Дибильный будильник - недостаток. В первую очередь - телефон будильник. Андроидный будильник звонит 10 минут утром и ему пофиг что все спят. Мне приходится перелазить через жену - бежать к столу - жать кнопку пауза - не дай бог ошибится. И это я делаю каждое утро по 3-4 раза. Чтобы иметь возможность проснуться вовремя - Андроид это Человек, а человек это скотина.

Добавлено:
Вернее Реклама - это человек. Андроит - г на палочке

Добавлено:
sergionn
Скажите веб технологии это чтото типо Вижуал бейсик в Микрософт документе или я не в теме?
Автор: Arioch1
Дата сообщения: 20.11.2013 16:45

Цитата:
Дибильный будильник - недостаток.

Выключи его или поставь другой.


Цитата:
Андроидный будильник звонит 10 минут утром и ему пофиг что все спят

Т.е. ты хочешь чтобы будильники не звонили, если кто-то рядом спит, а только тогда звонили, если не спит никто.
А... зачем они тогда вообще нужны ?


Цитата:
бежать к столу

1. Выключи будильник с вечера.
2. положи/повесь телефон рядом с кроватью


Цитата:
не дай бог ошибится

и что тогда ? будильник все же попытается разбудить - т.е. сделать то, зачем он нужен ?

Что-то мне этот крик души кажется каким-то не по адресу.
"Windows - говно! я открыл Блокнот, а в нём таблицы с формулами не набираются!"




Добавлено:

Цитата:
Скажите веб технологии

OpenID/OAuth - это похоже на VBA ?
mashups - использования одних сайтов (например карт Яндекса или Гугла) как часть процесса функционирования других, независимых - это похоже на VBA ?
Использование разных методов доступа к одним и тем же данным - это похоже на VBA ?
Размещение и работа одного продукта одновременно на множестве физических машин в разных частях света - шардинг - это похоже на VBA ?

Ну разве что Map/Reduce может быть похож на VBA ?

Чего-то я опять не понимаю смысла вопроса...
Вот банальные Скайп и ICQ - они в вашем представлении похожи на VBA или не очень?

Добавлено:

Цитата:
При компиляции, IDE вызывает cgrc.exe и передает параметры:   -c65001

Если правильно понимаю, это - codepage UTF-16

Интересно, зачем...

Добавлено:

Цитата:
вот как у меня   http://f4.s.qip.ru/37EZx9MS.png


На RSDNу кого-то подпись была, анимированная гифка "Розовые слоники бегают по комнате. Бегают и прыгают, сволочи ушастые!"
Причём буквы вылезали то вверх то вниз а потом бежали к другим словам и влезали в них
Автор: sergionn
Дата сообщения: 20.11.2013 17:30

Цитата:
Дибильный будильник - недостаток. В первую очередь - телефон будильник.

Стоп! а ты вообще в курсе что твой андроид, к которому ты лезешь через жену,
еще и....... компьютер! И к нему, как к любому эээ компьютеру можно поставит программу, в том числе эээээ будильник,
мне тут по секрету одно место показали где их можно тысяч дцать найти..... будильников
_https://play.google.com/store/search?q=%D0%B1%D1%83%D0%B4%D0%B8%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA&c=apps

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129

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


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