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

rustam_d

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

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

  • Посещение

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

    2

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

  1.  

    Splash - да. Он и является первой формой. Все остальные создаются в рантайме уже потом. И все компоненты невизуальные - тоже на главной форме, которая создается тоже позже.

    Смысл-то такой:

    - вы можете в DesignTime создать все формы, навалять на них компоненты и т.д. и т.п.

    - но в опциях проекта уберите все формы из автосоздания, оставив только splash

    - а в коде самого проекта у вас будет что-то типа

      Application.Initialize;
      Application.CreateForm(TfmSplash, fmSplash);
      Application.Run;
    

    - а дальше уже - как я примерно написал. при создании splash-формы уже делайте все что вам надо, в том числе

    Application.CreateForm(TfmMain, fmMain);

    Алекс идея то не нова...обсосали уже по миру...

    В каком событии сплеша у вас создание главной формы? и есть ли баласты или кодо-вреды типа процессинг месенжеров, апдейты, рипеинты? 

  2. Извернуться можно примерно так:

     

    Алекс, спс за вариант, 

    1. сплеш криейтится один в файле прокета?

    2. у меня на главной форме все и создаются объекты...в том числе и "тяжелые" коннекты к бд.

        Так то обожаю Datamodule, но fmx плевать на него хотел когда создает баинды...и лепит все на главную форму...

     

    Вариант на нитях может и не плох...но всегда опасаюсь ими злоупотреблять ввиду сложного дебага.

    Алекс ваш проект вызвал у меня немного чувство неполноценности...удачи в смене числа кол-во установок.

  3. Delphi XE8 upd1, FMX.

     

    Перелопатил форумы по заставкам. Я думаю тема все еще не раскрыта.

    реализация встроенной заставки с ХЕ7 чепуха годная для студентов.

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

     

    Господа, предлагаю поставить точку с этим недоразумением.

    Пробовал и двойные формы, типа одна с картинкой и только потом главная и т.п.

    Также сама сплешь форма криейтид главную...нормального эффекта не добился...

    Может что то не так делаю, а может руки кривые, я незнаю. А может надо было влить

    пару тон процессинг мессенджеров или апдейтов с репаинтами?

     

    Видал варианты, где ковыряют манифесты, деплои и т.п. Однако по отзывам и там не все чисто.

    А главное все это как то не в одном месте не упорядоченно разбросано...

     

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

     

     

     

     

     

  4. до fgx не дошел ) но может и поюзаю позже как приспичит, опыт на fmx 2 мес ), под OSX и Винду на фмх не требуют заказчики пока...иоса и дроида заглаза.

    вот думаю на базе сабжа сделать Toast, добавить просто таймер...делал так кто?

  5.  

    TRectange

       - TAniIndicator -> VertCenter

       - TLabel = Загрузка  -> MostBottom

    Выставь высоту и ширину, цвет для TRectangle

     

     

    ZuBy спасибо за идею!

    Вот мой код для рантайма. На винде великовато смотрится, а в андроид самое то.

     

      FMX.Objects, FMX.StdCtrls, FMX.Controls.Presentation;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        pRect: TRoundRect;
        pInd: TAniIndicator;
        pIndLabel: TLabel;
        procedure ShowWait(const aWait: Boolean);
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.fmx}
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      pRect := TRoundRect.Create(Self);
      pRect.Height := 50;
      pRect.Width := 150;
      pRect.Position.X := (Self.Width/2)-pRect.Width/2;
      pRect.Position.Y := (Self.Height/2)-pRect.Height;
      pRect.Parent := Self;
      //pRect.Fill.Color := TAlphaColorRec.Steelblue; //Цвет фона если нужен
      pRect.Stroke.Color := pRect.Fill.Color; //не хочу окантовку
      pRect.Visible := false;
      pInd := TAniIndicator.Create(pRect);
      pInd.Parent := pRect;
      pInd.Align := TAlignLayout.Top;
      pInd.Height := 25;
      pIndLabel := TLabel.Create(pRect);
      pIndLabel.Parent := pRect;
      pIndLabel.Align := TAlignLayout.Bottom;
      pIndLabel.TextAlign := TTextAlign.Center;
      pIndLabel.Text := 'Загрузка...';
    end;
     
    procedure TForm1.ShowWait(const aWait: Boolean);
    begin
      pRect.Visible := aWait;
      pInd.Enabled := aWait;
      if aWait then pRect.BringToFront;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowWait(not pRect.Visible);
    end;
  6. у Sarina Dupont в блоге есть решение для вывода попап меню с помощью listbox

    посмотрел...в подметки не годиться тому что фил тут написал...

    я подкинул у себя связку с imagelist и ID...красота...

        Items.Add(aBtn_text);
        ItemByIndex(Items.Count-1).ImageIndex := aImg_index;
        ItemByIndex(Items.Count-1).Tag := aId;
     
    эх еще бы как то фон задать...видели те юзерам не нравиться как текст налагается...блин знали бы как это делается через одно место ))...
  7. Спасибо!

    Юзать так вроде надо.
      AniIndicator1.Visible := True;
      AniIndicator1.Enabled := True;
     
    Вопрос, а как его показывать поверх всех окон? Он сам по себе stayontop? Или через popup ?
  8. Кто нить делал сабж в FMX? Интересует красивое решение.

    На vcl это конечно Screen.Cursor типа crHourglas, crSqlWait и т.к.

     

    В своем проекте сделал пока на Toast от Roland Kossow.

    Хоть и работает Но чую отдает глупостью...

    Может какие то анимации лучше юзать, но незнаю как.

     

    procedure TfmMain.ShowText(const aTxt: string; const aType: byte = 0);
    begin
      case aType of
        0: tsMain.Duration := 3000;
        1: tsMain.Duration := 60000;
        2: tsMain.Duration := 1;
      end;
      tsMain.Now(aTxt);
    end;
     
      ShowText('Загрузка...',1);
      try
    ...долгая процедура
      finally
        ShowText('Загрузка...',2);
      end;
     
     

     

     

     

  9. 1. TLayout + TListBox

    2. TMultiView +TListBox

    Вариантов может быть куча, просто BringToFront и задать правильные Position.X/Y

    Это "тяжелые" компоненты...думал об этом. Но спасибо за ответ ).

    меньше всего ожидал что fmx мне праздник устроит с простейшим попапом...

    Сделал пример на кнопках, изврат не хилый получился...но работает ). Критика приветствуется.

    (там где смайл это b со скобкой)

     

      public
        { Public declarations }
         pop : TPopup;
        procedure Popclick(Sender: TObject);
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.fmx}
     
    procedure TForm1.Popclick(Sender: TObject);
    begin
      ShowMessage(TButton(Sender).Text);
      pop.IsOpen := false;
    end;
     
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    begin
      pop.Placement := TPlacement.plMouse;
      pop.Popup;
    end;
     
    procedure TForm1.FormShow(Sender: TObject);
    var
      b : TButton;
    begin
      pop := TPopup.Create(self);
      pop.Parent:= self;
      pop.Width := 200;
      pop.Height := 300;
      pop.PlacementRectangle:= TBounds.Create(RectF(0,0,200,300));
     
      b := TButton.Create(Self);
      b.Align := TAlignLayout.Top;
      b.TextSettings.HorzAlign := TTextAlign.Leading;
      b.Text := 'Menu1';
      b.OnClick := Popclick;
      pop.AddObject( B);
     
      b := TButton.Create(Self);
      b.Align :=TAlignLayout.Top;
      b.TextSettings.HorzAlign := TTextAlign.Leading;
      b.Text := 'Menu2';
      b.OnClick := Popclick;
      pop.AddObject( B);
    end;
  10. В андроиде и iOS вроде нету PopupMenu

    Вы про платформу? Или FMX? В платформе есть...зайдите в gmail и справа 3 точки...вот типа того надо.

    В fmx то вроде компилируется...иначе зачем они там...короче пока не победил popupmenu...

  11.  

    TPopup - это "заготовка" для создания соответствующих компонентов.

     

    PopupMenu можно вызвать так:

    procedure TForm1.Button1Click(Sender: TObject);
    var
      P: TPointF;
    begin
      P := (Button1 as IControl).LocalToScreen(Button1.LocalRect.TopLeft);
      PopupMenu1.PopupComponent := Button1;
      PopupMenu1.Popup(P.X, P.Y + Button1.Height);
    end;
    

    на win32 только пашет, в Андроид никакой реакции...

    • TPopup.Placement
    • TPopup.PlacementTarget

    Ярослав, понимаю мало времени...но этот экзотический компонент не получается правильно юзать с PopupMenu.

    Кинул на форму, выставил

        Popup1.PlacementTarget = Speedbutton1

        Popup1.Popupmenu = Popupmenu1

    по нажатию вызываю Speedbutton1 вызываю Popup1.Popup.

    Никакой реакции...

  12. DelphiXE8 upd1, Android

     

    На vcl реализовывается за 15 сек...но это же fmx...

    Взял пример из Делфи - FP := Button1.LocalToAbsolute(FP); а он оказался левым,

    т.к. отображается черти где но не под кнопкой...да ничего я привык уже...

     

    Задача простейшая, а тут затык... Вот кнопка прижатая на панели вправо у меня, с 3 точками иконкой.

    Если юзаете дроид то знаете что в 99% это popup. Вот хочу того же.

     

    Прошу поделиться у кого такой функционал реализован красиво и идеально?

    Нажать на кнопку и popup снизу...

     

  13. DelphiXE8, Android.

    Задача: загрузить в ImageList иконки 32х32 из базы данных.

    Проблема: Не получается Transparent никак.

    Как обычно перелопатил кучу форумов и ссылок и человеко-часов (эх vcl отнял бы 1 минуту...),

    и удалось написать тестовое приложение.

    Однако прозрачность никак не работает...иконка, что в тесте в поставке делфи идет,

    цвет розовый. В дизайне все ок, а вот самому...

    Закомментировал то что не помогает всеравно, но хотел показать что пробовал ).

    Проверяю результат по иконке что на кнопке через action.

    Иконка норм отображается, но с ней и розовый цвет...

    procedure TForm1.Button4Click(Sender: TObject);
    var
      Layer: TLayer;
      c: TCustomSourceItem;
      b: TCustomBitmapItem;
      d: TCustomDestinationItem;
    begin
      d := ImageList1.Destination.Add;
      Layer := ImageList1.Destination[d.Index].Layers.Add;
      Layer.SourceRect.Rect := TRectF.Create(0, 0, 32, 32);
      c := ImageList1.Source.Add;
      Layer.Name := c.Name;
      //c.MultiResBitmap.TransparentColor := TAlphaColorRec.Fuchsia;
      b := c.MultiResBitmap.Add;
      b.Bitmap.SetSize(32,32);
      b.Bitmap.LoadFromFile('C:\Delphi\Images\GlyFX\glyFX\Icons\Aero\BMP\32x32\eject_blue_32_h.bmp');
      //b.Bitmap.Clear(TAlphaColorRec.Fuchsia);
      Action2.ImageIndex := 3;
    end;
     
     
  14. Delphi xe8 upd1,

     

    Push notification Android - как удалить прочтенное сообщение? Отправляю по json.

    После нажатия на пуш сообщение в панели уведомлений,

    читаю сообщение в открытой программе, но не знаю как очистить его из панели...

     
    var
      LNotification: TPushServiceNotification;
    begin
      for LNotification in AServiceConnection.Service.StartupNotifications do
      begin
        if Assigned(LNotification) and (LNotification.Json.ToString<>'') then
        begin
          Memo1.Lines.Add('Enter by Notification Click: ' + LNotification.Json.ToString);
        end;
      end;
    end;
     
  15.  

    Правда сервис в манифесте всё равно должен быть прописан, чтобы принимать сообщения с закрытым приложением

     

    Подскажите пожалуйста по подробнее какой текст добавить...не появляется в панели уведомлений...хоть тресни...

    Сами пуш принимаются норм (право entliment receive push выставил).

    DelphiXE8, droid разные пробовал не помогает.

     

    сам решил...добавил манифесты от сюда...http://docwiki.embarcadero.com/RADStudio/XE6/en/Creating_the_Application

    однако проблема теперь другая, в панели пуша не выводится Текст сообщения...

  16. Правда сервис в манифесте всё равно должен быть прописан, чтобы принимать сообщения с закрытым приложением

     

    Подскажите пожалуйста по подробнее какой текст добавить...не появляется в панели уведомлений...хоть тресни...

    Сами пуш принимаются норм (право entliment receive push выставил).

    DelphiXE8, droid разные пробовал не помогает.

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