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

Vitaly X

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

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

  • Посещение

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

  1. Никак не могу понять, чего тут не так (чего не хватает).

    Если создаю компонент на лету - то первая кнопка некорректно выставляет высоту (вызов метода Memo1ChangeTracking(Memo1);). В этом же методе и создается коспонент.

    Но если вызываю этот же код - Memo1ChangeTracking(Memo1); - из другого метода (клик по второй кнопке) - нормально.

    Что за фигня? Не догоняю.

    Если на форму кинуть компонент TMemo, то тоже работает.

     

     

     

    unit Unit46;

    interface

    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Memo.Types,
      FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, FMX.StdCtrls;

    type
      TForm46 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Memo1ChangeTracking(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form46: TForm46;
      Memo1: TMemo;

    implementation

    {$R *.fmx}

    procedure TForm46.Button1Click(Sender: TObject);
    begin
      Memo1 := TMemo.Create(self);
      Memo1.Parent := Form46;
      Memo1.Name := 'Memo1';
      Memo1.DataDetectorTypes := [];
      Memo1.Lines.Clear;
      Memo1.Lines.Add('AAAAAAAAAAAAAA');
      Memo1.ShowScrollBars := False;
      Memo1.OnChangeTracking := Memo1ChangeTracking;
      Memo1.Align := TAlignLayout.Horizontal;
      Memo1.EnabledScroll := False;
      Memo1.TabOrder := 0;
      Memo1.WordWrap := True;

      Memo1ChangeTracking(Memo1);
    end;

    procedure TForm46.Memo1ChangeTracking(Sender: TObject);
    begin
      Memo1.Height := Memo1.ContentBounds.Height + 5;
    end;

    procedure TForm46.Button2Click(Sender: TObject);
    begin
      Memo1ChangeTracking(Memo1);
    end;

    end.

  2. отправляю посылку так  

    procedure a;

    begin

       sendIntent(StringToJString(ACTION), StringToJString(PLUGIN), StringToJString(EXTRA_KEY));   <----- почему это выполняется после Sleep(10000) ?
          ...........................................
       TMessageManager.DefaultManager.SendMessage(Self, TStatusMessage.Create(status));

    end;

     

     

    принимаю так

    procedure b;

    begin

    Sleep(10000);

    end;

  3. Здравствуйте

    Никак не могу понять, как сделать корректно...

    Ситуация - подписан на intent со сканера и когда получаю код, то шлю в главную форму через TMessageManager.DefaultManager.SendMessage. НО, до отсылки шлю обратно в другой intent.

    Проблема в том, что если в коде есть Sleep(10000), то посылка отправится, когда отработает то, что послал через TMessageManager.DefaultManager.SendMessage.

     

    Есть какойто вариант сделать так как я хочу?

     

     

     

     

  4. Не понимаю, как так может быть, но что мне делать?

    Проблемв в том, что переменная уже инициализирована (не nil).

    Скажем, есть TMyObject.

    И есть функция MyFunc: TMyObject.

    Так вот, в теле этой функции Result не nil (как в десктопной версии), в инициализировано уже (ссылка куда-то).

    Как результат, Assigned(MyFunc) не канает, она же не nil.

    Большое спасибо.

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