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

zairkz

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

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

  • Посещение

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

    12

Активность репутации

  1. Like
    zairkz отреагировална noisy в Какие статьи вы хотели бы видеть в блогах?   
    Рассмотрение подходов создания мобильного приложения со многими формами
    табы, формы, фрэймы. Плюсы и минусы того и иного подхода.
  2. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в Странные глюки ProgressBar'ов в ListBox   
    Мы не злые, ответили на ваш вопрос. Нет смысла дублировать ответы, если на них уже даны исчерпывающие ответы. Переходим по ссылкам и читаем, там все написано
  3. Like
    zairkz отреагировална shershen в Странные глюки ProgressBar'ов в ListBox   
    Я это знаю, я имел ввиду, что я ошибся разделом форума, а не компонентом.
     
    Злые вы тут, пойду на stackoverflow.com, там запрещено отвечать ссылками.
  4. Like
    zairkz отреагировална AndreyS в Воспроизведение одного видео в двух окнах, Windows   
    Я как-то ради баловства начинал делать что-то подобное. Как раз синхронное воспроизведение одного ролика в 2-х разных окнах. (2 и даже 3 видео FullHD без проблем и тормозов воспроизводилось на ноуте. Компоненты нашел какие-то, работающие через FFMPEG (вроде). Но наткнулся на одну очень неприятную проблему. Если даже получится одновременно запустить 2 видео одновременно, то в случае их рассинхронизации не получится спозиционировать один из потоков на конкретный кадр (и даже на конкретную временную метку). Дело в том, что в видео хранится не каждый кадр. Хранится опорный кадр, в после него несколько (иногда несколько десятков) кадров, в которых содержится информация только об изменениях в опорном кадре. Поэтому и спозиционировать видео можно только на опорный кадр. (Точнее можно спозиционировать на любую метку, но до первого опорного кадра на видео будет отображаться хрень). 
  5. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в Простая защита программы   
    procedure GetWMIInfo(mem: TMemo); // uses Winapi.ActiveX, System.Win.ComObj; const wbemFlagForwardOnly = $00000020; var FSWbemLocator: OLEVariant; FWMIService: OLEVariant; FWbemObjectSet: OLEVariant; FWbemObject: OLEVariant; oEnum: IEnumvariant; iValue: LongWord; begin FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', ''); FWbemObjectSet := FWMIService.ExecQuery('Select * from Win32_MotherboardDevice', 'WQL', wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumvariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin if not VarIsNull(FWbemObject.DeviceID) then mem.Lines.Add(VarToStr(FWbemObject.DeviceID)); if not VarIsNull(FWbemObject.PrimaryBusType) then mem.Lines.Add(VarToStr(FWbemObject.PrimaryBusType)); if not VarIsNull(FWbemObject.SecondaryBusType) then mem.Lines.Add(VarToStr(FWbemObject.SecondaryBusType)); FWbemObject := Unassigned; end; end; что вы там собрались брать?
     
    Результат:
     
    я могу вам предложить вот такой вариант
    замените этими строками код выше, вы получите все устройства доступные на ПК
    FWbemObjectSet := FWMIService.ExecQuery('Select * from CIM_LogicalDevice', 'WQL', wbemFlagForwardOnly); .........   if not(VarIsNull(FWbemObject.Name) and VarIsNull(FWbemObject.DeviceID)) then     mem.Lines.Add(VarToStr(FWbemObject.Name) + ' - ' + VarToStr(FWbemObject.DeviceID)); или использовать защиту по MAC адресу
    FWbemObjectSet := FWMIService.ExecQuery ('SELECT Description,MACAddress,IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE', 'WQL', wbemFlagForwardOnly); .............. if not(VarIsNull(FWbemObject.MacAddress) and VarIsNull(FWbemObject.IpAddress)) then mem.Lines.Add(VarToStr(FWbemObject.MacAddress) + ' - ' + VarToStr(FWbemObject.IpAddress[0]));
  6. Like
    zairkz отреагировална Brovin Yaroslav в Описание TfgToast - Быстрые уведомления   
    Так, у вас цвет сбрасывается, так как вы вызываете классовый метод  Show, а нужно использовать show без параметров:
    Toast.BackgroundColor := TAlphaColorRec.Blue; Toast.MessageColor := TAlphaColorRec.Red; Toast.Message := 'Привет'; Toast.Show; А у вас 
    Toast.Show('Привет!'); Это классовый метод для быстрого показа тоста только с текстом.
  7. Like
    zairkz получил реакцию от R.is в Ошибка сертификата Apple   
    А у меня вчера, действительно эпопея), поэтому и создал тему что бы кто нибудь не разбил свой монитор, не качал бы образ Мака гигов под 40), не убил свои клетки нервные))
  8. Like
    zairkz получил реакцию от Равиль Зарипов (ZuBy) в Ошибка сертификата Apple   
    А у меня вчера, действительно эпопея), поэтому и создал тему что бы кто нибудь не разбил свой монитор, не качал бы образ Мака гигов под 40), не убил свои клетки нервные))
  9. Like
    zairkz получил реакцию от Brovin Yaroslav в Ошибка сертификата Apple   
    А у меня вчера, действительно эпопея), поэтому и создал тему что бы кто нибудь не разбил свой монитор, не качал бы образ Мака гигов под 40), не убил свои клетки нервные))
  10. Like
    zairkz получил реакцию от Brovin Yaroslav в Ошибка сертификата Apple   
    Добрый день, это просто стрессовая ночь без сна, как меня з..бал APPLE ((
    Если кто то собирается выпускать сертификаты Apple (сертификаты разработчика или Push сертификаты), и начнет парится потому что сертификаты выпускаются просроченными, знайте что вы не виноваты)
     
    Вообщем в маке в "Связке ключей" в меню "Вид" кликнете на "Показать скрытые сертификаты"
    Далее в Связке "Система" найдите просроченный сертификат Apple и удалите его.
    После чего с кабинета разработчика скачайте и установите новый сертификат, ссылка на скачивания есть при создания нового сертификата в самом низу. ((
    Подробнее на 
    http://stackoverflow.com/questions/35390072/this-certificate-has-an-invalid-issuer-apple-push-services/35399656#35399656
     

    Извиняются...
  11. Like
    zairkz отреагировална kami в Ошибка сертификата Apple   
    У меня в понедельник эта эпопея была, поскольку срок действия того сертификата закончился в воскресенье.
  12. Like
    zairkz получил реакцию от Равиль Зарипов (ZuBy) в Ошибка сертификата Apple   
    Добрый день, это просто стрессовая ночь без сна, как меня з..бал APPLE ((
    Если кто то собирается выпускать сертификаты Apple (сертификаты разработчика или Push сертификаты), и начнет парится потому что сертификаты выпускаются просроченными, знайте что вы не виноваты)
     
    Вообщем в маке в "Связке ключей" в меню "Вид" кликнете на "Показать скрытые сертификаты"
    Далее в Связке "Система" найдите просроченный сертификат Apple и удалите его.
    После чего с кабинета разработчика скачайте и установите новый сертификат, ссылка на скачивания есть при создания нового сертификата в самом низу. ((
    Подробнее на 
    http://stackoverflow.com/questions/35390072/this-certificate-has-an-invalid-issuer-apple-push-services/35399656#35399656
     

    Извиняются...
  13. Like
    zairkz отреагировална Brovin Yaroslav в [Статья][Android] Приложение будильник. Использование AlarmManager в FireMonkey на Андроиде   
    Ссылка: http://yaroslavbrovin.ru/using-alarmmanager-in-firemonkey-on-android-ru/ Автор: Бровин Ярослав Статья посвящена использованию Андроид AlarmManager в delphi приложения, позволяющего выполнять код в назначенное время даже, когда приложение закрыто. Все это рассматривается на примере приложения Будильник.
  14. Like
    zairkz отреагировална HyperZen в Bug fix list for RAD Studio 10 Seattle Update 1   
    Все хотфиксы установлены и чудненько работают Спасибо братьям китайцам
  15. Like
    zairkz отреагировална haword в Как увеличить скорость отработки запроса SQL к базе SQLLite   
    табы лучше не использовать, вместо них использовать разные формы. табы жрут все время отрисовки ибо каждый элемент отрисовывается не зависимо от того активна влкдака или нет. 
  16. Like
    zairkz получил реакцию от Равиль Зарипов (ZuBy) в доступ к вложенным элементам   
    Вот так все работает, но может я не понял вопроса
     
    Желательно это делать в OnApplyStyleLookup данного объекта.
    например если хотите заполнить стилевой текст или картинку:
     
    Новый объект стиля TButton содержит TText, TLabel, TImage и TButton
    procedure TForm_main.Button1ApplyStyleLookup(Sender: TObject);
    begin         TText(TButton(Sender).FindStyleResource('detail')).Text := 'Детали';         TLabel(TButton(Sender).FindStyleResource('titul')).Text := 'Наименование';         TImage(TButton(Sender).FindStyleResource('img')).Bitmap.Assign(BTMP);         TButton(TButton(Sender).FindStyleResource('but_min')).Tag := 58;         TButton(TButton(Sender).FindStyleResource('but_min')).OnClick := ButW_Min; end;  
    Сделайте одну процедуру OnApplyStyleLookup и присвойте необходимым объектам. 
      Можно напрямую заполнять хоть откуда например   TText(Button1.FindStyleResource('detail')).Text := 'Детали'; но тогда страшные аномалии происходят если ваш объект находятся допустим в скролбоксе.
  17. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в OnValidateServerCertificate NetHTTPClient   
    убрать [Ref]
  18. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в Запрет нажатия на контролы внутри ScrollBox при прокручивании   
    для мобильных устройств есть специальное событие OnTap
     
    в случае с комбобокс оно не поможет а вот для кнопок самое то
  19. Like
    zairkz отреагировална krapotkin в Потоки и процедуры   
    Я тоже сделал свой подкласс для TForm, только aProc не в Show а прямо в Create
    получается аналог ShowModal(proc...() begin end) с небольшими нюансами
    Но в целом идея аналогична
  20. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в TRESTClient   
    подсказка на будущее
    1) кидаем компонент на форму
    2) откомпилим
    3) смотрим какие модули добавились (правда не все нужны, но методом тыка убираем ненужные)
    важный блок в таких модулях initialization, там обычно регистрируются сервисы и прочие плюшки для работы.
    ошибка показала что у вас не инициализировались нужные интерфейсы
    initialization PeerFactory.RegisterPeer(IPImpId, IIPHTTP, TIdHTTPPeer); PeerFactory.RegisterPeer(IPImpId, IIPTCPClient, TIdTCPClientPeerIP); PeerFactory.RegisterPeer(IPImpId, IIPBasicAuthentication, TIdBasicAuthenticationPeer); PeerFactory.RegisterPeer(IPImpId, IIPURI, TIdURIPeerFactory); PeerFactory.RegisterPeer(IPImpId, IIPHashMessageDigest5, TIdHashMessageDigest5Peer);
  21. Like
    zairkz отреагировална SergeyIT в TRESTClient   
    Спасибо большое, ошибка исчезла.
    Но обидно чуток... Вот пришел человек новый в поисках счастья... А где логика, как ему понять что нужны такие вот неймспейсы...
    Ведь день убил на это. Ладно б TMesh какой-нибудь кастомный изобретал бы
  22. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в Как создать мобильную версию сайта?   
    у меня код состоит только из разбора json'a который формируется на сервере.
     
    весь парсинг написан на php, по нескольким причинам:
    1) всегда есть доступ к файлам чтобы отредактировать, если на сайте изменился дизайн или что-то изменили.
    2) без надобности перекомпилировать приложение в делфи
    3) не нужно заморачиваться с ssl т.к. на андроид 6 не работает ssl да и таскать с собой либы на айос не вариант
     
    offtop: не делайте через TWebBrowser, это глупо. какой смысл тогда от приложения? можно сделать закладку и вытащить её на раб. стол...
     
    p.s. приложения написанные для личного использования, потому что некоторые компании не хотят создавать приложения для удобства пользователям
    приходится самому решать
     
  23. Like
    zairkz получил реакцию от Alex7wrt в Более быстрая альтернатива DrawBitmap   
    Попробуй движок Shadow Engine для Firemonkey, FPS впечатляет.
    https://www.youtube.com/watch?v=w6lGasU61HQ
     
    Gihub: https://github.com/dimsa/ShadowEngine
  24. Like
    zairkz отреагировална Rusland в GPS   
    Если знать как определяются координаты (по ЖПС или по сотовым вышкам), то можно выбирать какие координаты использовать, а какие отбрасывать...
     
    Узнать тип сенсора можно вот так 
    function getLocationSensorType(const ASensor : TLocationSensor) : String; begin with ASensor do case Sensor.SensorType of TLocationSensorType.GPS: result := 'GPS'; TLocationSensorType.Static: result := 'Static'; TLocationSensorType.Lookup: result := 'Lookup'; TLocationSensorType.Triangulation: result := 'Triangulation'; TLocationSensorType.Broadcast: result := 'Broadcast'; TLocationSensorType.DeadReckoning: result := 'DeadReckoning'; TLocationSensorType.Other: result := 'Other'; else result := 'Unknown'; end; end; procedure TFrmMain.LocationSensorLocationChanged(Sender: TObject; const [Ref] OldLocation, NewLocation: TLocationCoord2D); var Lat,Lon:String; lSensorType : String; begin Lat:=Format('%2.6f',[NewLocation.Latitude]); Lon:=Format('%2.6f',[NewLocation.Longitude]); lSensorType := GetLocationSensorType(LocationSensor); Memo1.Lines.Add('Lat='+Lat+' Lon='+Lon+' lSensorType='+lSensorType); end; однако он мне выдает lSensorType=GPS всегда, даже в случае отключения GPS на устройстве... не знаю почему 
  25. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в Потоки и процедуры   
    с использованием анонимных функции жить стало легче, как по мне.
    я их использую не только в потоках, а как отложенное действие..
     
    Приведу пример:
    Есть форма в которой выбираются некие данные, допустим местоположение.
    Эта форма вызывается из нескольких мест, т.е. результат выбора пользователя отправляется всегда в разные формы и в визуальные компоненты.
     
    Как я делал это раньше:
    Заводил некую глобальную переменную и по ней смотрел кто вызвал и куда отправить
    myVar := 'form1'; // для примера if myVar = 'form1' then form1.lbLocation.Text := myLocation // (допустим тут хранится выбранные данные пользователя ) else и т.д. Как теперь:
    Переопределяю метод формы Show с параметром aProc: TThreadProcedure
    procedure Show(aProc: TThreadProcedure); overload; создаю переменку FProcedure:TThreadProcedure в privat секции
    В методе Show присваиваю
    FProcedure:= aProc; Show; // обычный метод формы При выборе пользователем местоположения, выполняется вот такой код
    FProcedure;// наша отложенная процедура Close; // закрываем форму и задаю при показе формы процедуру которая должна выполнится при выборе местоположения
    1 вариант
    myLocationForm.Show(procedure begin Form1.lbLocation.Text := myLocation end); 2 вариант
    myLocationForm.Show(procedure begin ShowMesage(myLocation); end); Некая свобода действий всегда хорошо, и довольно просто в реализации
×
×
  • Создать...