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

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

Автор: Cryogen2003
Дата сообщения: 29.08.2016 22:20
Alexey_Gawrilow
мда, много букАвок. Но надо усиливать как то.
Думаю начну с дымящегося оружия (хотел написать ствола, но как-то не так звучит ))))) )
Вообще люблю почитать его статьи, но на тему плагинов через интерфейсы вроде не читал

Спасибо Леш большое за инфу
Автор: Alexzzy
Дата сообщения: 30.08.2016 00:11
Alexey_Gawrilow
Спрошу по случаю.
Имеется бумажный вариант "Delphi 6 и технология COM" - красненькая 2002г. В интернете вижу синенькую "Delphi и технология COM" - это похоже 2-е издание 2003г. Есть ли критичные различия?

Еще очень понравилась в свое время книжечка - Эрик Хармон, Разработка COM-приложений в среде Delphi, 2000г (Eric Harmon, Delphi COM Programming).
Автор: Alexey_Gawrilow
Дата сообщения: 30.08.2016 00:18
Alexzzy

Цитата:
Есть ли критичные различия?

Не скажу, читал на уровне черновиков, до печати.

Цитата:
Эрик Хармон, Разработка COM-приложений в среде Delphi

+1

Автор: reenoip
Дата сообщения: 30.08.2016 10:58
Zatupitel, а про какую систему речь-то была? В Берлине на W10 стандартная TButton на стандартной TForm вообще так выглядит:

Автор: Frodo_Torbins
Дата сообщения: 30.08.2016 12:34
Zatupitel
У вас на первом скрине темы выключены, а на втором включены вот и вся разница. Включаются они либо в настройках проекта где указывается манифест, либо подключением файла ресурсов с манифестом. Подробности: Зачем Win32-приложению манифест? Как их включить или выключить в дизайнере форм хз.

reenoip
У вас тоже темы включены, но винда десятка (или около того).

Alexey_Gawrilow
Классно все описали. От себя могу только добавить, что если требуется запихнуть сложную VCL форму в dll-ку, и вызывать из основного VCL-приложения, то единственный рабочий вариант - это собрать и dll и приложение с рантайм пакетами одной версии. Если этого не сделать, то рано или поздно начнут проявляться различные глюки. Если собрать dll и приложение в одной версии Делфи не возможно, то единственный 100% безглючный вариант: строить гуй из скриптов и привязывать к интерфейсам или экспортируемым функциям из dll. Как с этим дела в огненной обезьяне не знаю, думаю что немного полегче, но не особо.
Автор: AlekXL
Дата сообщения: 30.08.2016 13:40
Alexey_Gawrilow

Цитата:
Как - то так.
Хочешь конкретики - уточни вопрос.

ну, вот недавно на хабре статья была про TDictionary и бакеты, рехеш и оверхед. Я исправил в исходниках, чтобы хеш поле быстрее увеличивалось, плюс некоторые баги в ртл пофиксил -- и перестроил RTL полностью.
Как оказалось, правка генерика даже в разделе реализации вызывает несовместимость дкушек, так что я перекомпилил VCL и вообще всё, что использовал с новой RTL.

Потом мне понадобился профилер. и я использовал AsmProfiler -- собрал из исходников, допилил немного.
Суть в том, что dll профилера связана с VCL для отображения резалтов, и мой проект тоже использует VCL.

Мне хотелось бы попробовать использовать свои кастомные пакеты, состоящие из модифицированных исходных текстов VCL и RTL для своих приложений. Это вообще не плагинная система, хотя говоря о плагинах, плагин на интерфейсах много слабее, чем плагин, имеющий доступ на уровне VCL и RTL. Последний может вообще почти всё-что-угодно.

Автор: Alexey_Gawrilow
Дата сообщения: 30.08.2016 15:53
Frodo_Torbins

Цитата:
что если требуется запихнуть сложную VCL форму в dll-ку, и вызывать из основного VCL-приложения, то единственный рабочий вариант

Не уверен...

1) ActiveX. В приложении реализовать Host.
[more=psvAppletHost component]
Sure, it's easy to incorporate an ActiveX component with your Delphi application at design time, but psvAppletHost component allows run-time integration.

psvAppletHost component is an ActiveX Control Container that supplies the environment for an ActiveX control to run.

With psvAppletHost you can use any ActiveX control in your Delphi application without creating a wrapper class for ActiveX control, just like in Visual Basic or MS Office. It lets you access the control's methods and properties using the standard Delphi mechanisms.

ActiveX control can be embedded in application at run-time or design-time.

- Load and activate ActiveX controls at run-time
- Register/unregister COM-servers
- Download and install ActiveX via HTTP, FTP, etc..
- Browse ActiveX properties

