Перейти к содержанию
Fire Monkey от А до Я

HyperZen

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

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

  • Посещение

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

    1

Весь контент HyperZen

  1. Читайте мой пост выше, мы эту проблему в той теме подбробно решили...
  2. А мое мнение, что это опять этот измученный вопрос подсчета высоты итема TListView...
  3. Совершенно верно. Тема в операционке стоит такая.
  4. Спасибо большое! Ярослав, можете ответить на мой вопрос, который чуть выше?
  5. Создание собственных стилей приложения (Edit Default Style, Edit Custom Style), переключение стилей в рантайме.
  6. И еще вопрос: правильно ли я поступаю создавая стиль для TToolBar - кидаю на него компонент TRectangle, разукрашиваю его в цвет, который мне нужен. Ставлю Align = Client, например. Как изменить цвет у Header компонента TListBox? Все тот же Rectangle?
  7. По-моему как-то неудобно это. А если у меня на форме достаточно большое количество компонентов, все их перечислять трудновато. Проще использовать другой StyleBook и переключать свойство самой формы. Не знаю на сколько это верно.
  8. Спасибо большое! Я создавал стиль самого TListBox, а оказывается надо еще прицепом взять и TListBoxItem
  9. Вопрос: какое свойство стиля влияет на цвет текста TListBoxItem?
  10. Проверил на чистом проекте, наблюдается такая же картина. Текст пропадает. Баг Берлина? Или Seattle так же себя ведет?
  11. Кто-то может привести пример, как говорится, "от и до" - как правильно создавать стили для компонентов. Например, найти цвет текста в стиле для TListBox мне так и не удалось. Как я понимаю данные действия: Создаем проект, кидаем на форму, например, TListView, кликаем правой кнопкой мыши по нему, жмем, в зависимости от необходимости либо Edit Default Style, либо Edit Custom Style, изменяем цвет фона, текста и пр. Можно тут же данный стиль сохранить как файл стиля. Автоматически на форме при этом создается компонент StyleBook. Теперь, чтобы применить данный стиль необходимо изменять свойство StyleBook самой формы (это при условии, что мы использовали Edit Default Style, если использовали Custom - то надо переключать свойство StyleLookup необходимых компонентов). Чтобы вернуться на дефолтный стиль - кидаем на форму еще один StyleBook (вот тут вопрос - можно ли в одном стайлбуке использовать и переключать в рантайме стили?), в нем ставим стиль по-умолчанию. Переключая данные стайлбуки в форме - меняем стиль приложения. Верно? Укажите, пожалуйста, на мои ошибки.
  12. Очень интересует тема про всплывающие подсказки. Как организовать всплывающую подсказку (которая появляется на время и исчезает сама) по типу подсказки, например, когда выходишь из ES проводника, либо, когда обновляешь базы антивируса DrWeb? Есть такой стандартный компонент, или городить огород?
  13. Отличный пример! Но наблюдается какая-то проблема с отрисовкой текста. Хотелось бы, так сказать, стандартными средствами (путем создания своих стилей - что у меня сделано) изменять интерфейс программы по типу "день-ночь". Но вылазят какие-то странные артефакты при разукрашивании текста. Но после перезагрузки программы все работает корректно. Не очень бы хотелось пользователю предлагать вариант "выйти-зайти" в приложение, для изменения режима "дня и ночи"...
  14. Как правильно использовать несколько стилей в одном приложении? Просвятите, пожалуйста, в теории...
  15. Проверил, размер шрифта попадает тот, который у меня грузится в SpinEdit во время создания формы, и он же устанавливается сразу в момент все той же загрузки. Стилей не использую. Ваш пример выше хороший, но не могу его допилить для использования TListView в DynamicAppearance режиме (если его вообще надо допиливать - просто не получилось ).
  16. Ярослав, сегодня, вновь тестируя различные размеры шрифтов, обнаружил, что если по умолчанию выставить размер шрифта 14 (под Андроид), расчет все равно неверный - не хватает буквально 5% высоты, добавлять ее вручную не хочется, потому как при всех других размерах все корректно. Если изменить размер шрифта в рантайме - и вернуть на 14, то все опять корректно. Неправильный подсчет только при запуске приложения и в случае, если размер стоит = 14. Вышел из положения добавляя при расчете 0.1 к размеру шрифта: Drawable.Font.Size := spnBoxFontSize.Value + 0.1; // при старте программы размер выставляется относительно значения SpinBox'а
  17. Вот после доработки Вашего проекта: TestPr.rar
  18. Вам надо посмотреть уроки как работать с DynamicAppearance режимом, в программе Вы ссылаетесь на поля с именами TaskName, Status - я их в программе вообще не нашел, не понятно как вообще TListView создает Item'ы без ошибок...
  19. Добрый день! Создал свой стиль компонента TListView, как учил на вебинаре Евгений Крюков (Edit Custom Style). Стиль простой - цвет фона - черный, цвет букв Item'а - светло серый, разделительная черта - светло серая. В приложении хочу использовать что-то наподобие режимов дня и ночи. Данный стиль является "ночным". Дефолтный стиль TListView использую как "дневной". Вопрос в следующем: при переключении данных стилей в рантайме, наблюдается неправильная работа: цвет фона меняется корректно на всю высоту компонента, а вот цвет букв в видимой области не меняется, но стоит прокрутить TListView ниже видимой области - там цвет шрифта изменился, и так до конца списка можно создать такую вот непонятную "зебру". Меняю стили при помощи свойства StyleLookup компонента TListView. В чем может быть проблема?
  20. Изучите ветку, созданную мной ранее, там этот вопрос решен коллективно:
  21. HyperZen

    TListBox и TSwitch

    Добрый день! Использую компонент TListBox, который лежит на MultiView для создания меню приложения. На одном итеме расположен - TSpinBox, на другом - TSwitch. На обработчике события onItemClick TListBox'а (для снятия выделения итема) использую код: Item.IsSelected := False; При входе в меню, при первом нажатии на TSwitch текущий итем выделяется и выделение не пропадает. На другом итеме, который содержит TSpinBox - такого нет. Из-за чего это происходит? Решение со снятием флажка Selectable не нравится. Использую Berlin.
  22. HyperZen

    Ошибка InputBox...

    Кому интересно, вот ссылка с примерами со всеми deprecated диалогами и InputBox'ами: http://c2design5sh.blogspot.ru unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.ListBox, FMX.Layouts, FMX.Platform, FMX.StdCtrls, FMX.Controls.Presentation, FMX.DialogService, FMX.ScrollBox, FMX.Memo; type TForm1 = class(TForm) ToolBar1: TToolBar; Label1: TLabel; ListBox1: TListBox; ListBoxItem1: TListBoxItem; ListBoxItem2: TListBoxItem; ListBoxItem3: TListBoxItem; ListBoxItem4: TListBoxItem; ListBoxItem5: TListBoxItem; ListBoxItem6: TListBoxItem; Memo1: TMemo; procedure ListBoxItem1Click(Sender: TObject); procedure ListBoxItem2Click(Sender: TObject); procedure ListBoxItem3Click(Sender: TObject); procedure ListBoxItem4Click(Sender: TObject); procedure ListBoxItem5Click(Sender: TObject); procedure ListBoxItem6Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} // uses FMX.Platform, FMX.DialogService //************************************************************************************************** procedure TForm1.ListBoxItem1Click(Sender: TObject); var ASyncService : IFMXDialogServiceASync; begin if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceAsync, IInterface (ASyncService)) then begin ASyncService.ShowMessageAsync ( ( Sender as TListBoxItem ).Text ); end; Memo1.Lines.Clear; Memo1.Lines.Add( 'ShowMessageAsync Displayed' ); end; procedure TForm1.ListBoxItem2Click(Sender: TObject); var SyncService : IFMXDialogServiceSync; begin if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceAsync, IInterface (SyncService)) then begin SyncService.ShowMessageSync ( ( Sender as TListBoxItem ).Text ); end; Memo1.Lines.Clear; Memo1.Lines.Add( 'ShowMessageSync Displayed' ); end; //************************************************************************************************** procedure TForm1.ListBoxItem3Click(Sender: TObject); var ASyncService : IFMXDialogServiceASync; caption, inData : array[0..1] of string; begin caption[0] := 'ID :'; caption[1] := #1 + 'Pass :'; // #1 앞에 붙이면 마스킹 기능 inData[0] := 'admin'; // 초기값 inData[1] := '1234'; if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceAsync, IInterface (ASyncService)) then begin ASyncService.InputQueryAsync( 'Input String', caption, inData, procedure (const AResult : TModalResult; const AValues : array of string) begin case AResult of mrOk: ( Sender as TListBoxItem ).Text := AValues[0] + '/' + AValues[1]; end; end ); end; Memo1.Lines.Clear; Memo1.Lines.Add( 'InputQueryAsync Displayed' ); end; procedure TForm1.ListBoxItem4Click(Sender: TObject); var SyncService : IFMXDialogServiceSync; caption, inData : array[0..1] of string; begin caption[0] := 'ID :'; caption[1] := #1 + 'Pass :'; // #1 앞에 붙이면 마스킹 기능 inData[0] := 'admin'; // 초기값 inData[1] := '1234'; if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceSync, IInterface(SyncService)) then begin if SyncService.InputQuerySync( 'Input String', caption, inData ) then ( Sender as TListBoxItem ).Text := inData[0] + '/' + inData[1]; end; Memo1.Lines.Clear; Memo1.Lines.Add( 'InputQuerySync Displayed' ); end; //************************************************************************************************** procedure TForm1.ListBoxItem5Click(Sender: TObject); var ASyncService : IFMXDialogServiceASync; begin if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceAsync, IInterface(ASyncService)) then begin ASyncService.MessageDialogAsync( 'Question ?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], TMsgDlgBtn.mbNo, 0, procedure(const AResult: TModalResult) begin case AResult of mrYES : ( Sender as TListBoxItem ).Text := 'YES'; end; end); end; Memo1.Lines.Clear; Memo1.Lines.Add( 'MessageDialogAsync Displayed' ); end; procedure TForm1.ListBoxItem6Click(Sender: TObject); var SyncService : IFMXDialogServiceSync; rValue, i : integer; begin if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceSync, IInterface(SyncService)) then begin rValue := SyncService.MessageDialogSync( 'Question ?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], TMsgDlgBtn.mbNo, 0 ); ( Sender as TListBoxItem ).Text := rValue.ToString; end; Memo1.Lines.Clear; Memo1.Lines.Add( 'MessageDialogSync Displayed' ); end; end.
  23. HyperZen

    Ошибка InputBox...

    Мало того : FMX.DialogService.Async.TDialogServiceAsync.InputQuery FMX.DialogService.Sync.TDialogServiceSync.InputQuery
×
×
  • Создать...