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

zekelive

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

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

  • Посещение

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

    1

zekelive стал победителем дня 8 мая 2015

zekelive имел наиболее популярный контент!

Информация

  • Пол
    Мужчина
  • Город
    Москва

Посетители профиля

4 541 просмотр профиля
  1. Здравствуйте. Ознакомился с вашей статьей по ссылке. Правильно ли я понял, что можно запустить индикатор по нажатию кнопки, и там же запустить доп.поток в который и происходят вся вычисления. Вопрос в том, в доп.потоке помимо вычислений происходит и динамическое создание визуальных компонентов. Которые потом кладутся на scrollbox. Где то в этот момент при создании компонентов и зависает индикатор. Я вот и хотел узнать, как сделать так, чтобы индикатор никогда не зависал?
  2. Под заменой логики, что имеете в виду? У меня просто в голове других вариантов нет
  3. Коллеги, здравствуйте. Помогите пожалуйста с работой потоков. При запуске потока, появляется индикатор и исправно крутится. В какой то момент он залипает и перестает крутиться и так до конца работы потока. Понимаю, что в потоке идет работа с визуальными компонентами, по этому скорее всего и залипает индикатор. Как исправить/оптимизировать код? Спасибо. DelOff = class (TThread) protected FOnTaskStarted: TThreadMethod; FOnTaskFinished: TThreadMethod; procedure DoStarted; procedure DoFinished; procedure load; procedure Execute; override; public property OnTaskStarted: TThreadMethod read FOnTaskStarted write FOnTaskStarted; property OnTaskFinished: TThreadMethod read FOnTaskFinished write FOnTaskFinished; end; procedure DelOff.DoFinished; begin Add.Layout1.Visible:=false; if Assigned (Add.FindComponent('Null') as TLayout) then (Add.FindComponent('Null') as TLayout).Free; end; procedure DelOff.DoStarted; begin Add.Layout1.Visible:=true; end; procedure DelOff.load; begin try ReOpen; ClientModule2.ServerMethods1Client.Number13(a,b,g,h); a:='1'; ReOpen; offerlist1.Lines.Text:=ClientModule2.ServerMethods1Client.Number12(a,b,g,h); a:='2'; ReOpen; sumofferlist1.Lines.Text:=ClientModule2.ServerMethods1Client.Number12(a,b,g,h); a:='3'; ReOpen; keyofferlist1.Lines.Text:=ClientModule2.ServerMethods1Client.Number12(a,b,g,h); ReOpen; offercount:=ClientModule2.ServerMethods1Client.Number11(a,b,g,h); except ANM.Show; Add.Visible:=false; ShowmessageToast('Ошибка загрузки',TJToast.JavaClass.LENGTH_LONG); Value := Trim('10,500'); if Add.CheckPermission then if Value.Contains(',') then TVibratorHelper.vibrate(Value.Split([',']), -1) else TVibratorHelper.vibrate(Value.ToInt64); end; end; procedure DelOff.Execute; begin inherited; //Удаление из БД продукта try try Synchronize(DoStarted); updatecount:=StringReplace((Add.FindComponent('LabelIntro') as TLabel).Hint, 'Rec', '', [rfReplaceAll]); a:=(Add.FindComponent('NameProduct'+updatecount) as TLabel).Hint; di:= TZDeviceInfo.Create; b:=StringReplace(di.DeviceID, '=', '', [rfReplaceAll]); if(internet='true') and (server='true') then begin EditCase:='false'; Add.PSB.AutoCalculateContentSize:=false; Add.PSB.EnabledScroll:=true; Add.PSB.AutoCalculateContentSize:=true; synchronize(load); if Assigned (Add.FindComponent((Add.FindComponent('LabelDel') as TLabel).Hint)) then begin (Add.FindComponent((Add.FindComponent('LabelDel') as TLabel).Hint) as TRectangle).Free; (Add.FindComponent('RecEdit') as TRectangle).Free; end; Add.PSB.ScrollTo(0,0,true); for countload:=0 to StrToInt(offercount)-1 do begin (Add.FindComponent('XRun'+IntToStr(countload)) as TFloatAnimation).Enabled:=false; (Add.FindComponent('x'+IntToStr(countload)) as TImage).Opacity:=0; (Add.FindComponent('VRun'+IntToStr(countload)) as TFloatAnimation).Enabled:=false; (Add.FindComponent('v'+IntToStr(countload)) as TImage).Opacity:=0; end; end else begin ShowmessageToast('Нет интернета',TJToast.JavaClass.LENGTH_LONG); Value := Trim('10,500'); if Add.CheckPermission then if Value.Contains(',') then TVibratorHelper.vibrate(Value.Split([',']), -1) else TVibratorHelper.vibrate(Value.ToInt64); end; finally Synchronize(DoFinished); end; except ANM.Show; Add.Visible:=false; ShowmessageToast('Ошибка загрузки',TJToast.JavaClass.LENGTH_LONG); Value := Trim('10,500'); if Add.CheckPermission then if Value.Contains(',') then TVibratorHelper.vibrate(Value.Split([',']), -1) else TVibratorHelper.vibrate(Value.ToInt64); end; end;
  4. Коллеги, туплю. Очистка обычного TScrollBox происходит отлично таким кодом: Assert(ANM.VSB <> nil); TOpenScrollBox(ANM.VSB).Content.DeleteChildren; ANM.VSB.Repaint; Как очистить от наследников TPresentedScrollBox?
  5. zekelive

    Артефакты вокруг TLabel

    Всем добра) коллеги, подскажите пожалуйста, с чем связаны артефакты вокруг TLabel? Некие полосы вокруг надписей. Метка лежит на TColorBox, а он в свою очередь на VertScrollBox.
  6. zekelive

    MultiSelect в TDateEdit

    Понял. Спасибо за отклик) буду пилить в два окошка.
  7. zekelive

    MultiSelect в TDateEdit

    Коллеги, подскажите пожалуйста. Есть ли возможность множественного выбора дат в данном компоненте или другой компонент с таким функционалом?
  8. Коллеги, подскажите, с TMapVIew что то изменилось в настройках? Перешел на версию 10.4 Android и понадобилась снова работа с картами. Как обычно получил apikey добавил Maps Service в настройках RAD, все разрешения дал на геолокацию и Ничего. Приложение падает при создании TMapVIew; Код крайне банален: procedure TGeo.Button3Tap(Sender: TObject; const Point: TPointF); var map:TMapView; begin map:=TMapVIew.Create(Geo); map.Parent:=Geo; map.Align:=TAlignLayout.Client; end; Что снова не так и куда смотреть?
  9. Возможно ваш вопрос и решите так же через компилятор android x64
  10. Спасибо всем. Проблему решил компилятором на Андроид x64. Так как для приложений под 10 Андроид есть куча особенностей.
  11. Проверил на более старой версии андроида работает. на 8 андроиде. у меня 10 на другом смартфоне. Копать в сторону SDK?
  12. Коллеги, здравствуйте. Поставил новую версию студии и привычный код местами стал подводить. Как обычно создаю форму Application.CreateForm(TRegForm, RegForm); if Assigned(RegForm) then begin RegForm.Visible:=true; Main.Visible:=false; end; и при выполнении кода вылетает ошибка, что на скрине. Уже туплю. Скажите, что изменилось? как теперь запускать формы. P.S. Тоже самое происходит, если формы переместить в раздел auto-create forms. Форма создается в единственном случае, когда в шапке ставишь ее главной.
×
×
  • Создать...