-
Постов
847 -
Зарегистрирован
-
Посещение
-
Победитель дней
28
Активность репутации
-
Vitaldj отреагировална Greenfield в Медленная загрузка и зависание
Приложение зависает при использовании TLinkControlToField, проблему решил используя для вывода списков TLinkFillControllToField.
-
Vitaldj отреагировална rareMax в Как уменьшить нагрузку на ЦП?
Ну например я смотрю спайдером.
Допустим я пишу сейчас АПИ для телеграмма. Есть у меня демка. И, например, у меня большая нагрузка на процессор(на самом деле мизерная - 0.1-0.3%). Что бы определить место, где происходит нагрузка - я запускаю демку под профайлером.
Открываю Code Tracking и смотрю в моем юните(TelegaPI.Bot) на количество вызовов. Ознакомившись с этой сводкой - становится ясно - что больше всего вызовов происходит во время получения обновлений. Обновления от сервера получаю getUpdates. SetIsReceiving -метод, который в другом потоке в цикле проверяет обновления. Так что, если меня не устраивает нагрузка на ЦП - нужно обратить внимание на этот метод(SetIsReceiving, а точнее getUpdates, в котором вся логика работы)
-
Vitaldj получил реакцию от rareMax в RAD 11 на подходе?
Коллеги, может кому будет интересна информация. В фичах Берлина есть упоминания, что приложения в Windows научились распознавать большие DPI. В Wha's New это так написано:
High DPI Support on Windows
FireMonkey provides multi-resolution styles for Windows, which provide support for 120 DPI and 144 DPI monitors.
А выглядит это так:
Слева форма из Сиэтла, справа форма из Берлина. Код не менялся. Обе запущены на macbook pro с дисплеем ретина (boot camp).
Я думаю очень показательно)
-
-
Vitaldj получил реакцию от Rusland в Требуется помощь в технологиях
Я закачиваю через php скрипт, который лежит на сервере.
код для delphi:
var par, path_windows:string; st:Tidmultipartformdatastream; RS: TStringStream ; begin path_windows:=extractfilepath(paramstr(0)); RS := TStringStream.Create(''); st:=Tidmultipartformdatastream.Create; par:= GetMIMETypeFromFile(path_windows+'\'+ 'имя файла') ; try st.AddFile( 'uploadfile',path_windows+'\'+имя файла' , par ); except messagedlg('Произошла ошибка. Файл архива не найден. При повторении ошибки, обратитесь к администратору.',mterror,[mbYes],0) ; exit; end; IdHTTP1.Request.ContentType := st.RequestContentType; try IdHTTP1.Post( 'http://'+имя сайта+'/директория на сайте/uploadfile3.php', st , RS); // uploadfile3.php - имя скрипта php except messagedlg('Произошла ошибка. Нет соединения с сервером. Это может быть вследствии его отсутствия или при наличии прокси сервера, неверная настройка программы.',mterror,[mbYes],0) ; exit; end; if RS.DataString = 'ok' и обработка
Код для php:
<?php if ( copy($_FILES['uploadfile']['tmp_name'],"uploads2/".basename($_FILES['uploadfile']['name']))) print "ok" ; else print "no" ; ?>
-
Vitaldj получил реакцию от rareMax в Требуется помощь в технологиях
Я закачиваю через php скрипт, который лежит на сервере.
код для delphi:
var par, path_windows:string; st:Tidmultipartformdatastream; RS: TStringStream ; begin path_windows:=extractfilepath(paramstr(0)); RS := TStringStream.Create(''); st:=Tidmultipartformdatastream.Create; par:= GetMIMETypeFromFile(path_windows+'\'+ 'имя файла') ; try st.AddFile( 'uploadfile',path_windows+'\'+имя файла' , par ); except messagedlg('Произошла ошибка. Файл архива не найден. При повторении ошибки, обратитесь к администратору.',mterror,[mbYes],0) ; exit; end; IdHTTP1.Request.ContentType := st.RequestContentType; try IdHTTP1.Post( 'http://'+имя сайта+'/директория на сайте/uploadfile3.php', st , RS); // uploadfile3.php - имя скрипта php except messagedlg('Произошла ошибка. Нет соединения с сервером. Это может быть вследствии его отсутствия или при наличии прокси сервера, неверная настройка программы.',mterror,[mbYes],0) ; exit; end; if RS.DataString = 'ok' и обработка
Код для php:
<?php if ( copy($_FILES['uploadfile']['tmp_name'],"uploads2/".basename($_FILES['uploadfile']['name']))) print "ok" ; else print "no" ; ?>
-
Vitaldj получил реакцию от zairkz в Всплывающая подсказка
согласен)). Просто для полноты ответа привел еще один вариант, платный
-
Vitaldj получил реакцию от zairkz в RAD 11 на подходе?
Коллеги, может кому будет интересна информация. В фичах Берлина есть упоминания, что приложения в Windows научились распознавать большие DPI. В Wha's New это так написано:
High DPI Support on Windows
FireMonkey provides multi-resolution styles for Windows, which provide support for 120 DPI and 144 DPI monitors.
А выглядит это так:
Слева форма из Сиэтла, справа форма из Берлина. Код не менялся. Обе запущены на macbook pro с дисплеем ретина (boot camp).
Я думаю очень показательно)
-
Vitaldj получил реакцию от Kitty в Всплывающая подсказка
Ну и самый простой ответ, но самый дорогой, с помощью платных компонентов. У TMS есть TTMSFMXPopup.http://www.tmssoftware.com/site/tmsfmxpack.asp?s=fmxmisc#features
-
Vitaldj получил реакцию от Равиль Зарипов (ZuBy) в RAD 11 на подходе?
Коллеги, может кому будет интересна информация. В фичах Берлина есть упоминания, что приложения в Windows научились распознавать большие DPI. В Wha's New это так написано:
High DPI Support on Windows
FireMonkey provides multi-resolution styles for Windows, which provide support for 120 DPI and 144 DPI monitors.
А выглядит это так:
Слева форма из Сиэтла, справа форма из Берлина. Код не менялся. Обе запущены на macbook pro с дисплеем ретина (boot camp).
Я думаю очень показательно)
-
Vitaldj получил реакцию от Kitty в RAD 11 на подходе?
Коллеги, может кому будет интересна информация. В фичах Берлина есть упоминания, что приложения в Windows научились распознавать большие DPI. В Wha's New это так написано:
High DPI Support on Windows
FireMonkey provides multi-resolution styles for Windows, which provide support for 120 DPI and 144 DPI monitors.
А выглядит это так:
Слева форма из Сиэтла, справа форма из Берлина. Код не менялся. Обе запущены на macbook pro с дисплеем ретина (boot camp).
Я думаю очень показательно)
-
Vitaldj отреагировална Error в Архитектура FM
На Windows два вида канвы: TCanvasGdiPlus и TCustomCanvasD2D, на Mac есть нативная для макоси TCanvasQuartz, как видите не OpenGL-ем единым.
На Windows есть как минимум один повод использовать D2D - в этой канве используется нативный для системы рендинг текста, в то время как в TGpuCanvas рендинг текста происходит через промежуточные битмапы, что сказывается на производительности.
D2D, Quartz, GdiPlus - все эти Api созданы как-раз для использования в приложениях, в то время как OpenGL явно не предназначен для этого и не имеет элементарного рендера текста.
Действительно у меня на 7-ке были актуальные драйвера по дефолту, за одной маленькой проблемой - с софтварным рендингом
Тут все просто - бросьте на форму TCircle и запустите на телефоне, а потом сравните качество прорисовки круга с Windows. И из-за заточености OpenGL под 3д визуализацию намного лучше и не сделать скорее всего.
--
Я наоборот жду когда под мобильными платформами будет использоваться нативное API для графики
-
-
-
Vitaldj отреагировална krapotkin в Быстро разрывается связь
ну так 100500 раз говорено, что не должен телефон напрямик обращаться к базам
нужен промежуточный сервер, который будет сидеть в базе и слушать запросы с телефона по HTTP
-
Vitaldj получил реакцию от Andrey Efimov в Tedit фокус
Прости меня за непонятливость, но я вообще не врубился что вы написали))). Если хотите помощи, пишите понятнее и прилагайте фото.
-
Vitaldj отреагировална Равиль Зарипов (ZuBy) в Вопрос по компонентам
TPresentedScrollBox умеет такое, правда размещением компонентов и пересчет позиции компонентов нужно предусмотреть самому.
Могу завтра скинуть пример, недавно для себя делал
-
Vitaldj отреагировална Brovin Yaroslav в Обновление форума
Победил сортировку по умолчанию. Теперь для рубрики Вопрос/Ответ по умолчанию используется сортировка по дате публикации.
-
Vitaldj отреагировална Brovin Yaroslav в [TTabControl] Как задать иконку у вкладки компонента TTabControl?
Картинку можно указать двумя способами:
Способ 1
У каждой вкладки TTabControl есть свойство TTabItem.CustomIcon позволяющее загрузить картинку на вкладку.
Способ 2. С использование TImageList
Если картинки располагаются в TImageList компоненте, то нужно вначале привязать TImageList к TTabControl.Images. А затем выбрать индекс картинки у вкладки TTabItem.ImageIndex.
-
-
Vitaldj отреагировална krapotkin в Обновление форума
блин, имхо, плохое умолчание ((
и опять имхо же дизайн уж слишком раздольный получился
2-3 поста на FullHD - как-то жирно. даже в окне редактора высота строки 300%
-
Vitaldj отреагировална rareMax в [TidTCPClient] В IdTCPClient возникает Max line length exceeded при чтении
Для начала - я бы попробовал обновить инди. Та версия, что поставляется с Делфи - немного отстает. Постоянно выходят багфиксы. Скачать последнюю версию можно с помошью SVN клиента(ваш любимый либо встроенный в ИДЕ): https://svn.atozed.com:444/svn/Indy10 Имя: Indy-Public-RO пароль пустой оставь
-
Vitaldj отреагировална Рагим в Проблема с воспроизведением wav
Заменил процедуру воспроизведения звука на эту:
uses
MMSystem;
procedure playsound; begin sndPlaySound(Pchar('ringin.wav'), SND_NODEFAULT Or SND_ASYNC); end; Проблема устранена. -
Vitaldj отреагировална Brovin Yaroslav в Разное поведение при Release и Debug
Если вы используете Deployment Manager, то возможно вы забыли добавить файлы для релиз конфигурации.
-
Vitaldj отреагировална Alex7wrt в как отловить перемещение формы по экрану, Windows
После долгого поиска все-таки нашел тему на этом же форуме )). Хотя раньше искал, но не находил.
Тема: http://fire-monkey.ru/topic/1452-kak-poimat-peremeschenie-formy/
Суть решения - необходимо перекрыть виртуальный метод формы SetBounds, который выполняется каждый раз при перемещении формы
procedure TCommonCustomForm.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual; Для этого в описании методов формы пишем
type TForm1 = class(TForm) ........ procedure SetBounds(ALeft, ATop, AWidth, AHeight: integer); override; ....... end; и в теле процедуры выполняем необходимые действия
procedure TForm1.SetBounds(ALeft, ATop, AWidth, AHeight: integer); begin inherited; if assigned(form2) then begin form2.Left:=ALeft; form2.top:=ATop; end; end; В данном случае - присвоение второй форме координат первой.