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

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

Автор: Frodo_Torbins
Дата сообщения: 02.07.2015 15:39
Что касается винконтролов, то если у них есть парент, то они рисуются на нем. По идее Аэро работает только с окнами без родителя.

Добавлено:
Что там с gl не знаю, возможно он просто так криво интегрирован в эту схему.
Автор: VitProff
Дата сообщения: 05.07.2015 12:29
У меня есть проект на Delphi 7, система отчетности которая работает с базами на DBF и экспорт данных в Excel. Проект старый и я решил переписать его под более новую IDE и новую базу данных.

Подскажите какую с новых IDE лучше использовать?
Нужно чтоб приложения хорошо работало на всех ОС Windows включая Windows XP.
Чтоб среда быстро компилировала и не падала при работе с большим проектом.
Автор: ZloyBrawler
Дата сообщения: 05.07.2015 13:37
VitProff
https://ru.wikipedia.org/wiki/Microsoft_Visual_Studio
Автор: VitProff
Дата сообщения: 05.07.2015 15:43
ZloyBrawler
Я знаю что Visual studio хорошая среда разработки но она для языка C++ C# а я спрашиваю о новых средах под Delphi. Какая из новых XE5-XE8 лучше работает с VCL, без проблем запускается на ХР и не падает при компиляции большого проекта?
Автор: V1s1ter
Дата сообщения: 05.07.2015 21:41
VitProff
Я остался очень доволен 2007-й и удовлетворен XE7. Проблемы имел с XE3 и XE5 в плане встроенного отладчика.
Возможно стоит сначала попробовать 2007, чтобы обновить проект и среду, но не трогать пока строки.
В Вашем случае вполне возможно что проект откомпилируется сразу, если найдете нужные библиотеки.
Под "сразу" я понимаю незначительные изменения, в основном в типах и очередности передаваемых параметров в функциях.
Автор: doxtur
Дата сообщения: 06.07.2015 06:56
ребята, спасибо за комментарии про запись в лог - почерпнул для себя полезное, буду делать
Автор: Frodo_Torbins
Дата сообщения: 06.07.2015 18:34
VitProff
Про промежуточную остановку на D2007 полностью поддерживаю. Это даст возможность обновить компоненты, но не затрагивать строки и юникод. Что касается иде, то последние версии (начиная с XE3) не работают на ХР, в отличие от написаного в них софта. Порекомендовать могу XE7, заодно и FireDAC сможете использовать.
Автор: kaz_av
Дата сообщения: 06.07.2015 21:09
Frodo_Torbins

Цитата:
Что касается иде, то последние версии (начиная с XE3) не работают на ХР

Прекрасно работают, включая XE8.
Автор: doxtur
Дата сообщения: 07.07.2015 06:56
в общем XE с update1 чуть лучше - но все равно много чудес с iOS. Делаю приложение в основном под Windows, когда в конце дня проверю на iPad - бывает большая разница по сравнению с Виндой.

Крайний раз поймал вот это, хотя у меня и iOS 8.1:

#2 App Orientation Incorrect
If you are deploying your apps to an IOS 8.3 device and you experience an issue where the app appears rotated 90 degrees there is something you can check for which may fix the issue. Calling Application.ProcessMessages in the OnFormCreate event can cause this issue. Check your code and eliminate the line or use an IFDEF to remove it from your IOS app. A second way to take care of it is to move the code that uses Application.ProcessMessages out of OnFormCreate and have it execute later (via a TTimer for example). If this does not fix your issue you can also go to Project Options and Enable Custom Orientation functionality and check all except ‘Landscape Home Left’. You can see a QP report here and a second QP report here.

http://www.fmxexpress.com/debugging-ios-8-3-and-workarounds-for-delphi-xe8-firemonkey-on-ios/
Автор: Frodo_Torbins
Дата сообщения: 07.07.2015 10:58
kaz_av
По крайней мере из документации поддержку ХР убрали именно в XE3.
Автор: AlekXL
Дата сообщения: 08.07.2015 17:52

Цитата:
По крайней мере из документации поддержку ХР убрали именно в XE3.

но негласно прекрасно работает и установщик, и среда(я проверял XE7), и Win32 приложения, и отладчик.
Они убрали, очевидно, WinXP, чтобы не было претензий, но это же не М$, чтобы намеренно ломать совместимость
весь базовый функционал в винде был еще со времен неувядаемой W2k
Добавлено:
doxtur

Цитата:
Делаю приложение в основном под Windows, когда в конце дня проверю на iPad - бывает большая разница по сравнению с Виндой.

по мне так, это будни кросс-платформы. Даже если таргетируешь только под Win, но нужно чтобы под 6.+ взаимодействовало с UAC, а в XP не ругалось на анрезолведы, то все равно подпиливаешь, делаешь ветвления, позднее связывание, и т.д.