Since this is a freeware you are strongly encouraged to look
at the source code and improve on the components if you want to.

Serhiy Perevoznyk
http://users.chello.be/ws36637/
[/more]

2) Использовать только Windows: hWindow + TMessage
В DLL пропихнуть hInstance от Application (расшаривание очереди сообщений).
Даже DevExpress хоститься.
Host - D7, Embdedded form - D2007.
Ну, да, RTL 2 раза, по сравнению с DevExpress - копейки.


Цитата:
строить гуй из скриптов


Цитата:
Для построения расширяемых программ, можно следует добавить скриптование, но это следующий этап.


Добавлено:
AlekXL

Цитата:
даже в разделе реализации вызывает несовместимость дкушек, так что я перекомпилил VCL и вообще всё, что использовал с новой RTL

Я про что и говорю.

Цитата:
потом бац, новая версия - перебилд всего на свете своего кода.

Все одно - пересобирать ВСЕ.

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

Пришел разработчик - подложил MagicDebugPackage.bpl - и в отладке.


Цитата:
Основная цель - декомпозиция монолита на части.


Цитата:
- разный функционал на разных рабочих местах;
- разный функционал для разных клиентов.


Цитата:
- в InHouseDevelopment, и то когда все в твоей власти.



Цитата:
Последний может вообще почти всё-что-угодно.

Но какова цена!
Имхо, лучше уж тогда скриптоваться.
Автор: Frodo_Torbins
Дата сообщения: 30.08.2016 17:47
Alexey_Gawrilow
На счет ActiveX не скажу, не смотрел как с ним VCL работает. Но подозреваю, что не из каждой VCL формы можно сделать ActiveX.

Цитата:
2) Использовать только Windows: hWindow + TMessage
В DLL пропихнуть hInstance от Application (расшаривание очереди сообщений).
Даже DevExpress хоститься.
Host - D7, Embdedded form - D2007.
Ну, да, RTL 2 раза, по сравнению с DevExpress - копейки.
А вот так пробовал. В моем случае были глюки, даже если хост не содержал VCL а был минимально возможным лоадером. Что там ему не нравилось я так и не выяснил, может это были глюки одного из используемых пакетов компонент. Тем не менее, как только я включал рантайм пакеты, глюки сразу же пропадали.
Автор: Zatupitel
Дата сообщения: 31.08.2016 01:54
reenoip
С++ Builder
Да как бы кнопка обычная, без всяких скинов. Создаю пустой проект, кидаю кнопку на форму и она такая полосатая. Раньше не обращал внимания, т.к. очень редко нужно было делать большую кнопку. А тут увеличил и ужаснулся. Старый проект от ХЕ2 если открыть в ХЕ10.1, то кнопка одним цветом, как и задумано.
Frodo_Torbins
Манифестов своих не подключено, стили выключены. Со стилями вообще кнопки ведут себя как "неродные". Обычный WordWrap даже не умеют. Ембаркадеровцы говорят,что это нормально, типа перенос слов на кнопке это фича Винды, а в стилях это не будет работать. Пипец.
Могу лишь предположить, что что-то где-то кэшируется, но я проверял в двух местах, и где 10 винда и где 7....
В исходнике проекта тоже нет подключения стилей:

Код:
        Application->Initialize();
        Application->CreateForm(__classid(TForm1), &Form1);
        Application->Run();

Автор: Alexey_Gawrilow
Дата сообщения: 01.09.2016 13:10
AlekXL
Frodo_Torbins
Вот кстати, в соседней ветке, пример, как отлично внедряются VCL формы в не VCL приложения
Add-in Express
Автор: GeXamin
Дата сообщения: 09.09.2016 10:40
Пропал BDS.exe после модификации через инсталятор - думал BDE доставить(при этом список компонентов был пуст). Как теперь быть - сносить и ставить по-новой?
Автор: Steepe_Hare
Дата сообщения: 10.09.2016 09:52
Что нового будет в Токио?
Автор: reenoip
Дата сообщения: 10.09.2016 14:37
Steepe_Hare, да это вроде уже месяц как не секрет
Автор: VadimLou
Дата сообщения: 10.09.2016 23:02
ItsJustMe

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

2007 - уникальная версия. Последняя в которой есть Dot.Net. Последняя ANSI версия компилятора. Новейшие версии этого уже не могут
Автор: KDPoid
Дата сообщения: 11.09.2016 08:03
Delphi 10.1 и FireDAC его.
SQLite.
Я, с уровнем познаний: "Ух ты, как тут всё забавно."

По привычке, леплю TFDConnection, цепляю к базе.
Кладу TFDTable, указываю таблицу, активирую, заполняю поля.

