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

HyperZen

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

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

  • Посещение

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

    1

Сообщения, опубликованные HyperZen

  1. 5 часов назад, krapotkin сказал:

    в посте я привел точно рабочий код, проверил

    uses  FMX.DialogService

    Действительно работает, огромное спасибо!

    Открытие для меня было вчера - оказывается InputQuery есть и в FMX.Dialogs и в FMX.DialogService...

    При использовании InputQuery из FMX.Dialogs в Андроиде - ошибка, при использовании FMX.DialogService - ошибки нет. Надо запомнить.

  2. 2 часа назад, krapotkin сказал:

    отлично запустилось и сработало

    Только что проверил, поведение такое же, как и при использовании InputBox - при нажатии кнопки "Отмена" приложение просто вылетает без ошибок.

  3. 1 час назад, krapotkin сказал:

    ну, для начала берлин пишет на доступном языке

    [dcc32 Warning] Unit1.pas(44): W1000 Symbol 'InputBox' is deprecated: 'Use FMX.DialogService methods'

    Как-то странно все это, на InputBox - Berlin пишет, что устарел, а на InputQuery - нет, хотя, если взглянуть на:

    http://docwiki.embarcadero.com/Libraries/Berlin/en/FMX.Dialogs.InputQuery , то:

    Warning: InputQuery is deprecated. Please use Platform.IFMXDialogServiceAsync.MessageDialogAsync.

  4. Добрый день!

    При использовании диалога InputBox, при нажатии на кнопку "Отмена" - приложение вылетает без каких-либо ошибок под Андроид (по кнопке ОК - проблем вообще никаких нет). В Windows все работает корректно. Кто-нибудь сталкивался с такой проблемой?

      InputBox('Введите номер страницы', '', '',
        procedure(const AResult: TModalResult; const AValue: string)
          begin
            case AResult of
              mrOk:
                begin
                  // тут выполняю какие-то действия
                end;
              mrCancel:
                begin
                  // тут ничего не делаем
                end;
            end;
          end
        );

    Использую Berlin...

  5. 3 часа назад, krapotkin сказал:

    я еще раз в этой теме приложу тестовый проект полностью рабочий под берлин с ресайзом

    Огромное спасибо за пример!

    Просто это, видимо, глюк Берлина. Ведь на пустом новом проекте все работает адекватно! И без всяких дополнительных ресайзов.

    На старом проекте пришлось брать в руки бубен.

  6. В 07.06.2016 в 14:48, krapotkin сказал:

    в Берлине OnUpdateItems срабатывает совсем потом. И в режиме Dynamic и в Custom

    Сегодня, в совсем еще недавно хорошо работающем проекте, заметил такое же поведение... При Item.Add код срабатывает только при первом обращении корректно. При последующих работает совершенно неадекватно, пока не изменишь размеры окна, например... (чтобы ListView перерисовался)

    С чем это связано вообще не понятно. Проект никак не изменял в плане подсчета высоты Итемов, ничего не переделывал. Добавил пару кнопок и пару функций.

    В 07.06.2016 в 16:25, krapotkin сказал:

    поместил код в OnUpdatingObjects и поставил AHandled:=True;

    Попытался проделать то же самое, программа вылетает (код тот же самый, что и в моей соседней теме - автоподсчет высоты Итема).

    Начинаю потихоньку ненавидеть Берлин :)

     

    Сегодня попробовал на пустом проекте - все перерисовывается как надо. Пересчет идет корректно.

    На старом проекте не работает. Куда копать кто-нибудь знает?

  7. 2 часа назад, POV сказал:

    Открываю рабочий проект. Не открывается главная форма, пишет "Error creating form: Error reading TTMSFMXHTMLText.TextSetting.Font.StyleExt: Property StyleExt does not exist".

    Сегодня бился с этой проблемой на Берлине. Выдавал ошибку на уже не существующий компонент на форме предлагая его либо уничтожить, либо создать заново. Все дело свелось к исключению файла бла_бла.LgXhdpiPh.fmx и еже с ними из главной формы проекта {$R *.NmXhdpiPh.fmx ANDROID}

    Ошибка, видимо, возникает тогда, когда Вы пытаетесь создать новый режим просмотра Android, IOS и тд.

  8. Нашел-таки глюк/баг (не знаю как назвать правильно) - все работает корректно в Windows.

    А вот что касается Android, то размер шрифта необходимо указывать вручную обязательно (даже если используете в ListViewItem неизменный размер шрифта), иначе время от времени наблюдаются артефакты в виде наложения текста, или уползания его на следующий Item.

      Drawable := TListItemText(AItem.View.FindDrawable('txtMain'));
      Text := Drawable.Text;
    
      Drawable.Font.Size := ListView1.ItemAppearanceObjects.ItemObjects.Text.Font.Size;

    - эта строчка решила проблему.

  9. Ярослав! Все работает как надо, но при некоторых размерах шрифта (я подозреваю те размеры, про которые мы писали выше) все-таки вычисления некорректны - это касается платформы Windows.

    На конкретном устройстве - все работает корректно с любым размером шрифтов!

  10. 1 час назад, Brovin Yaroslav сказал:

    Вот пример вычисления высоты итема. ListViewVariableHeightItems2.zip

    Я этот пример показывал на лонче в питере.

    Отличный пример!!! Начинаю его "копать"!

    Ярослав, почему после стольких чаяний пользователей EMB никак не введут AutoItemHeight в ListViewItem?

  11. 1 час назад, Евгений Корепов сказал:

    Заметил странность, если установить размер шрифта отличный от стандартного, к примеру 11,99 или 12,01, то все начинает нормально работать, текст влазит. Но размер шрифта на экране в полтора раза меньше "стандартного". Не знаю какой стандартный, но точно не 12, больше похож на 14 или 15. Может из за этого и косяк? В недрах FMX расчет ведется с "стандартным" шрифтом 12, а на экране отрисовывается гораздо более крупным.

    Эту особенность я тоже как-то замечал. И писал про нее на одном из форумов (не могу вспомнить на каком и не могу привести ссылку). Тогда мне ответили, что все дело в неправильном предоставлении данных для расчета высоты итема ListView. Так, действительно, все работает корректно, но хотелось бы и чтобы при стандартном размере шрифта подсчет был корректным.

  12. Проблема решена! Всем спасибо!

    type
      TAppearanceObjectsHelper = class helper for TAppearanceObjects
        function GetParentControl: TControl;
        property ParentControl: TControl read GetParentControl;
      end;
    
    function TAppearanceObjectsHelper.GetParentControl: TControl;
    begin
      Result := OwnerControl;
    end;
    
    Function GetParent(const AListItem: TListViewItem): TListView;
    begin
      result := AListItem.Objects.Appearance.ParentControl as TListView;
    end;

    И, соответственно, код уважаемого Евгения Корепова претерпевает незначительные изменения:

      if (Sender is TListViewItem) then
      begin
        AListItem := Sender as TListViewItem;
        if (GetParent(AListItem) is TListView) then
          AListView:=GetParent(AListItem) as TListView
        Else
          Exit;
    ....

     

  13. 1 час назад, Евгений Корепов сказал:

    P.S. Вы можете AListView заменить за свой конкретный ListView, доступ через парент сделал для красоты и универсальности, если несколько ListView в проекте...

    Так работает корректно... Но в проекте, действительно, несколько ListView, хочется решить все-таки универсальным путем. Ищу информацию про Parent :)

  14. 1 час назад, Евгений Корепов сказал:

     

    Делать было нечего, дело было вечером... Вот попробовал, свою процедуру чуть изменил, добавил константы ширины скроллбара из ListView

     

    Можно проект целиком? Berlin ругается на свойство Parent... хм...

  15. Многоуважаемый ZuBy, вот, к примеру текст:

        with ListView1.Items.Add do
        begin
          Text :=
                'FMX.Dialogs.MessageDlg - RAD Studio API Documentation ' +
                'docwiki.embarcadero.com/.../en/FMX.Dialogs.MessageDlg ' +
                'docwiki.embarcadero.com/.../en/FMX.Dialogs.MessageDlg ' +
                'Перевести эту страницу ' +
                'docwiki.embarcadero.com/.../en/FMX.Dialogs.MessageDlg ' +
                'Перевести эту страницу ' +
                'docwiki.embarcadero.com/.../en/FMX.Dialogs.MessageDlg ' +
                'Перевести эту страницу ' +
                'docwiki.embarcadero.com/.../en/FMX.Dialogs.MessageDlg ' +
                'Перевести эту страницу ' +
                'docwiki.embarcadero.com/.../en/FMX.Dialogs.MessageDlg ' +
                'Перевести эту страницу ' +
                'docwiki.embarcadero.com/.../en/FMX.Dialogs.MessageDlg ' +
                'Перевести эту страницу ' +
                'docwiki.embarcadero.com/.../en/FMX.Dialogs.MessageDlg ' +
                'Перевести эту страницу ' +
                'docwiki.embarcadero.com/.../en/FMX.Dialogs.MessageDlg ' +
                'Перевести эту страницу ' +
                'docwiki.embarcadero.com/.../en/FMX.Dialogs.MessageDlg ' +
                'Перевести эту страницу ' +
                'docwiki.embarcadero.com/.../en/FMX.Dialogs.MessageDlg ' +
                'Перевести эту страницу ' +
                '11 февр. 2016 г. - function MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const ... extern DELPHI_PACKAGE int __fastcall MessageDlg _DEPRECATED_ATTRIBUTE1("Use FMX.DialogService methods") ' +            'Перевести эту страницу ' +
                '11 февр. 2016 г. - function MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const ... extern DELPHI_PACKAGE int __fastcall MessageDlg _DEPRECATED_ATTRIBUTE1("Use FMX.DialogService methods") ' +            'Перевести эту страницу ' +
                '11 февр. 2016 г. - function MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const ... extern DELPHI_PACKAGE int __fastcall MessageDlg _DEPRECATED_ATTRIBUTE1("Use FMX.DialogService methods") ' +            'Перевести эту страницу ' +
                '11 февр. 2016 г. - function MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const ... extern DELPHI_PACKAGE int __fastcall MessageDlg _DEPRECATED_ATTRIBUTE1("Use FMX.DialogService methods") ' +
                '(const System::UnicodeString AMessage, const ... Warning: MessageDlg is deprecated. ***';

    поместите его целиком в итем компонента :) 

  16. 1 час назад, ZuBy сказал:

    ну так циклом по списку и плюсуйте)

    Это понятно :) Мне как бы размер всего компонента и не нужен. Мне бы правильно размер Итема научиться выставлять :)

    Иногда половина текста обрезается, не понятно от чего зависит. Иногда большой текст помещается полностью в итеме, иногда отсекается и появляется это многозначное многоточие... :)

×
×
  • Создать...