Мое мнение -- ни одно серьезное приложение, на каком бы языке оно не было написано, и не важно, для какой платформы — не обходится без костылей и workaraund-ов.
В некотором смысле, это признак качества, когда твоё приложение уже как-то функционирует, и ты лепишь костыли для того, чтобы оно работало лучше, чем как-то на каждой целевой платформе.
Автор: protoror
Дата сообщения: 09.07.2015 10:56
подтверждаю, работаю постоянно в xp sp3 на текущий момент xe8, никаких нареканий
Автор: Samotek
Дата сообщения: 09.07.2015 11:20
Привет всем! Подскажите, как добавить в XE8 File-New-Other папку со своими формами, от которых надо наследоваться в разных проектах. Shared repository проставлена, добавляю в форму вроде как в хелпе (ПКМ на форме, Add to repository). Все добавляю (и группу и форму), но ничего не сохраняется - добавить наследника от нее не могу - говорит сначала надо сохранить предыдущую и после перезапуска студии ничего не сохраняется. Может какой-то путь где-то(где?) не указал, может либу дельфийскую какую-то задизейблил(какую?). В XE7 все работало (((
Автор: Frodo_Torbins
Дата сообщения: 09.07.2015 11:35
AlekXL
Возможно из-за FM убрали.
Автор: zedxxx
Дата сообщения: 12.07.2015 15:04
doxtur

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

Вставлю и я свои 5 копеек

Есть отличная система для логирования - TSynLog из фреймворка mORMot. И не надо изобретать никаких велосипедов.
Автор: doxtur
Дата сообщения: 13.07.2015 06:18
zedxxx благодарю, по описанию - круто )

AlekXL угу, IDFEF IOS ставлю повсеместно - и это нормально )

Автор: xpin2013
Дата сообщения: 13.07.2015 11:40
Заинтересовало


Цитата:
Configuration and Deployment Guide for the Apache Cassandra* NoSQL Data Store on Intel® Architecture



--
даже с pdf-кой
Автор: xpin2013
Дата сообщения: 13.07.2015 17:47
оО. эффектик, ну ладно. . .

Я собираюсь закрыть vdbi на сурсфорже. Хватит.
Автор: dred2k
Дата сообщения: 13.07.2015 18:29
xpin2013

Цитата:
Я собираюсь закрыть vdbi на сурсфорже. Хватит.

Бросаешь или переезжаешь ?
Автор: xpin2013
Дата сообщения: 13.07.2015 19:58
dred2k

Цитата:
Бросаешь или переезжаешь ?

Да мне удавиться что-ли за 30 серебренников? Вроде помолился встал.

Batareyki ne prilagayutsya [Batareyki v komplekt ne vkhodyat] (batteries not included).avi
Автор: stanzdor
Дата сообщения: 14.07.2015 22:59
>> Я собираюсь закрыть vdbi

а ты Yasuhiro Matsumoto? ))
о чем тут вообще разговор? эта инфа разве не 2013 года?
Автор: asutp2
Дата сообщения: 24.07.2015 20:37
Народ, а работал ли кто-нибудь с com-портами в OS X? В виндах с этим проблем нет, а вот с OS X пока не знаю, как подступиться
Автор: NeoAnomaly
Дата сообщения: 24.07.2015 22:25
asutp2, как вариант что то такое использовать http://www.winsoft.sk/xcomport.htm
Автор: Sulphide
Дата сообщения: 05.08.2015 13:59
Ребята может кто подскажет... Есть компонент, который грубо говоря работает с медиафайлами. у компонента есть ***.openfile('') и компонент многопоточный, внутри себя запускает ***.onpaintevent, когда очередной кадр готов, который в свою очередь в событии ***.onpaintevent обрабатываю я. Так вот, нажатия клавиш в OnFormKeyUp и других приводят к тому, что клавишное событие может приключиться именно посередине ***.onpaintevent, то есть во время рисования. А мне в клавишных событиях надо открывать очередной файл, либо делать вещи опять таки связанные с рисованием... Как тут быть? Как можно дождаться окончания ***.onpaintevent в любом другом событии, чтобы продолжить работу?
Автор: Eternal_Shield
Дата сообщения: 05.08.2015 14:07
Sulphide
Можно добавить "текущее состояние" комопонента, а-ля аналог св-ва ComponentState и указывать там текущую операцию, а в обработчике OnFormKeyUp просто проверять состояние компонента. Если, например, в OnFormKeyUp можно будет проверить так:

Код: if ComponentState.Painting in MyComp.State then
Exit;
Автор: ZloyBrawler
Дата сообщения: 05.08.2015 15:19
Sulphide думаю что Eternal_Shield вам дельный совет дает.
Лучше дождаться завершения события не давая ход новым.
А если так нельзя, то ваш компонент открывающий медиафайлы и чего-то там рисующий, должен уметь работать асинхронно и иметь возможность прерывания операции, которую он выполняет в данный момент, чтобы можно было начать новую. При этом не нужно будет дожидаться ***.onpaintevent из-за того, что рисование прервано.

