Перейти к содержанию

Дмитрий Потапов

Пользователи
  • Активность

    41
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Дмитрий Потапов стал победителем дня 1 июня

Дмитрий Потапов имел наиболее популярный контент!

Информация о Дмитрий Потапов

  • Звание
    Продвинутый пользователь

Посетители профиля

2 239 просмотров профиля
  1. Ну, если я не ошибаюсь, то Project->Format Project Sources, как раз и форматирует все юниты проекта.
  2. Да, про это знаю. До текущего момента пользовался этим, но я уже несколько лет пользовался именно встроенным средством форматирования кода. К тому же я его настраивал как мне было удобно. А тот, что поставляется с CnWizards форматирует только в одном порядке, без какой-либо возможности редактирования правил форматирования. Вопрос уже решил, но теперь форматировать смогу только по одному файлу за раз. CTRL+D (работает, причем берет параметры из настроек для Formatter), а вот если использовать через меню Project->Format Project Sources, то весь код портится сразу.
  3. Спасибо за файл, но почему-то это не принесло ожидаемого результата(( Буду искать решение проблемы еще... Upd: можно еще файл Embarcadero.Modeling.Formatter.dll? Upd2: Вопрос решен! (не знаю, одно ли то же это или нет, но форматирование кода через меню Project->Format Project Sources поганит весь код, а если использовать сочетание клавиш CTRL+D, то он конечно форматирует только текущий документ (вроде), то все работает нормально).
  4. Приветствую. Перешел на 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 (скрины под спойлером)
  5. Держите, кому нужно. В архиве библиотеки 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. Если нужна будет помощь с подключением библиотеки - задавайте вопросы bass.zip
  6. Приветствую. Имеются кнопки, в стиле которых есть иконки. Захотелось немного сэкономить свое время и вместо того, чтобы делать несколько отдельных иконок с разными цветами, я подумал раскрасить одну иконку в нужный цвет в нужный момент времени. Например: Кнопка неактивна - иконка темно-серого цвета. Кнопка активна - иконка черного цвета. Кнопка выделена курсором (MouseEnter) - иконка например темно-синего цвета. и т.д. По сути подумал использовать встроенный эффект TFillRGBEffect. Цвет легко меняется, в дизайнтайме все работает хорошо, но стоит только запустить программу, как во время инициализации формы приложение немного зависает а после вылетает с ошибкой. (скрины ошибок под спойлером). .
  7. В общем. Вот пример. Для его работоспособности пришлось добавить одну строчку в файл FMX.Platform.Win.pas, связана она с тем, чтобы получить возможность перехватывать сообщения окна. Решение взято было отсюда: Далее, использовал этот код (написанный на C#). Взяв решение оттуда и просто чуть-чуть переделав его под Delphi смог получить нативную тень над формой. Проверил на форме с нестандартным стилем (который затрагивает заголовок формы), там есть проблема (не понял, как ее решить, да и не копал особо в эту сторону). Если использовать тень, то заголовок формы перекрывается родным от Windows и из-за этого он полностью ломается (не реагирует на перемещение, изменение размеров и кнопки так же неактивны). Так что самым простым вариантом с нестандартным стилем для меня оказалось - просто использовать BorderStyle - None, конечно, тогда придется вручную реализовывать бордюр и заголовок, а так же перемещение за заголовок и изменение размеров формы за бордюры. Но, благо в Firemonkey уже это все реализовано в виде двух простых функций StartWindowDrag и StartWindowResize. В общем, если у кого-то есть идеи, как это можно улучшить и САМОЕ ГЛАВНОЕ решить проблему с нестандартными стилями - буду благодарен за помощь. BorderlessWindowWithShadow.zip
  8. Так и я тоже) Решение я вообще собирал отчасти по кусочкам с различных форумов. Так же была и ваша часть) Но, когда я сделал все, у моего окна было "две" тени, одна нативная от Win10, вторая, как у вас. Так что строчка SetClassLong(...) не пригодилась мне, убрав ее я убрал такую тень. Как буду за домашним пк, то скину сюда пример с кодом.
  9. CreateParams я не использовал, WndProc тоже (только в одном файле, FMX.Platform.Win вроде). Есть только одно различие, я не использовал кастомный стиль, использовал пока только Borderless форму и все. Но сегодня попробую еще и с кастомным стилем. По итогу получилась Borderless форма с нативной тенью из Windows 10.
  10. Да пожалуйста). Там просто глупая вещь получилась (очень). Забыл подключить библиотеку (LoadBASSDLL) Так что тут ничего сверхъестественного, после этого все, что я хотел работало нормально.
  11. Все. Кажется понял в чем дело. Библиотека завелась нормально.
  12. PAnsiChar - это я под Windows делал. Таким образом я смог с легкостью пользоваться этими функциями (BASS_GetConfigPtr и BASS_SetConfigPtr) и получать\устанавливать значения строковых параметров. В Android же такой тип не поддерживается и соответственно что-то другое нужно. Я сейчас еще ковыряю проект. PAnsiChar изначально и нет в pas файле. У меня так же, что в Win версии, что в Android версии на этих функциях идет Pointer.
  13. Приветствую. На просторах интернета нашел 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, но ни один вариант не хочет работать, опять ошибки на стадии компиляции, либо зависание приложение. Может быть, я что-то не так делаю. В общем, буду признателен за помощь!
×
×
  • Создать...