-
Постов
69 -
Зарегистрирован
-
Посещение
-
Победитель дней
9
Сообщения, опубликованные Dmitry_4501
-
-
Только что, krapotkin сказал:
ну, вообще-то настройки в cnPack есть. Может, там нет именно того, что вам нужно...
А про форматирование всех файлов разом я вообще впервые узнал ))
Ну, если я не ошибаюсь, то Project->Format Project Sources, как раз и форматирует все юниты проекта.
-
Только что, krapotkin сказал:
CnWizards + CtrlW ?
Да, про это знаю. До текущего момента пользовался этим, но я уже несколько лет пользовался именно встроенным средством форматирования кода. К тому же я его настраивал как мне было удобно. А тот, что поставляется с CnWizards форматирует только в одном порядке, без какой-либо возможности редактирования правил форматирования.
Вопрос уже решил, но теперь форматировать смогу только по одному файлу за раз. CTRL+D (работает, причем берет параметры из настроек для Formatter), а вот если использовать через меню Project->Format Project Sources, то весь код портится сразу.
-
В 02.06.2020 в 05:43, slav_z сказал:
Formatter.zip 10.3.3
Спасибо за файл, но почему-то это не принесло ожидаемого результата((
Буду искать решение проблемы еще...
Upd: можно еще файл Embarcadero.Modeling.Formatter.dll?
Upd2: Вопрос решен! (не знаю, одно ли то же это или нет, но форматирование кода через меню Project->Format Project Sources поганит весь код, а если использовать сочетание клавиш CTRL+D, то он конечно форматирует только текущий документ (вроде), то все работает нормально).
-
Приветствую. Перешел на 10.4, но столкнулся с проблемой. Либо я чего-то недопонимаю, либо Embarcadero убили Formatter, ибо строки после форматирования прыгают аж на 8 табов (Tab stop), хотя в настройках все указано верно, пробовал играться с профилями утилиты, но толку это не дало. По этому пришел к следующему выводу - надо попробовать заменить Formatter на заведомо рабочий из 10.3.3.
Собственно, у меня к вам просьба. Могли бы скинуть Formatter.exe из папки Вашей среды?
Он находится по следующему пути: ДИСК:\ПУТЬДОСТУДИИ\bin\Formatter.exe (например у меня: C:\Embarcadero\Studio\bin\Formatter.exe). Прошу скинуть его сюда.Спасибо!
Upd: К слову о том, что происходит во время форматирования кода при помощи Formatter.exe (скрины под спойлером)
СпойлерДо форматирования кода
После форматирования кода
-
Держите, кому нужно. В архиве библиотеки BASS (для Windows и Android), а так же все найденные мною дополнения (У меня есть дополнения не для всех платформ. Например, какие-то дополнения я нашел только под Windows, а библиотеки каких-то дополнений BASS есть не на каждый процессор)
ВАЖНОЕ ЗАМЕЧАНИЕ: Для дополнений у меня нет юнитов, но их не сложно сделать самому. Просто скачиваем с сайта un4seen необходимые плагины для Windows и переписываем его на динамическую загрузку (LoadLibrary, GetProcAddress и т.д.).
Библиотеку протестировал, проверил не все функции, но основное все работало прекрасно. Проверял следующее:
BASS_Init, BASS_StreamCreateFile, BASS_StreamCreateURL, BASS_ChannelPlay, BASS_ChannelPause, BASS_ChannelIsActive, BASS_ChannelGetAttribute, BASS_ChannelSetAttribute, BASS_ChannelGetLength, BASS_GetConfig, BASS_SetConfig, BASS_GetConfigPtr, BASS_SetConfigPtr (вроде все, может что-то упустил). Все работало на Windows и Android.
Если нужна будет помощь с подключением библиотеки - задавайте вопросы
-
Приветствую. Имеются кнопки, в стиле которых есть иконки. Захотелось немного сэкономить свое время и вместо того, чтобы делать несколько отдельных иконок с разными цветами, я подумал раскрасить одну иконку в нужный цвет в нужный момент времени.
Например:
Кнопка неактивна - иконка темно-серого цвета.
Кнопка активна - иконка черного цвета.
Кнопка выделена курсором (MouseEnter) - иконка например темно-синего цвета.и т.д.
По сути подумал использовать встроенный эффект TFillRGBEffect. Цвет легко меняется, в дизайнтайме все работает хорошо, но стоит только запустить программу, как во время инициализации формы приложение немного зависает а после вылетает с ошибкой. (скрины ошибок под спойлером).
СпойлерЗапустив программу в режиме отладки, то срабатывает исключение EClassNotFound.
.
-
В общем. Вот пример.
Для его работоспособности пришлось добавить одну строчку в файл FMX.Platform.Win.pas, связана она с тем, чтобы получить возможность перехватывать сообщения окна. Решение взято было отсюда:Далее, использовал этот код (написанный на C#). Взяв решение оттуда и просто чуть-чуть переделав его под Delphi смог получить нативную тень над формой.
Проверил на форме с нестандартным стилем (который затрагивает заголовок формы), там есть проблема (не понял, как ее решить, да и не копал особо в эту сторону). Если использовать тень, то заголовок формы перекрывается родным от Windows и из-за этого он полностью ломается (не реагирует на перемещение, изменение размеров и кнопки так же неактивны).
Так что самым простым вариантом с нестандартным стилем для меня оказалось - просто использовать BorderStyle - None, конечно, тогда придется вручную реализовывать бордюр и заголовок, а так же перемещение за заголовок и изменение размеров формы за бордюры.
Но, благо в Firemonkey уже это все реализовано в виде двух простых функций StartWindowDrag и StartWindowResize.
В общем, если у кого-то есть идеи, как это можно улучшить и САМОЕ ГЛАВНОЕ решить проблему с нестандартными стилями - буду благодарен за помощь.
-
1 час назад, Алиса Романец сказал:
К моему сожалению, я не такой профессионал Delphi, чтобы полноценно переписать код, что там был. Лучшее, что я смогла сделать - ниже. Однако, тень осталась такой же, как на скрине.
procedure TForm1.CreateHandle; begin inherited CreateHandle; var hWnd: HWND := FormToHWND(Self); SetClassLong(hWnd, GCL_STYLE, GetClassLong(hWnd, GCL_STYLE) or CS_DROPSHADOW); var m: MARGINS; m.cxLeftWidth := 0; m.cxRightWidth := 0; m.cyTopHeight := 0; m.cyBottomHeight := 1; DwmExtendFrameIntoClientArea(hWnd, m); end;
Так и я тоже)
Решение я вообще собирал отчасти по кусочкам с различных форумов. Так же была и ваша часть)
Но, когда я сделал все, у моего окна было "две" тени, одна нативная от Win10, вторая, как у вас. Так что строчка SetClassLong(...) не пригодилась мне, убрав ее я убрал такую тень.
Как буду за домашним пк, то скину сюда пример с кодом. -
1 час назад, Алиса Романец сказал:
Решение, написанное ХрисТ'ом: во-первых для VCL (кто-то ранее на форуме уже объяснял, почему в Мартышке нет процедур CreateParams и WndProc), во-вторых - часть его решения уже была переписана вручную (см. обновление к вопросу).
Мне нужно решение именно для FireMonkey, потому и пришла на этот форум.
CreateParams я не использовал, WndProc тоже (только в одном файле, FMX.Platform.Win вроде).
Есть только одно различие, я не использовал кастомный стиль, использовал пока только Borderless форму и все. Но сегодня попробую еще и с кастомным стилем.По итогу получилась Borderless форма с нативной тенью из Windows 10.
-
-
В 20.12.2019 в 01:46, #WAMACO сказал:
а нам рассказать?
Да пожалуйста). Там просто глупая вещь получилась (очень). Забыл подключить библиотеку (LoadBASSDLL)
Так что тут ничего сверхъестественного, после этого все, что я хотел работало нормально.
-
Все. Кажется понял в чем дело. Библиотека завелась нормально.
-
2 часа назад, sinuke сказал:
официальной delphi-обертки для андройда нет (по крайней мере на сайте bass). поэтому нужно смотреть каких типов передаются параметры в вашем случае для андройда
п.с. я сам себе делал андройд-версию - скачал с сайта bass либы и их делфи-обертки. внес изменения и вроде работает. ключевое - вроде. потому как не могу утверждать что 100% правильно.
и лично у меня там вообще PAnsiChar нет в этом месте
PAnsiChar - это я под Windows делал. Таким образом я смог с легкостью пользоваться этими функциями (BASS_GetConfigPtr и BASS_SetConfigPtr) и получать\устанавливать значения строковых параметров. В Android же такой тип не поддерживается и соответственно что-то другое нужно.
Я сейчас еще ковыряю проект.
PAnsiChar изначально и нет в pas файле. У меня так же, что в Win версии, что в Android версии на этих функциях идет Pointer. -
Приветствую. На просторах интернета нашел BASS-библиотеку для Android и соответственно обертку для нее под Delphi.
Вроде бы все работает нормально, но вот при настройке библиотеки при помощи методовBASS_GetConfigPtr, BASS_SetConfigPtr для работы со строковыми параметрами возникает проблема.
На Windows с этим я легко работал, там достаточно использовать такую конструкцию
PAnsiChar(BASS_GetConfigPtr(configId)) и получаем значение. BASS_SetConfigPtr(configId, PAnsiChar(value)) и задаем значение.
Но вот под Android такой способ не проходит, как минимум по одной причине - он не понимает, что такое PAnsiChar. На docwiki.emarcadero.com, есть вот такая статейка. В которой написано, что PAnsiChar нужно заменить одним из трех: System.String, System.MarshalledString или System.SysUtils.TStringBuiler
Только вот, если использовать MarshalledString, то при попытке получить значение приложение просто намертво зависает и все.
Потом я подумал, так как библиотека написана на Java (вероятно), то может стоит попробовать использовать JNI в работе с ней, так как в Java файле, который прилагался вместе с библиотекой. Там я нашел объявления этих функций и заметил, что тип возвращаемого значения Object (ну, не зная Java я просто предположил, что это тоже просто ссылка на значение, например как PAnsiChar в Delphi на Windows).
Но, при попытке как-либо использовать это натыкаюсь на проблемы в виде ошибки компиляции, либо очередном зависании приложения.Так как возвращается Object, то решил попробовать вариант с JObject и JString, но ни один вариант не хочет работать, опять ошибки на стадии компиляции, либо зависание приложение. Может быть, я что-то не так делаю.
В общем, буду признателен за помощь! -
BlurBehind Control.
Компонент позволяет использовать размытие, по типу, которое реализовано в WIndows 10, т.е компонент позволяет "размыть" то, что находится под ним.
Пусть и увидел это непосредственно в самой студии на стартовой странице (Welcome Page), но все-таки подумал скинуть ссылку сюда.
Исходники: https://github.com/grijjy/CodeRage2019/tree/master/BlurBehind
Видео:Спойлер
-
Приветствую. Имеется необходимость получить список всех видимых (GUI) компонентов, установленных в Delphi. Я видел где-то, что можно как-то попробовать через ToolsAPI это сделать, но ничего толкового на эту тему так и не нашел. Может есть у кого мысли по этому поводу?
Если возникнет вопрос: для чего тебе это?
Ответ: Для приложения LivePreview, которое идет вместе со студией для того, чтобы видеть то, что размещаю на форме непосредственно на устройстве.
Спасибо! -
Имеются ли у вас на примете какие-нибудь библиотеки для реализации видеоплеера на Android в среде Delphi?
Не считая этого:http://www.flashavconverter.com/
-
В общем. Embarcadero решились таки исправить проблему с кнопками сами и теперь приложение у меня работает нормально, все кнопки с пульта отлавливаются и коды приходят, но все же бегло просмотрел файлы и сразу же наткнулся на то, что не все кнопки были добавлены, ибо у Google коды кнопок идут от 0 до 285, а вот Embarcadero добавили только от 0 до 221, не знаю, почему не добавили все.
Используемая версия IDE: Rio 10.3.2
-
Приветствую.
Хотелось бы узнать у тех, кто уже перешел на 10.3.2. Исправили ли Embarcadero проблему с тем, что Code Insight находил ошибку в коде, когда пытался объявлять переменные внутри блока begin\end?
Можно конечно отключить детектирование синтаксических ошибок и тогда все становится нормальным, но вот лично для меня это не самый удобный способ.
Соответственно, те, кто уже обновил на 10.3.2 и у кого есть Delphi версия, могли бы проверить этот момент?
-
В общем удалось решить проблему с кнопками пульта. Теперь приложение распознает все кнопки с пульта. Если кому-то нужно, прикрепил архив. (Delphi 10.3.1 Rio)
СпойлерУстановка: (архив содержит pas файлы, которые я просто перекинул в папку с dcu), а именно: Диск:\ПутьДоСтудии\lib\android\release (Пример: C:\Program Files\Embarcadero\Studio\lib\android\release).
Предварительно (либо переименовав, либо вообще удалив соответствующие DCU-файлы. Лучше переименовать).
-
Задался идеей написания IPTV приложения "для себя", в котором при желании смог бы реализовать что-то необходимое и удалить то, что не нужно.
Собственно вопрос в другом: Я написал простое приложение, которое отлавливает коды кнопок с пульта, приложение по сути самое банальное, использует OnKeyDown и OnKeyUp (чисто для теста). И по нажатию на кнопку на пульте высылает например в Memo или ListBox Информацию о нажатой кнопке (включая ее код).
Но суть в том, что далеко не все кнопки таким образом распознаются. Для примера:
Кнопки громкости, назад, домой, увеличение\уменьшение громкости, стрелки(влево, вправо, вверх, вниз) и центральная кнопка (по совместительству OK).
Цифры все определяются, как одна - 0
Кнопки, которые не определяются (не срабатывает событие, ибо если был бы неизвестен код, то думаю, в таком случае получил бы все, кроме кода кнопки), но по нажатию кнопки, которая не определяется приложением - ничего не происходит вообще.
Вопрос: Есть ли возможность как-то "научить" приложение распознавать эти кнопки? (Я где-то читал, может даже и здесь, что это все так реализовано именно на уровне самого FireMonkey, будто этих кнопок вообще не существует).
Если эта тема уже поднималась на форуме или вопрос очень просто решается - извиняюсь)
Решение: http://fire-monkey.ru/topic/5624-как-отловить-кнопки-пульта-ду/?do=findComment&comment=36399
-
16 минут назад, GASCHE сказал:
А как настраивать?
У компонента TNetHttpClient насколько я помню есть свойство Asynchronous, если выставить значение в true, то работа компонента станет асинхронной, а вот про THttpClient такого сказать не могу (по крайней мере я не понял как там можно настроить его на асинхронную работу), но проблему асинхронности с компонентом THttpClient можно решить с помощью потоков.
-
В общем, проблема с компонентом такая: при нажатии на кнопку (MasterButton), если нажимать на нее быстро (т.е открывать\закрывать) то ширина панельки постепенно меняется (сужается).
Такой баг происходит в том случае, если кнопка расположена непосредственно внутри самого компонента, если же кнопка отдельно, то таких проблем я не заметил.
Проверить у себя это очень просто: разместите на форме компонент TMultiView, выберите режим (NavigationPane или PlatformBehavior), разместите кнопку внутрь компонента (MasterButton) а потом в самой программе быстро нажимайте на кнопку и смотрите на результат. Панелька просто сужается до состояния "закрыт", когда видны только иконки без текста.
-
C Картинкой разобрался, теперь пытаюсь разобраться с панелями, они у меня в роли модальных окон хочу сделать анимацию открытия и закрытия. Пример: анимация открытия и закрытия окон в Windows
[РЕШЕНО]: Как отловить кнопки пульта ДУ
в Android
Опубликовано · Изменено пользователем Дмитрий Потапов
Можно поконкретнее, пожалуйста?