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

Лидеры

  1. Martifan

    Martifan

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


    • Баллы

      1

    • Постов

      396


  2. kvantum

    kvantum

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


    • Баллы

      1

    • Постов

      38


  3. DirtyBorov

    DirtyBorov

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


    • Баллы

      1

    • Постов

      71


  4. Cody71727172

    Cody71727172

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


    • Баллы

      1

    • Постов

      16


Популярный контент

Показан контент с высокой репутацией 12.05.2015 в Сообщения

  1. первым способом переводить тебя сразу на рабочем столе то есть тебя выкидывает из меню и на главном форме переключается о твоя приложения сворачивается а вторым способом тебя не выкидывает никуда проста сворачивает приложения
    1 балл
  2. Большое спасибо! Буду разбираться -------------------------------------------- Все работает) Правда сервис в манифесте всё равно должен быть прописан, чтобы принимать сообщения с закрытым приложением
    1 балл
  3. По каким то причинам мне не удается прикрепить файл содержащий TWaitControl. Потому просто выложу его код полностью. Благо он совсем короткий. Модуль универсальный. Его можно использовать не только для REST но и вообще для любых длительных операций которые нужно выполнять в потоках. Обратите внимание, что в конструктор передается TForm. Это экземпляр ГЛАВНОЙ формы приложения. Это нужно потому что TWaitControl , будет перекрывать главную форму полупрозрачным квадратом, создавая эффект затемнения и заодно делая недоступным разные кнопки на форме. Рекомендую создавать TWaitControl в событии OnCreate главной формы: TMainForm = class(TForm) private Wait: TWaitControl; end; procedure TMainForm.FormCreate(Sender: TObject); begin Application.OnException := OnException; Wait := TWaitControl.Create(Self); Wait.Title.Text := 'Ждите пожалуйста...'; end; unit Wait.Control; interface uses FMX.Forms, FMX.Objects, FMX.Types, FMX.Effects, FMX.StdCtrls, System.SysUtils, System.Classes, System.UITypes; type TWaitControl = class(TRectangle) private FWindow: TRectangle; FTitle: TLabel; FHadErrors: Boolean; FWaiting: Boolean; procedure DoErrorHandling(E: Exception; AOnError: TProc<TWaitControl, Exception>); procedure DoOnCompleted(AOnComplete: TProc<TWaitControl>); public constructor Create(MainForm: TForm); reintroduce; procedure Run(ATask: TProc<TWaitControl>; AOnComplete: TProc<TWaitControl> = nil; AOnError: TProc<TWaitControl, Exception> = nil); virtual; property Waiting: Boolean read FWaiting; property HadErrors: Boolean read FHadErrors; property Window: TRectangle read FWindow; property Title: TLabel read FTitle; end; implementation { TWaitControl } constructor TWaitControl.Create(MainForm: TForm); begin inherited Create(MainForm); Parent := MainForm; Align := TAlignLayout.Contents; Visible := False; Fill.Color := $4B000000; FWindow := TRectangle.Create(Self); FWindow.Parent := Self; FWindow.Fill.Color := $96000000; FWindow.Align := TAlignLayout.Center; FWindow.Width := 250; FWindow.Height := 65; FTitle := TLabel.Create(FWindow); FTitle.Parent := FWindow; FTitle.Align := TAlignLayout.Client; FTitle.StyledSettings := FTitle.StyledSettings - [TStyledSetting.Size, TStyledSetting.Style]; FTitle.TextSettings.Font.Size := 16; // FTitle.TextSettings.Font.Style := [TFontStyle.fsBold]; with TAniIndicator.Create(FWindow) do begin Parent := FWindow; Style := TAniIndicatorStyle.Circular; Align := TAlignLayout.Left; Margins.Left := 15; Margins.Top := 15; Margins.Right := 15; Margins.Bottom := 15; Width := Height; Enabled := True; end; with TShadowEffect.Create(FWindow) do Parent := FWindow; end; procedure TWaitControl.DoErrorHandling(E: Exception; AOnError: TProc<TWaitControl, Exception>); begin TThread.Synchronize(TThread.CurrentThread, procedure begin FWaiting := False; FHadErrors := True; Visible := False; if Assigned(AOnError) then AOnError(Self, E); end); end; procedure TWaitControl.DoOnCompleted(AOnComplete: TProc<TWaitControl>); begin TThread.Synchronize(nil, procedure begin FWaiting := False; Visible := False; if Assigned(AOnComplete) then AOnComplete(Self); end); end; procedure TWaitControl.Run; begin Visible := True; FWaiting := True; TThread.CreateAnonymousThread( procedure begin try FHadErrors := False; ATask(Self); DoOnCompleted(AOnComplete); except on E:Exception do DoErrorHandling(E, AOnError); end; // DoOnCompleted(AOnComplete); end).Start; end; end.
    1 балл
  4. Здравствуйте! Необходимо реализовать сортировку пользовательских итемов TListBox в зависимости от значений их свойств. Во вложении тестовый пример сортировки по Item.Tag = Random(1000). Пользовательская функция сортировки: function TForm1.SortFunc(Item1, Item2: TFmxObject): Integer; begin if (Item1 as TListBoxItem).Tag > (Item2 as TListBoxItem).Tag then Result:=1; if (Item1 as TListBoxItem).Tag < (Item2 as TListBoxItem).Tag then Result:=-1; if (Item1 as TListBoxItem).Tag = (Item2 as TListBoxItem).Tag then Result:=0; end; Вызов сортировки: procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.BeginUpdate; ListBox1.Sort(SortFunc); ListBox1.EndUpdate; end; К сожалению, сортировка не работает - порядок следования итемов в списке не меняется. Прошу помочь ! ListSort.zip
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...