В design-time всё ок.
TFDTable.Filtred = false;
TFDTable.Filter = '';

В рантайме...
FDTable1.Filtered := False;
FDTable1.Filter := 'F_ID = 1';
FDTable1.Filtered := True;
// Пока всё норм...
FDTable1.Filtered := False;
FDTable1.Filter := 'F_ID = 2';
FDTable1.Filtered := True; // Вот тут трапается.
// AEx.FMessage: '[FireDAC][Phys][SQLite] ERROR: unrecognized token: "2and"'

Я озадачен...

Таблица в SQLite:
CREATE TABLE [CHA] (
    [ID] integer NOT NULL PRIMARY KEY AUTOINCREMENT,
    [YEAR] integer NOT NULL DEFAULT 0,
    [F_ID] int NOT NULL
);

Записи в таблице есть с обоими значениями F_ID, селекты проходят, на разрушение базы грешить не с руки.

F_ID даже не PK, как оно может мешать "распознать токен"?
IndexFieldNames определся сам, и там "ID".
В Items fiMeta присутствует...

ЧЯДНТ?
Автор: kaz_av
Дата сообщения: 11.09.2016 10:10
VadimLou

Цитата:
2007 - уникальная версия. Последняя в которой есть Dot.Net.

В 2009 есть dotnet.
Автор: VadimLou
Дата сообщения: 11.09.2016 21:19
kaz_av Боже , как давно это было ... забылось. Может с помощью LLVM восстановят...
Автор: Steepe_Hare
Дата сообщения: 11.09.2016 21:30
Появилась задача написать небольшое приложение под Андроид на Embarcadero Delphi - чат внутри организации (отправка сообщений, картинок и проч.)
Как технически реализовать? Какие ресурсы почитать?
Я так понял, нужен сервер, к которому должна при запуска коннектиться программа, чтобы видеть, кто в сети и т.д.
Автор: ZloyBrawler
Дата сообщения: 11.09.2016 21:42
Steepe_Hare
http://www.commfort.com/ru/
Автор: Steepe_Hare
Дата сообщения: 11.09.2016 21:51
ZloyBrawler

Нет, нужно свое решение со своими нюансами
Автор: ZloyBrawler
Дата сообщения: 11.09.2016 21:53
Steepe_Hare
все это от лукавого
Автор: VadimLou
Дата сообщения: 11.09.2016 22:58
Steepe_Hare
Delphi Firemonkey demos on Github
https://github.com/FMXExpress/Firemonkey
BlueChat
Автор: Steepe_Hare
Дата сообщения: 12.09.2016 04:47
VadimLou


Спасибо, неплохая подборка демок
Автор: Dronton2
Дата сообщения: 12.09.2016 10:13
KDPoid
Фильтры строятся следующим образом:
1. В SQL-запросе выделяется условие "WHERE" и заключается в скобки
2. К получившейся строке добавляется условие фильтра через ключевое слово "AND"
Видимо, после вашего условия и перед AND, компонент не поставил пробел, и двойка приклеилась к ключевому слову. Появляется подозрение, что компонент не очистил условие SQL-запроса после смены фильтра.
Попробуйте посмотреть чем-нибудь: какой текст SQL-запроса передаётся из вашей программы в базу данных. Тогда станет понятно, где ошибка.
Автор: KDPoid
Дата сообщения: 13.09.2016 07:08
Ошибка выловлена, подозрения с FireDAC сняты.
Автор: zealotfan
Дата сообщения: 13.09.2016 07:14
KDPoid
Так в чём была ошибка? Интересно же
Автор: KDPoid
Дата сообщения: 13.09.2016 12:55
Причина - много кода написанного разными людьми... =)

Наставил брякпоинтов внутри FireDAC, отловил в его prepare селект, в котором пропускается пробел, увидел, что он не имеет ни какого отношения к данным, которые я фильтрую, но там делается выборка из таблицы, связанной с моей по FK. Сходил к тем датасетам, там и увидел обработчики событий, в которых лепятся фильтры, один из которых как раз и добавляет к фильтру and без ведущего пробела.
Стоило поверить, что происходящее - не баг FD, и дело пошло на лад.
Автор: SolidSnakeRU
Дата сообщения: 15.09.2016 15:26
FD (AD) на самом деле исключительно качественный продукт.
Жаль что теперь нельзя поддержать разработчиков AD покупкой лицензии.
Будь все составляющие delphi на таком уровне, делфи был бы просто другой.. лучший из лучших.
Автор: asutp2
Дата сообщения: 15.09.2016 16:52
SolidSnakeRU, можно поддержать покупкой лицензии самой делфи

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129

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


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