-
Постов
69 -
Зарегистрирован
-
Посещение
-
Победитель дней
9
Сообщения, опубликованные Dmitry_4501
-
-
Дело в том, что мне нужно чтобы можно было изменить любую часть стиля независимо от того в дизайнере это или в рантайме, а смена цветов будет как-раз кстати, у rectangle можно как и сам цвет изменить так и его границ
-
Здравствуйте, имеется такой вопрос: можно ли создавать компоненты не на картинках (TBitmapLinks) а например при помощи Rectangle?
Просто хочу сделать плавную анимацию (например когда наводишь курсор на кнопку, когда нажимаешь). Знаю, что плавную анимацию можно сделать при помощи TColorAnimation и некоторые свойства менять через TFloatAnimation, но когда удаляю стандартный background в стиле и ставлю вместо него Rectangle кнопка перестает работать, как можно реализовать это?
-
Так, допустим, создал красивый стиль, но мало его просто нарисовать, программы могут обладать красивыми анимациями, вот в чем собственно вопрос:
Как сделать анимированную кнопку например?
Четыре состояния
1. обычное 2. выделенное 3. нажатое 4. заблокированное (например на этом компоненте как сделать хотя бы плавное изменение цвета, а еще лучше попробовать сделать увеличение текста на кнопке)
-
В том то и дело, что нет. Я знаю как это устроено и работает, но при изменении стиля через Edit Default Style он не меняется
-
Народ, не могу понять, что происходит с редактором стилей, меняю стиль ListBoxItem на свой, добавляю в стиль элементы, но он либо их не сохраняет либо не сохраняет измененные свойства, хотя в диалоговом окне о предложении применить стиль я нажимаю yes
-
7 часов назад, krapotkin сказал:
интересно, какая еще есть работа тут кроме условного вывода всех текстовых констант и перевода всех caption, text, listitem.text,detail и других?
и, судя по тексту, вторая часть ( компоненты ) у вас не реализована...
при этом компоненты в библиотеке нужно прямо все перечислить. либо с RTTI вдоволь поиграться. Стоит ли оно того?
Все, решил воспользоваться компонентом из стандартных
-
В 04.01.2017 в 22:33, krapotkin сказал:
я воспользовался способом "в лоб"
в уже готовом приложении все, что нужно переводить, в коде заполнил через собственную функцию тем или иным значением
~25 форм - около 200-250 строк в словаре
вся работа заняла около 2 дней. не так уж сложно, и точно все будет работать так как надо ))
Когда я думал написать библиотеку, я старался делать упор на удобство использования, всю работу библиотека взяла на себя, от приложения требуется импортировать две функции, одна отвечает за загрузку определенного языкового пакета, вторая за инициализацию библиотеки (перевод).
И чтобы не городить в коде программы для каждого компонента перевод я решил воспользоваться перебором всех компонентов на форме. Все работает, кроме изменения свойства Text у компонентов.
Чтобы не городить даже в самой библиотеке кучу условий, например
if Comp.ClassName = 'TLabel' и т.д с каждым классом я решил использовать класс TPresentedTextControl, он является родителем для множества компонентов, и все работает прекрасно, когда все исполняется в самом приложении, но стоит только засунуть этот код в библиотеку, как тут же получаю ошибку Invalid Class Typecast.
Хотя попробовал написать еще одну функцию, где в параметрах было указана четко Кнопка, Comp: TButton, все как ни странно сработало, не знаю в чем дело.
-
18 часов назад, Steepe_Hare сказал:
а TLang, который идёт в упаковке Embarcadero?
Решил не пользоваться компонентами из коробки, а написать свою библиотеку, она работает как надо, но вот не хочет менять свойства компонентов на форме
-
Здравствуйте!
Написал значит я приложение, для него мне необходима поддержка смены языка интерфейса.
Не став использовать готовые компоненты я решил написать свою библиотеку. Все реализовал, но осталась одна функция, которая не хочет работать:
т.к компонентов на форме может быть множество я решил воспользоваться перебором компонентов по форме.
Вот код:
Спойлерfunction SetLanguage(c: TFmxObject): boolean; stdcall; export;
var
UniqueID: string;
Locale: string;
cl: string;
begin
cl := c.ClassName;
if (cl = 'TButton') or (cl = 'TLabel') or (cl = 'TCheckBox') or
(cl = 'TRadioButton') or (cl = 'TSpeedButton') then
begin
UniqueID := (c as TPresentedTextControl).Text;
Locale := getString(UniqueID);
(c as TPresentedTextControl).Text := Locale;
end;
if (cl = 'TEdit') then
begin
UniqueID := (c as TCustomEdit).TextPrompt;
if UniqueID <> '' then
begin
Locale := getString(UniqueID);
(c as TEdit).TextPrompt := Locale;
end;
end;
if (cl = 'TMenuItem') then
begin
UniqueID := (c as TMenuItem).Text;
if UniqueID <> '' then
begin
Locale := getString(UniqueID);
(c as TMenuItem).Text := Locale;
end;
end;
if (cl = 'TTabItem') then
begin
UniqueID := (c as TTabItem).Text;
if UniqueID <> '' then
begin
Locale := getString(UniqueID);
(c as TTabItem).Text := Locale;
end;
end;
if (cl = 'TForm') then
begin
UniqueID := (c as TForm).Caption;
if UniqueID <> '' then
begin
Locale := getString(UniqueID);
(c as TForm).Caption := Locale;
end;
end;
end;
Получилось весьма странно конечно, но вот:
-
13 минут назад, ZuBy сказал:
такс, все неправильно.
1) чтобы расставлять компоненты есть Align
2) если хотите сделать два вида формы Альбомный и Портретный, можно кодом просто сменить Align для нужных компонентов или сделать через фреймы/формы
3) В FMX используется одно активити, а формы это уже делфовые "приколы", но этот код form2.show сработает
Т.е чтобы допустим открыть другое окно, например окно настроек из главного окна, данный код сработает и окно откроется?
-
Здравствуйте, есть такие вопросы:
Мне необходимо сделать приложение для Android, которое будет нормально размешать компоненты (кнопки, label и т.д.), не зависимо от размера экрана устройства, пока есть только одно возможное решение, которое я придумал (устанавливать позиции компонентов в самом коде, пример button.position.y := 100 и так для каждого типа устройств, для планшетов отдельные позиции, для больших телефонов от 5" например компоненты будут практически так же как и на планшете, но если устройство размером менее 5" то уже по центру все компоненты, надеюсь что меня правильно поймут. Допустим я это реализую, пусть это и сложный процесс (особенно процесс отладки), к тому же не каждому понравится, когда при запуске приложения происходит такая пляска компонентов с места на место, в следствии чего появился вопрос:
Как можно реализовать в Design-Time расставить все компоненты и задать им необходимые параметры для разных размеров устройств? (Особенно это касается альбомной ориентации экрана, например в Android Studio было удобно, создаешь отдельное активити и назначаешь его на альбомную ориентацию, типа MainActivity, MainActivity_Album)
И да, чуть не забыл: формы в delphi, это тоже самое что и activity в Android Studio, т.е если я вызову из одной формы другую примерно так: form2.show то сработает ли это?
-
22 часа назад, Brovin Yaroslav сказал:
Обычно ошибки со стеком из RTL появляются из-за сторонних библиотек. Вы устанавливали ли в среду дополнительные пакеты, эксперты, дизайнеры?
Могут также возникать и из-за багов в FMX, но в этом случае, нужно привести сценарий, как ее воспроизвести. Плюс, если только у вас она воспроизводится, то я бы вначале проверил первое предположение со сторонними либами.
Нуу, установлено: TMS FMX, Alphacontrols и Jedi+JVCL
-
3 минуты назад, wamaco сказал:
ни разу такого не было!!!
Могу предоставить скрины ошибок, когда появятся
-
13 часов назад, Brovin Yaroslav сказал:
Проектик в студию.
C MultiView разобрался, как и с позиционированием компонентов, проблем пока более нет, но есть небольшой вопрос: у меня одного такие проблемы со студией? (Постоянные ошибки, то что-то в rtl240.bpl, то вообще "Разрушительный сбой", после чего студия нормально работать отказывается, вчера пришлось проект переписывать из-за ошибки с rtl240.bpl - не сохранил последние изменения, а там была половина функционала написала)
-
Здравствуйте, у меня есть несколько проблем связанных с Firemonkey, а именно (на картинке), если ListBox растянуть методом Align то вот такая ерунда получается, если ListBox убрать то все нормально, полностью появляется
1. MultiView появляется не полностью, а именно
2. Проблемы с размерами и позицией элементов на разных размерах экрана
Если использовать приложение на устройствах с разными размерами то кнопки и прочие элементы приложения то выходят за пределы, то становятся маленькими
Плавная загрузка изображения
в Изображения
Опубликовано
Здравствуйте, хотел бы уточнить, как можно реализовать плавную загрузку изображения? (Пример: обои Windows 7, 8, 8.1, 10)