krapotkin
-
Постов
2 185 -
Зарегистрирован
-
Посещение
-
Победитель дней
209
Активность репутации
-
krapotkin получил реакцию от dnekrasov в Получение времени от серверов времени
TIdTime is a client implementation of the Time Protocol as described in the Internet Standards document:
RFC 868 - Time Protocol (http://www.rfc-editor.org/rfc/rfc868.txt)
Time is a simple protocol for synchronizing time on a local network. For a time protocol with higher accuracy over several networks, use TIdSNTP. To retrieve the current date and time in human-readable form, use TIdDayTime.
Please note that the Time Protocol in its current form cannot handle most dates after the year 2035. This limitation is stated in RFC 868.
-
krapotkin получил реакцию от Bob32 в Получение времени от серверов времени
если даже не использовать NTP
При каждом HTTP запросе в ответе приходят заголовки. Например
Connection: keep-alive
Strict-Transport-Security: max-age=0
Content-Encoding:
Content-Type: text/html; charset=utf-8
Date: Fri, 05 Apr 2019 07:02:28 GMT
Server: nginx
-
krapotkin получил реакцию от Ingalime в Получение времени от серверов времени
TIdTime is a client implementation of the Time Protocol as described in the Internet Standards document:
RFC 868 - Time Protocol (http://www.rfc-editor.org/rfc/rfc868.txt)
Time is a simple protocol for synchronizing time on a local network. For a time protocol with higher accuracy over several networks, use TIdSNTP. To retrieve the current date and time in human-readable form, use TIdDayTime.
Please note that the Time Protocol in its current form cannot handle most dates after the year 2035. This limitation is stated in RFC 868.
-
krapotkin получил реакцию от Vitaldj в [Win32] На TButton не отображается иконка
сделали бы проект минимальный, выложили сюда, мы бы открыли на 10.3 и решили бы...
-
krapotkin получил реакцию от Ingalime в [Win32] На TButton не отображается иконка
сделали бы проект минимальный, выложили сюда, мы бы открыли на 10.3 и решили бы...
-
krapotkin получил реакцию от Ingalime в Отправить на печать несколько изображений сразу
если вы сами решаетесь печатать, вам нужно самостоятельно производить все расчеты.
для этого нужно ознакомиться с документацией http://docwiki.embarcadero.com/RADStudio/Rio/en/Printing_from_a_FireMonkey_Application
далее используем Printer.PageWidth и PageHeight
вы знаете размер бумаги в мм и знаете размер страницы в точках
далее идет тема Пропорции, 4-й класс, чтобы разместить то что вам нужно в правильное место хоть в точках, хоть в мм
-
krapotkin получил реакцию от Bob32 в Типовая задача доступа к данным - Нужен дельный совет
по вопросам.
1) выбор на хостингах невелик - MySQL, Postgres. Я PG выбрал чисто в силу интереса и он вроде поближе к стандартам, и у него ХП и другие всякие штуки.... Сижу на SWEB.RU. Опять же просто потому что давно. Есть и masterhost и любой другой крупный провайдер подойдет.
2) не путаем хостинг с бэкенд-сервером (BAS). Типа Firebase или Amazon или еще туча. на хостинге у вас все свое. что написали то и работает. на BAS есть много приятных плюшек. Довольно платных ессно. Зато и push и email рассылки и админка...
3) MSSQL не вариант. Веб в основном на Linux.
4) обычно просто THttpClient. На нем нормально пишется клиентская часть API
5) обычная схема. просто с нуля некоторые вещи пилить. зато бесплатно. Практика показывает что иногда лучше заплатить и получить богатое приложение сразу. но иногда как написал Евгений, потом можно упереться в ограничения сервисов. Но можно решать проблемы по мере поступления...
-
krapotkin получил реакцию от Евгений Корепов в Как отловить нажатие на кнопку "Домой" на android
для этого нужно менять глубже
в нормальном состоянии система всегда позволяет закрыть программу / перейти на домашний экран
и нужно зарегистрировать свою программу как лаунчер и еще удалить лаунчер стандартный и в защищенных настройках ОС тоже покрутить правильные ручки
есть мануалы для программ на яве
пример
можно попробовать их реализовать тут
-
krapotkin получил реакцию от Ingalime в Переезд на 10.3 Rio
да.
хотя идея создавать форму из потока так себе идея.
я стараюсь просто потоку с собой сунуть ссылку на прогресс-бар, фрейм или форму.
и уж точно не делать это глобальной переменной !
-
krapotkin получил реакцию от Sergionn в Переезд на 10.3 Rio
сколько бед принесла уже стрельба в ногу под названием ProcessMessages
как хорошо, что в Андроиде наконец всех отучат от этого крайне вредного трюка
давайте формально
все что там у вас "высоконагруженное" выносите в потоки и пусть они работают. Ваши "потоки" пасутся в главном (Synchronize) и никакого толка нет
концепцию надо поменять. запустили поток и занимайтесь своим делом. например покажите Splash
а вернется поток - вот по возвращению и сделаете то, что этот Splash закроет.
и уж точно потоки не должны ничего общего иметь с формами
я писал статью про потоки, там про сплеши тоже есть в блоге и про ProcessMessages отдельная боль...
http://www.cyberforum.ru/blogs/469693/blog4875.html
-
krapotkin получил реакцию от #WAMACO в Типовая задача доступа к данным - Нужен дельный совет
по вопросам.
1) выбор на хостингах невелик - MySQL, Postgres. Я PG выбрал чисто в силу интереса и он вроде поближе к стандартам, и у него ХП и другие всякие штуки.... Сижу на SWEB.RU. Опять же просто потому что давно. Есть и masterhost и любой другой крупный провайдер подойдет.
2) не путаем хостинг с бэкенд-сервером (BAS). Типа Firebase или Amazon или еще туча. на хостинге у вас все свое. что написали то и работает. на BAS есть много приятных плюшек. Довольно платных ессно. Зато и push и email рассылки и админка...
3) MSSQL не вариант. Веб в основном на Linux.
4) обычно просто THttpClient. На нем нормально пишется клиентская часть API
5) обычная схема. просто с нуля некоторые вещи пилить. зато бесплатно. Практика показывает что иногда лучше заплатить и получить богатое приложение сразу. но иногда как написал Евгений, потом можно упереться в ограничения сервисов. Но можно решать проблемы по мере поступления...
-
krapotkin получил реакцию от Barbanel в Типовая задача доступа к данным - Нужен дельный совет
по вопросам.
1) выбор на хостингах невелик - MySQL, Postgres. Я PG выбрал чисто в силу интереса и он вроде поближе к стандартам, и у него ХП и другие всякие штуки.... Сижу на SWEB.RU. Опять же просто потому что давно. Есть и masterhost и любой другой крупный провайдер подойдет.
2) не путаем хостинг с бэкенд-сервером (BAS). Типа Firebase или Amazon или еще туча. на хостинге у вас все свое. что написали то и работает. на BAS есть много приятных плюшек. Довольно платных ессно. Зато и push и email рассылки и админка...
3) MSSQL не вариант. Веб в основном на Linux.
4) обычно просто THttpClient. На нем нормально пишется клиентская часть API
5) обычная схема. просто с нуля некоторые вещи пилить. зато бесплатно. Практика показывает что иногда лучше заплатить и получить богатое приложение сразу. но иногда как написал Евгений, потом можно упереться в ограничения сервисов. Но можно решать проблемы по мере поступления...
-
krapotkin получил реакцию от Ingalime в Типовая задача доступа к данным - Нужен дельный совет
по вопросам.
1) выбор на хостингах невелик - MySQL, Postgres. Я PG выбрал чисто в силу интереса и он вроде поближе к стандартам, и у него ХП и другие всякие штуки.... Сижу на SWEB.RU. Опять же просто потому что давно. Есть и masterhost и любой другой крупный провайдер подойдет.
2) не путаем хостинг с бэкенд-сервером (BAS). Типа Firebase или Amazon или еще туча. на хостинге у вас все свое. что написали то и работает. на BAS есть много приятных плюшек. Довольно платных ессно. Зато и push и email рассылки и админка...
3) MSSQL не вариант. Веб в основном на Linux.
4) обычно просто THttpClient. На нем нормально пишется клиентская часть API
5) обычная схема. просто с нуля некоторые вещи пилить. зато бесплатно. Практика показывает что иногда лучше заплатить и получить богатое приложение сразу. но иногда как написал Евгений, потом можно упереться в ограничения сервисов. Но можно решать проблемы по мере поступления...
-
krapotkin получил реакцию от Евгений Корепов в Переезд на 10.3 Rio
сколько бед принесла уже стрельба в ногу под названием ProcessMessages
как хорошо, что в Андроиде наконец всех отучат от этого крайне вредного трюка
давайте формально
все что там у вас "высоконагруженное" выносите в потоки и пусть они работают. Ваши "потоки" пасутся в главном (Synchronize) и никакого толка нет
концепцию надо поменять. запустили поток и занимайтесь своим делом. например покажите Splash
а вернется поток - вот по возвращению и сделаете то, что этот Splash закроет.
и уж точно потоки не должны ничего общего иметь с формами
я писал статью про потоки, там про сплеши тоже есть в блоге и про ProcessMessages отдельная боль...
http://www.cyberforum.ru/blogs/469693/blog4875.html
-
krapotkin получил реакцию от Bob32 в Рисование маркеров на определенных уровнях Zoom-a
маркерами управляете только вы сами
поэтому не выбрасывайте ссылки на созданные маркеры, а самостоятельно добавляйте удаляйте их при смене масштаба карты
-
krapotkin получил реакцию от Anatoliy в Фреймворк для стандартного ListView
Вот и картинки подвезли. Идиотский Deployment отказывается переписывать старые файлы на новые....
Пока полностью не удалил приложение, файл-описание раскладки был старый, без картинок
Как видно из заголовка 3000+ итемов с авторасчетом высоты. 6 секунд
Крутится плавно...
ListViewTest.apk.rar
-
krapotkin получил реакцию от scbeast в Переезд на 10.3 Rio
научили конечно ))) все придумано до нас
вот статья
вот так в грубом приближении должно это быть
p.s. Забыл удалить из ваших форм эти циклы, которых там быть не должно
Форма - это интерфейс взаимодействия с пользователем. Данные должны жить отдельно.
test10.3.zip
-
krapotkin получил реакцию от Yarpda в Переезд на 10.3 Rio
научили конечно ))) все придумано до нас
вот статья
вот так в грубом приближении должно это быть
p.s. Забыл удалить из ваших форм эти циклы, которых там быть не должно
Форма - это интерфейс взаимодействия с пользователем. Данные должны жить отдельно.
test10.3.zip
-
krapotkin получил реакцию от Ingalime в Переезд на 10.3 Rio
научили конечно ))) все придумано до нас
вот статья
вот так в грубом приближении должно это быть
p.s. Забыл удалить из ваших форм эти циклы, которых там быть не должно
Форма - это интерфейс взаимодействия с пользователем. Данные должны жить отдельно.
test10.3.zip
-
krapotkin получил реакцию от gonzales в Переезд на 10.3 Rio
научили конечно ))) все придумано до нас
вот статья
вот так в грубом приближении должно это быть
p.s. Забыл удалить из ваших форм эти циклы, которых там быть не должно
Форма - это интерфейс взаимодействия с пользователем. Данные должны жить отдельно.
test10.3.zip
-
krapotkin получил реакцию от Tumaso в Переезд на 10.3 Rio
сколько бед принесла уже стрельба в ногу под названием ProcessMessages
как хорошо, что в Андроиде наконец всех отучат от этого крайне вредного трюка
давайте формально
все что там у вас "высоконагруженное" выносите в потоки и пусть они работают. Ваши "потоки" пасутся в главном (Synchronize) и никакого толка нет
концепцию надо поменять. запустили поток и занимайтесь своим делом. например покажите Splash
а вернется поток - вот по возвращению и сделаете то, что этот Splash закроет.
и уж точно потоки не должны ничего общего иметь с формами
я писал статью про потоки, там про сплеши тоже есть в блоге и про ProcessMessages отдельная боль...
http://www.cyberforum.ru/blogs/469693/blog4875.html
-
krapotkin получил реакцию от qz5 в Фреймворк для стандартного ListView
Всем привет!
После долгого творческого запоя я запилил альфу либы, которая позволяет юзать обычный, не-генномодифицированный ListView.
Данные подаются в виде модели данных, описание раскладки итема лежит в JSON.
Для работы пишется примитивный наследник класса-адаптера, который биндит данные модели на элементы из JSON. Я решил, что руками делать это дешевле чем через RTTI
{ TMyAdapter } procedure TMyAdapter.SetupDrawableContent(const ADrawable: TListItemDrawable; const AData: TMyData); begin if SameText( ADrawable.Name, 'text') then begin (ADrawable as TListItemText).Text := AData.Text; end else if SameText( ADrawable.Name, 'detail') then begin (ADrawable as TListItemText).Text := AData.Detail; end else if SameText( ADrawable.Name, 'balance') then begin (ADrawable as TListItemText).Text := FormatFloat('0.00', AData.Balance); end else if SameText( ADrawable.Name, 'reserved') then begin (ADrawable as TListItemText).Text := FormatFloat('0.00', AData.Reserved); end end; Главная хитрость и отличие от стандартного DynamicAppearance+LiveBinding - переменная высота итемов ListView и использование арифметики в описании раскладки.
Можно указать Detail.Y = Text.Bottom + 5, ItemHeight = Detail.Bottom + 10, Detail.W = ItemWidth/2 - X
{"Kind":"rect","Name":"BonusRect","Value":"", "Place":{"X":"itemwidth*3/4","Y":"Text.Y","W":"ItemWidth/4-5","H":"50"}, "BorderColor":"#FF005500", "Color":"lime", "LineWidth":3}, {"TextHAlign":2,"TextVAlign":1,"Kind":"text","Name":"Balance","Value":"", "Place":{"X":"BonusRect.x+5","Y":"Text.Y","W":"BonusRect.w-10","H":"50"}, "WordWrap":true, "Color" :"Black", "Font":{"Size":18,"Style":""}} ], "ItemHeight":"detail.bottom+10", Это дает довольно гибкую систему. Не на все случаи жизни, но все, что нужно, можно после автоматической раскладки дополнительно приписать в OnUpdateObjects
Код для работы примерно такой
procedure TForm1.FormCreate(Sender: TObject); begin data:= TMyDataList.CreateFromFile(ExePath()+'data.json'); // загрузка в модель данных Adapter := TMyAdapter.Create(lvWallets, data.Items, ExePath()+'pattern.json'); // создание адаптера и загрузка шаблона Adapter.Pattern.SetupListView(lvWallets); // задать отступы и разную мелочь Adapter.ResetView(); // здесь в цикле из модели данных создается нужное количество итемов ListView end; procedure TForm1.lvWalletsUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); begin Adapter.SetupContent(AItem); // загрузить текст, картинки и другое содержимое в элементы итема Adapter.Pattern.DoLayout(AItem); // поправить раскладку в соответствии с содержимым элементов итема end; Для использования кроме стандартных - текст, картинка, кнопка - создано несколько дополнительных элементов итема - прямоугольник, круг, уголок, линия.
Отличие от ModernLV - ,
1) все происходит без правки системных файлов
2) пока нет колонок и других особых изысков.
На результат работы смотреть тут. Исходники пока не причесаны, будут чуть позже
UPD.
ссылки на репозитории ниже
-
krapotkin получил реакцию от Barbanel в Переезд на 10.3 Rio
сколько бед принесла уже стрельба в ногу под названием ProcessMessages
как хорошо, что в Андроиде наконец всех отучат от этого крайне вредного трюка
давайте формально
все что там у вас "высоконагруженное" выносите в потоки и пусть они работают. Ваши "потоки" пасутся в главном (Synchronize) и никакого толка нет
концепцию надо поменять. запустили поток и занимайтесь своим делом. например покажите Splash
а вернется поток - вот по возвращению и сделаете то, что этот Splash закроет.
и уж точно потоки не должны ничего общего иметь с формами
я писал статью про потоки, там про сплеши тоже есть в блоге и про ProcessMessages отдельная боль...
http://www.cyberforum.ru/blogs/469693/blog4875.html
-
krapotkin получил реакцию от GASCHE в Переезд на 10.3 Rio
сколько бед принесла уже стрельба в ногу под названием ProcessMessages
как хорошо, что в Андроиде наконец всех отучат от этого крайне вредного трюка
давайте формально
все что там у вас "высоконагруженное" выносите в потоки и пусть они работают. Ваши "потоки" пасутся в главном (Synchronize) и никакого толка нет
концепцию надо поменять. запустили поток и занимайтесь своим делом. например покажите Splash
а вернется поток - вот по возвращению и сделаете то, что этот Splash закроет.
и уж точно потоки не должны ничего общего иметь с формами
я писал статью про потоки, там про сплеши тоже есть в блоге и про ProcessMessages отдельная боль...
http://www.cyberforum.ru/blogs/469693/blog4875.html
-
krapotkin получил реакцию от Maximus в Переезд на 10.3 Rio
сколько бед принесла уже стрельба в ногу под названием ProcessMessages
как хорошо, что в Андроиде наконец всех отучат от этого крайне вредного трюка
давайте формально
все что там у вас "высоконагруженное" выносите в потоки и пусть они работают. Ваши "потоки" пасутся в главном (Synchronize) и никакого толка нет
концепцию надо поменять. запустили поток и занимайтесь своим делом. например покажите Splash
а вернется поток - вот по возвращению и сделаете то, что этот Splash закроет.
и уж точно потоки не должны ничего общего иметь с формами
я писал статью про потоки, там про сплеши тоже есть в блоге и про ProcessMessages отдельная боль...
http://www.cyberforum.ru/blogs/469693/blog4875.html