Евгений Корепов

Пользователи
  • Публикации

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

  • Посещение

  • Days Won

    10

Евгений Корепов last won the day on 25 сентября 2016

Евгений Корепов had the most liked content!

О Евгений Корепов

  • Звание
    Продвинутый пользователь
  • День рождения 22 июля

Информация

  • Пол
    Мужчина
  • Город
    Ухта

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

592 просмотра профиля
  1. А если TIdHTTPServer заменить на TIdTCPServer, интересно на сколько увеличится быстродействие? И еще вопрос - по ядрам процессора нагрузка распределяется равномерно или грузит только одно ядро в вашем случае?
  2. Смысл в том что в комбинации с IdHTTPServer1.KeepAlive:=False, код ниже будет сразу освобождать ресурсы, т.е. количество соединений не превысит 1024 плюс несколько десятков отправленных в редирект с последующим отключением. procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); begin if CurrentConnectionCount>1024 then AResponseInfo.Redirect('sadas.asdasf.com'); end;
  3. Ограничте количество соединений самостоятельно разумной цифрой, при попытке соединения сверх лимита отдавайте в хеадере редирект на следующий сервер в кластере. Если конечно есть следующий сервер...
  4. Пока отложил, Новый год на носу :-) После празднования посмотрю ролик по ссылке выше и попробую еще раз. Приложение будет "Актированный день Ухта", под андроид уже опубликовано, вот как раз хотел под винду потестить.
  5. Заплатил микрософту денег, получил доступ к публикации приложений. Но все попытки что сделать провалились. Видео от ембаркадеры https://www.embarcadero.com/products/rad-studio/windows-10-store-desktop-bridge откровенный фейк, при попытке воспроизвести действия в ролике, создается пакет, но устанавливаться не хочет по причине отсутствия сертификата. Может кто встречал на просторах интернета мануал с нормально расписанными шагами. А то ембаркадера даже хелп не удосужилась создать для странички настройки provisioing в режиме windows Добавление: Кое что начинает проясняться, спасибо Равилю Зарипову за ссылку https://community.embarcadero.com/blogs/entry/appx-development-for-windows-10-store Вот что я упустил: Следующий шаг, чтобы убедиться, что вы включили "режим разработчика" на ОС Windows 10. Это необходимо для установки APPX пакетов, подписанных с тестовыми сертификатами. Вы можете найти эту опцию в Windows 10 "Настройки" в разделе "Обновление и безопасность" и "для разработчиков".
  6. Как то так: MultiPartFormDataStream.AddFormField('KREPL',System.Net.URLClient.TURI.URLEncode(Memo2.Lines[9]));
  7. 1. Увеличение веса приложения - туда натолкано столько кода, понятно что мультиплатформенности (тот же, не используемый в андроиде, TControl в параметрах множества функций). На андроиде может работать, а может и нет, или срабатывать через раз. Не знаю причину, разбираться лень. 2. Да, из исходников и выдран метод. После того как ознакомился с исходниками, решил ограничится коротенькой процедурой. 3. Без потока приложение залипает на 2-3 секунды, не очень приятное ощущение, особенно когда вызов идет с нажатой на MultiView кнопки - анимация закрытия MultiView замораживается в неопределенном состоянии и приложение выглядит как будто умерло :-)
  8. Точно! Сейчас посмотрел свежим взглядом и понял недочет, сделаю LThread глобальным.
  9. Попробуйте еще телнетом проверить : telnet IP_телефона Порт_сервера ,произойдет соединение или нет?
  10. Почему? Для некоторых нужд очень даже. К примеру регулярно пользуюсь ftp-сервером на телефоне - намного удобнее заливать/сливать (по wifi) книги, музыку и прочее, сидя за компьютером в Far manager, чем перетаскивая мышкой в убогих индусских синхронизаторах или пользоваться облачными решениями (залить 30 гигов в dropbox с компьютера (тут нет проблем, инет 450 мегабит), а потом их выкачивать из инета на телефон даже по wifi ac то еще удовольствие).
  11. Функция показа виртуальной клавиатуры при подключенной физической включается в настройках самого устройства. Как это сделать программно я не допёр. У каждого производителя по разному, на китайцах и HTC все просто, на Samsung - долгие танцы с бубном (отключение/подключение физической клавиатуры, тыкания в настройки и т.п.)
  12. Я отказался от TActions ввиду глючности и не предсказуемости. Попробуйте этот код: procedure TFormMain.ListBoxMultiViewItemClick(const Sender: TCustomListBox; const Item: TListBoxItem); Var LThread: TThread; S : String; begin if Not Item.Selectable then exit; if Not Item.Enabled then exit; MultiView.HideMaster; if Item = ListBoxItemShare then begin SendError('Share url'); S:='Всем срочно ставить моё крутое приложение для Android'+#10+URLGooglePlay; LThread:=TThread.CreateAnonymousThread( procedure begin ShareUrl(S); TThread.CurrentThread.Terminate; end); LThread.FreeOnTerminate := true; LThread.Start; end; end; procedure ShareUrl(AURL : String); {$IFDEF ANDROID} Const SMediaLibraryOpenTextWith = 'Send text using:'; var MIMETypes: string; Intent: JIntent; IntentChooser: JIntent; ChooserCaption: string; {$ENDIF ANDROID} begin {$IFDEF ANDROID} try Intent := TJIntent.Create; MIMETypes := 'text/plain'; // Intent.setAction(TJIntent.JavaClass.ACTION_SEND_MULTIPLE) Intent.setAction(TJIntent.JavaClass.ACTION_SEND); Intent.setType(StringToJString(MIMETypes)); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); Intent.addFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(AURL)); ChooserCaption := SMediaLibraryOpenTextWith; IntentChooser := TJIntent.JavaClass.createChooser(Intent, StrToJCharSequence(ChooserCaption)); SharedActivity.startActivity(IntentChooser); finally end; {$ENDIF ANDROID} end;
  13. Я делаю велосипед - после покупки делаю хеш-строку на базе "id-продукта + параметры устройства" и пишу ее в файл. При запуске приложения, сначала проверяю наличие и валидность строки, а если не вышло, то потом IsProductPurchased(). Велосипед из десятка строчек работает надежно и не зависит от перезагрузок.
  14. Покажите код сервера, включая инициализацию (назначение портов и прочее)
  15. procedure TDM.TCPServerExecute(AContext: TIdContext); Var AData : TIdBytes; Status : TStatus; begin // AContext.Connection.IOHandler.CheckForDataOnSource(10); if not AContext.Connection.IOHandler.InputBufferIsEmpty then begin AContext.Connection.IOHandler.ReadBytes(AData,VoiceBufferByteLength); // AContext.Connection.IOHandler.ReadStream(); if AData<>Nil then begin Status.DataType:='recieved'; Status.ByteOut:=0; Status.ByteIn:=Length(AData); QueueStatus.PushItem(Status); if Length(AData)=VoiceBufferByteLength then begin BytesToRaw(AData,FVoiceBuffer.Data^,VoiceBufferByteLength); QueuePlay.PushItem(FVoiceBuffer); end; end; end; end; Вот как то так попробуйте