Конечно лучше бы вам тут подробнее описать чего вы программируете.
Еще один просмотрщик картинок?
Пока одна грузится и вывелась на половину стало ясно, что не та фотка или все понятно, что на ней и есть желание начать смотреть новую?
Тогда явно функция прерывания должна быть!
А иначе если нет прерывания, тогда запускается еще один поток открывания файла, а если очень быстро открывать файлы, тогда в памяти потоков будет дочерта открывающих фотки в никуда.
Автор: Sulphide
Дата сообщения: 05.08.2015 15:43

Цитата:
Тогда явно функция прерывания должна быть!
А иначе если нет прерывания, тогда запускается еще один поток открывания файла, а если очень быстро открывать файлы, тогда в памяти потоков будет дочерта открывающих фотки в никуда.

Да именно так похоже и есть, кроме того компонент не успевает судя по всему освобождать ресурсы уже открытого файла если быстро нажимать клавиши. И до полутора гигов память приложения растет очень быстро. все было бы хорошо, если бы мне не надо было бы еще и opengl для рисования использовать... А то например событие от клавиатуры может прилететь где-то внутри glTexSubImage2D или ей подобных, которые грузят дынные из ram во vram. Или между glBegin() и glEnd() - вообще косяк.
То что предлагал Eternal_Shield я делал, но в таком случае клавиши срабатывают через раз а то и через 2-3 раза - не комильфо К сожалению компонент платный, есть только bpl'ки, сильно тут не развернешься. Приложение - обычный видеоплеер, заточенный для моих личных нужд, ничего особенного. Есть плейлист, по которому перемещаюсь курсорными клавишами, при перемещении файл открывается и начинает воспроизводиться. делал тоже самое под fmx+opengl там вроде как такого кошмара не заметил (а может и внимания не обратил), сейчас захотелось однооконный интерфейс делаю на vcl..
ps даже не спрашивайте почему не чисто под fmx - пробовал - тормознее штуки я в своей жизни не видел. А мне еще и шейдеры надо использовать.
зы если кому интересно то это проект ffvcl на delphiffmpeg.ком
Автор: Frodo_Torbins
Дата сообщения: 05.08.2015 16:04
Sulphide
То есть onpaintevent обрабатывается в одном потоке, а OnFormKeyUp в другом? Тогда однозначно надо делать синхронизацию. Тут либо OnFormKeyUp и onpaintevent будут использовать одну критическую секцию, либо OnFormKeyUp сам ничего делать не будет, а только будет добавлять события в очередь, которая обрабатывается внутри потока с onpaintevent.
Автор: ZloyBrawler
Дата сообщения: 05.08.2015 16:14
Sulphide
Еще в годы институтские, друган из другого института подбрасывал задачки, сидели с ним кумекали как чего достичь, так там 3Д лабиринт делали, графическая часть на OpenGL не помню уже какие библиотеки юзали, а вот захват клавиатуры был посредством DX Input, реализовался уже иной библиотекой. Там и по лабиринту и бродить можно было и карта динамически отрисовывалась и некоторые сведения типа FPS...

Там в проге в цикле отрисовки каждого кадра, постоянно опрашивались состояния нажатия клавиш на клавиатуре, там именно опрос того, что именно сейчас нажато, а не было когда-то. Вот вам бы это наверное подошло в той или иной реализации.

А вот что с картинками делать не знаю даже, по сути, если ресурсы не загружены, то их и выводить не нужно. А если загруженные ресурсы не нужны, то нужно очищать от них память полюбасам или по некой эвристике, типа частоты использования этих ресурсов и времени последнего использования, а так же оставшейся оперативной памяти ну или в целом ресурсов системы. Все от задач как понимаете плясать нужно.
Автор: Sulphide
Дата сообщения: 05.08.2015 17:28
Frodo_Torbins
В настройках компонента есть возможность работать со всеми его ивентами как в основном потоке программы, так и в других потоках. Но сути это по большому счету не меняет особо. если не сказать, что работа в одном потоке еще хуже в разных потоках еще как-то можно дождаться завершения ивента рисования. А в первом случае ивент рисования тупо прерывается ивентом от клавиатуры. Вот тоже думаю в сторону, что обработчик клавиатуры ничего не должен делать в таком случае, а как-то складывать нажатия в буфер, который будет обрабатываться в другом месте. Опять же не запихнешь его в ивент рисования...
ZloyBrawler ага, тоже уже думал по поводу отслеживания нажатий не через ивенты... но опять же остается косяк с кнопками на форме типа вперед, назад, пауза, плей и стоп короче все сводится к тому как бы покруче "обмануть" систему... если вы понимаете о чем я:D

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129

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


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