Таблица лидеров


Популярный контент

Показан наиболее популярный контент за 14.11.2017 во всех областях

  1. 11 баллов
    Alex7wrt

    Локальная рация, Android, пример

    Сделал простой пример приложения рации в локальной сети под Android. Реализация через UDP. Буду рад, если кому окажется полезным. Для начала/окончания сеанса связи нужно нажать на окружность Для проверки нужно 2 телефона unit Unit5; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, IdGlobal, IdSocketHandle, Androidapi.JNI.Media, Androidapi.JNI.JavaTypes, Androidapi.JNIBridge, AndroidApi.JNI, AndroidApi.Helpers, FMX.Objects, System.Math; type TForm1 = class(TForm) Circle: TCircle; procedure ServerUDPRead(AThread: TIdUDPListenerThread; const AData: TIdBytes; ABinding: TIdSocketHandle); procedure FormCreate(Sender: TObject); procedure CircleTap(Sender: TObject; const Point: TPointF); end; TSendThread = class(TThread) protected procedure Execute; override; end; var Form1: TForm1; SendThread: TSendThread; Server: TIdUDPServer; audioRecord: JaudioRecord; audiotrack: JAudioTrack; recording: boolean; buffer_Size, port,ch_in, ch_out, format, freq, source: integer; implementation {$R *.fmx} procedure TSendThread.Execute; var buffer: TJavaArray<Byte>; begin buffer := TJavaArray<Byte>.create(buffer_size); while recording do begin audioRecord.read(buffer,0,buffer_size); Server.Broadcast(TIDBytes(TJavaArrayToTBytes(buffer)),port); end; buffer.Free; end; procedure TForm1.CircleTap(Sender: TObject; const Point: TPointF); begin recording:= not recording; if recording then begin Circle.Fill.Color:=TAlphaColors.Red; Server.OnUDPRead:=nil; audiorecord.startRecording; SendThread:=TSendThread.Create; end else begin Circle.Fill.Color:=TAlphaColors.Gray; audiorecord.stop; Server.OnUDPRead:=ServerUDPRead; end; end; procedure TForm1.FormCreate(Sender: TObject); begin buffer_size:=2048; freq:=8000; port:=5555; Server:=TIdUdpServer.Create(Form1); with Server do begin BufferSize:=buffer_size; DefaultPort:=port; BroadCastEnabled:=true; Active:=true; OnUDPRead:=ServerUDPRead; end; Circle.Width:=min(Screen.Width,Screen.Height)*0.7; Circle.Height:=Circle.Width; ch_in:=TJAudioFormat.JavaClass.CHANNEL_IN_MONO; ch_out:=TJAudioFormat.JavaClass.CHANNEL_OUT_MONO; format:=TJAudioFormat.JavaClass.ENCODING_PCM_16BIT; source:=TJMediaRecorder_AudioSource.JavaClass.MIC; audioRecord := TJAudioRecord.JavaClass.init(source, freq, ch_in, format, buffer_size); audiotrack:=TJAudioTrack.JavaClass.init(3, freq, ch_out, format, buffer_size,1); end; procedure TForm1.ServerUDPRead(AThread: TIdUDPListenerThread; const AData: TIdBytes; ABinding: TIdSocketHandle); begin audiotrack.write(TBytesToTJavaArray(TBytes(AData)),0,Length(AData)); audiotrack.play; end; end. radio.zip
  2. 3 балла
    kami

    Открытие ссылки в проекте Firemonkey

    Вы не там ифдефы пишете. Не нужно здесь много модулей. Для примера. (емнип - автор @Равиль Зарипов (ZuBy) ). Единая точка входа в функцию и отличаются только внутренности. function OpenURL(const URL: string; const DisplayError: Boolean = False): Boolean; var {$IFDEF ANDROID} Intent: JIntent; {$ENDIF} {$IFDEF IOS} NSU: NSUrl; {$ENDIF} {$IFDEF MSWINDOWS} Res: HINST; {$ENDIF} begin {$IFDEF ANDROID} // There may be an issue with the geo: prefix and URLEncode. // will need to research Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW, TJnet_Uri.JavaClass.parse(StringToJString(TIdURI.URLEncode(URL)))); try TAndroidHelper.Activity.startActivity(Intent); exit(true); except on e: Exception do begin if DisplayError then TDialog.ShowMessage('Error: ' + e.Message); exit(False); end; end; {$ENDIF} {$IFDEF IOS} // iOS doesn't like spaces, so URL encode is important. NSU := StrToNSUrl(URL); if SharedApplication.canOpenURL(NSU) then exit(SharedApplication.OpenURL(NSU)) else begin if DisplayError then TDialog.ShowMessage('Error: Opening "' + URL + '" not supported.'); exit(False); end; {$ENDIF} {$IFDEF MSWINDOWS} Res := ShellExecute(0, 'open', PChar(URL), nil, nil, SW_SHOW); Result := Res > 32; {$ENDIF} end; И теперь "снаружи" этой функции вам без разницы, под какую платформу идет сборка. В любом случае вы пишете "OpenURL('http://blablabla.net');". Безо всяких IFDEF.
  3. 3 балла
    x11

    Цикло по unicode строке

    В общем, оказалось, что "'CharInSet' is deprecated: 'Use TCharHelper functionality'" Правильно вот так: uses System.Character; ... ... for ch in s do if ch.IsInArray(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']) then result := result + ch; или "IsDigit" если нужны только цифры for ch in s do if ch.IsDigit then result := result + ch; http://docwiki.embarcadero.com/Libraries/XE7/en/System.Character.IsDigit
  4. 3 балла
    kami

    Убить поток TThread кроссплатформено

    С каких пор в Delphi перестали существовать TCriticalSection, TMutex, TEvent? Которые, кстати, работают кроссплатформенно, используя штатные средства, предоставляемые ОС.
  5. 3 балла
    krapotkin

    Запуск приложения из текущего

    procedure RunProgram(cmdStr:string; Wait:Boolean; ShowWindow:Word); var si:TStartupInfo; pi:TProcessInformation; s:string; begin FillChar(si, SizeOf(si), 0); si.cb := SizeOf(si); si.dwFlags:=STARTF_USESHOWWINDOW; si.wShowWindow := ShowWindow; s:=cmdStr; UniqueString(s); getlasterror; if not CreateProcess(nil, PChar(S), NIL, NIL, False, 0, NIL, NIL, si, pi) then showMessageFmt('Ошибка %d. %s',[getlasterror,SysErrorMessage(getlasterror)]); if wait then WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); end;
  6. 3 балла
    Fedor K

    IdTCPClient-IdTCPServer управление соединением

    Можете мне сделать тестовый сервер и клиент, чтобы я смог у себя проверить? Тогда мой ответ будет более детальным. А пока: Какой вы объем данных шлете по соединению? Чем вызвана потребность использовать именно сокеты? TimeOut никогда не ставьте большими. Indy работает по принципу блокировки сокета и всего потока в целом. Поэтому большое значение = зависание всего приложения = нежелательные результаты и зависание. Я ставил 100 мс для работы с маленькими пакетами. С такой задержкой доп. поток не обязателен. Если значения более 500 мс - нужно создавать отдельный поток и работать с сокетами в ней + синхронизация при обработке / отправке данных. TIdTCPClient на Andoid любит спать и не проверять входящий буфер. Поэтому вручную нужно вызывать по таймеру проверку типа: procedure T<какое-то имя класа>.Read; var sz : integer; lMsg : string; begin try TMonitor.Enter(Self); try if not Assigned(Client.IOHandler) then Exit; //Client = TIdTCPClient if Client.IOHandler.InputBufferIsEmpty then begin if not Client.IOHandler.CheckForDataOnSource() then exit; end; sz := Client.IOHandler.InputBuffer.Size; if sz <= 0 then exit; lMsg := Client.IOHandler.InputBuffer.ExtractToString(-1, IndyTextEncoding_UTF8); Client.IOHandler.InputBuffer.Clear; <какой-то обработчик входящего сообщения>; except on e : Exception do <какой-то обработчик ошибки>; end; finally TMonitor.Exit(Self); end; end; AntiFreeze - это мягко говоря "костыль" от Indy, использование его плохая практика. На мобильной платформе вряд ли он появится, хотя и реализуется не сложно.
  7. 2 балла
    Andrey Efimov

    Два вопроса касательно работы MultiView

    Пользуемся сначала поиском (или заходим в нужный раздел и просматриваем темы)... [TMultiView] Как избежать задержки при первом появлении TMultiView?
  8. 2 балла
    это называется Bounce эффект доступен в TAniCalc, но просто так до него не добраться. Можно использовать ModernListView, там легко это делается. P.S. поиск по форуме ModernLV, ModernListView
  9. 2 балла
    sinuke

    Локализация диалогов

    Локализовать под разные языки не получится. Там эти строки заданы в виде констант. Я лично использую NativeView Равиля - и вид нативный и надписи можно любые вставлять во время выполнения приложения
  10. 2 балла
    krapotkin

    Цикло по unicode строке

    гораздо проще '1234567890'.Contains(ch)
  11. 2 балла
    Если правильно понял, то вам необходимо использовать intent-filter.
  12. 2 балла
    Я пишу на Delphi под iOS без мака. Что понадобится: 1. Процессор Intel, не AMD. Т.к. MacOS работает под Intel. 2. VMware + образ с установленной MAcOS. 3. iPhone 5s или выше. Т.к. начиная с iPhone 5s процессор стал x64. Сейчас публиковать нужно обязательно x64. iPhone 5 версия - x32. Телефон можно купить б\у. Идешь на рутрекер и скачиваешь Vmware образ с уже установленным MacOs Sierra. Также читай инструкции, - нужно пропатчить VMware - т.к. по дефолту возможность работы с OSX там отключена. Дальше присоединяшь телефон к компу, и Vmware определяет этот телефон. Дальше все по инструкции EMBT. Да кстати, желательно не обновлять телефон до версии iOS 11 - к примеру у меня на Berlin были проблемы с этим SDK - поэтому я сейчас компилю проект на 10 SDK (при этом телефон остался на 11). Итого все компилиться, и работает Debug - кстати он гораздо быстрее чем Android отладка. Да не забудьте купить аккаунт разработчика Apple - 100$ в год. Без него будет куча проблем с настройкой. Есть временный бесплатный сертификат на 5 дней (работает в течении 5 дней, затем нужно делать ребилд) - для этого можно запустить Xcode и создать и запустить пустой проект, но лучше сразу купить платный - будет меньше проблем.
  13. 2 балла
    mmover

    TTextSettings неразвёртвовается

    Примерно так: interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics; type TMyLabel = class(TControl) private FFontTextSettingInfo: TTextSettingsInfo; function GetTextSettings: TTextSettings; procedure SetTextSettings(const Value: TTextSettings); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property LabelFont: TTextSettings read GetTextSettings write SetTextSettings; end; implementation type TMyTextSettings = class (TTextSettingsInfo.TCustomTextSettings) public constructor Create(const AOwner: TPersistent); override; published property Font; property FontColor; property HorzAlign; property VertAlign; // можно убрать ненужные свойства // property WordWrap default True; // property Trimming default TTextTrimming.Character; end; constructor TMyTextSettings.Create(const AOwner: TPersistent); begin inherited; WordWrap := False; Trimming := TTextTrimming.Character; end; constructor TMyLabel.Create(AOwner: TComponent); begin inherited Create(AOwner); FFontTextSettingInfo := TTextSettingsInfo.Create(Self,TMyTextSettings); // FFontTextSettingInfo.TextSettings.FontColor := TAlphaColors.Black; // FFontTextSettingInfo.TextSettings.OnChanged := FontChanged; end; destructor TMyLabel.Destroy; begin FFontTextSettingInfo.Free; inherited Destroy; end; function TMyLabel.GetTextSettings: TTextSettings; begin Result := FFontTextSettingInfo.TextSettings; end; procedure TMyLabel.SetTextSettings(const Value: TTextSettings); begin FFontTextSettingInfo.TextSettings.Assign(Value); end; end.
  14. 2 балла
    Чтобы добавить любое изображение в системную галерею изображений Андроида нужно: Получить универсальный URI к вашей картинке GetImageUri. Для этого сохраняем изображение (если изображение находится в памяти устройства, а не в файловой системе) в кэш приложения. Формируем намерение JIntent, что хотим добавить изображение. Задаем URI к картинке и делаем широковещательный запрос на все приложения, которые могут обработать наш запрос. // Сохранение изображения в кэш приложения и извлечение Url к этому файлу function GetImageUri(ABitmap: TBitmap): Jnet_Uri; var ImageFile: JFile; ImageUri: Jnet_Uri; FileNameTemp: JString; FileNameExt: JString; begin FileNameTemp := StringToJString('temp'); FileNameExt := StringToJString('.jpg'); try ImageFile := TJFile.JavaClass.createTempFile(FileNameTemp, FileNameExt); ImageUri := TJnet_Uri.JavaClass.fromFile(ImageFile); ABitmap.SaveToFile(JStringToString(ImageFile.getAbsolutePath)); finally Result := ImageUri; end; end; procedure AddPhotoToGallery(const APhoto: TBitmap); var Intent: JIntent; begin Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_MEDIA_SCANNER_SCAN_FILE); Intent.setData(GetImageUri(APhoto)); SharedActivity.sendBroadcast(Intent); end;
  15. 2 балла
    OnePeople

    Локальная рация, Android, пример

    with Server do begin BufferSize:=buffersize ??? with Server do begin BufferSize:=buffer_size
  16. 2 балла
    enatechno

    Чтение текста

  17. 2 балла
    Fedor K

    IdTCPClient-IdTCPServer управление соединением

    Посмотрел ваш пример, все зависания и вылеты с ошибками связаны с обращением к пустым объектам, попыткой обработать все в одном обработчике. Исправить клиент дело не благодарное, поэтому сделал пример по работе с TCP сокетом с возможностью автоподключения (тык). Проверил на нескольких устройствах, полет нормальный. Основные замечания: Не используйте FormActivate событие, тем более на мобильной платформе. Его обработка замораживает приложение. В примере посмотрите вариант обхода. TIniFile нет смысла использовать каждый раз для считывания настроек. 1 раз считали при старте приложения и больше к файлу не обращаемся. Хранить настройки в компонентах (edSettingHost.Text и т.п.). Создание свойства отнимет максимум минуту, а выгоду даст существенную. TCP сокет соединения следуют принимать как асинхронные, а не как запрос-ответ. Это предусматривает получение команды сервером, какое-то выполнение и лишь потом отправка на клиент. Поэтому попробуйте отказаться от использования GetFromServer. Сервер только запускал для проверки клиента, пару раз ловил outofmemory и access violation, закрыться тоже не захотел по-хорошему. Поэтому желательно его тоже довести до ума.
  18. 1 балл
    Brovin Yaroslav

    Изменение стиля TfgActivityDialog №2

    Судя по официальной доке по кастомизации диалога: https://developer.android.com/guide/topics/ui/dialogs.html?hl=ru#CustomLayout нужно именно создать тему, а не стиль. В приведенной тобой ссылке стиль применяется не к диалогу, а к контенту, что не гибко с точки зрения кастомизации, так как прозрачность диалога задается на уровне кода, а не стиля. Надо посмотреть тут: http://developer.alexanderklimov.ru/android/theme.php про темы в андроиде. И попробовать сделать именно тему со стилем диалога. И потом ее уже применить. Это должно сработать.
  19. 1 балл
    krapotkin

    Два вопроса касательно работы MultiView

    ну, к вопросу это непосредственно не относится, скорее к методологии, когда на frame2 мы обращаемся к frame1.comboBox1.Itemindex или еще хуже к frame3.edit1.text. и тут выясняется что frame1/3 не создан/находится не в том состоянии, и т.д. и т.п. Или классика "Почему в FMX нет button1.Click() ?" ))) Если данные как положено - в переменных, то они доступны вне зависимости от наличия и видимости на экране разных UI
  20. 1 балл
    FREEFAR

    Delphi и Android 8

    Да.
  21. 1 балл
    kami

    Непонятки с TWebBrowser

    Попробуйте использовать Navigate (без параметров) вместо Reload. Ну и - делать невидимую работу по правке файла, используя визуальный компонент (Memo) - это, мягко говоря, не комильфо.
  22. 1 балл
    krapotkin

    Цвет кнопки

    положить в нее ректангл а самый простой - это просто использовать ректангл вместо кнопки
  23. 1 балл
    x11

    OrangeUI

    Дошло. Картинки я грузил из базы. Я неправильно их записывал в список TSkinImageList. Использовал метод CreateFromBitmapAndMask() вот так переделал procedure AddPhoto(Image: TBlobStream; const sDescr: string = ''); Var pic: TDrawPicture; begin pic := TDrawPicture.CreateFromStream(Image); pic.Caption := sDescr; ImageList.PictureList.Add(pic); end; к сожалению, нет метода CreateFromBitmap()
  24. 1 балл
    Brovin Yaroslav

    [Андроид] TAniIndicator

    Он использует фиксированный размер. Это зависит от стиля. В данном случае стиль для Андроида и йос именно фиксированного размера. Связано это прежде всего с тем, что эти стили растровые. Если вы хотите снять это ограничение, вы можете отредактировать дефолтный стиль и сбросить значения FixedWidth и FixedHeight.
  25. 1 балл
    Alex7wrt

    [Андроид] TAniIndicator

    Тогда TZNativeDrawFigureArc замените на TArc. Может на ваших целевых устройствах будет нормально отрисовываться.
  26. 1 балл
    x11

    OrangeUI

    Чтобы SkinFMXImageListViewer нормально вписывал картинку, нужно прикрутить TSkinImageListViewerDefaultMaterial и уже в этой компоненте настраивать. Не обязательно использовать отдельный TSkinImageListViewerDefaultMaterial, достаточно включить свойство MaterialUserKind := mukSelfOwn, при этом свойство SelfOwnMaterial будет заполнено автоматически своей компонентой, но на форме её не будет. Думаю, что TSkinImageListViewerDefaultMaterial удобно использовать, если есть несколько SkinFMXImageListViewer, подключенных к единой компоненте TSkinImageListViewerDefaultMaterial.
  27. 1 балл
    ENERGY

    AdHoc

    Кстати вот еще отличная статья. http://delphiworlds.com/2013/10/creating-ad-hoc-deployment-of-ios-apps-with-delphi-part-1/ http://delphiworlds.com/2013/10/creating-ad-hoc-deployments-of-ios-apps-with-delphi-part-2/
  28. 1 балл
    На 10.2 никаких танцев не требуется. Проблемы только начиная с 11 версии, поскольку 11 симуляторы хотят работать только под 64 бита. А делфя пока не умеет мак в 64 бита.
  29. 1 балл
    Brovin Yaroslav

    RAD Android is Our Cool App Winner for October

    I hope everyone had a nice Thanksgiving, and survived the Black Friday/Cyber Monday marketing deluge. I was so busy catching up with family and eating too much that I’m just now announcing Embarcadero’s October Cool App contest winner is RAD Android, an app that makes it easy for people to develop mobile programs. RAD Android, created by talented developer Abdalkader, is a tiny programming language for the Android operating system that allows anyone to write simple programs for Android devices from an Android device. These apps leverage wireless capabilities such as Bluetooth, SMS and Wi-Fi so people can create a wide variety of useful smartphone tools. They can also communicate with the Arduino open source electronics platform to enable makers and tinkerers of all levels to develop an array of imaginative tools and projects such as digital scientific instruments or home tools like an automatic guitar tuner. Using Delphi to create an application development solution, even a tiny one, is a significant undertaking. RAD Android is an amazing example of how native development can unlock the power of the Android platform, given a dedicated and talented developer with the right skills and tools for the job. This video shows RAD Android in action: [YoutubeButton url='https://www.youtube.com/watch?v=9s8L3IMu9pY'] Or visit the Google Play store and install this free app for yourself! Interested in submitting for the Embarcadero’s Cool App contest? It’s open to any business or consumer application built with RAD Studio, Delphi or C++Builder. Embarcadero awards Cool App contest winners a $500 Amazon gift card and winning submissions are also highlighted on the company’s YouTube channel. For more information on the contest and a link to the submission form, click here. Просмотр полной статьи
  30. 1 балл
    у нас в качестве сборщика - какой-то древний макмини. До iOS11 напрягало, что симулятор для отладки запускается безумно медленно. А как перешли на Токио + IOS11 - эта проблема перестала играть роль, поскольку симулятор теперь просто не работает . Радикальное такое решение проблемы :)))
  31. 1 балл
    Равиль Зарипов (ZuBy)

    TTextSettings неразвёртвовается

    посмотри тут https://github.com/rzaripov1990/ZMaterialComponents/blob/master/Library/FMX.ZMaterialEdit.pas
  32. 1 балл
    dnekrasov

    Indy IRC

    var Data: TIdMultiPartFormDataStream; msResponse: TMemoryStream; sResponse: String; bts: TBytes; ... msResponse := TMemoryStream.Create; try FIdHTTP.Post([URL], Data, msResponse); SetLength(bts, msResponse.Size); msResponse.Position := 0; msResponse.Read(bts[0], msResponse.Size); sResponse := TEncoding.UTF8.GetString(bts); finally FreeAndNil(msResponse); end; Так я работаю с IdHTTP. Я думаю, что-то на подобии этого нужно и Вам реализовать
  33. 1 балл
    krapotkin

    Меню из TListBox

    item.selectable := false
  34. 1 балл
    Brovin Yaroslav

    Video lesson in English?

    Hello, Thank you for your interest. Yes, video course covers a lot of themes. I tihnk it's a good suggestion to make adopted course with subtitles. I will prepare it. I think it can take a one month for working and localization. Thank you.
  35. 1 балл
    wesleybobato

    Video lesson in English?

    FireMonkey Styles I'm talking about the course developed by friend Brovin Yaroslav Brovin Yaroslav, I wonder if you can add a caption in your videos so everyone can buy them? If you add caption in English I can translate it into my language
  36. 1 балл
    Равиль Зарипов (ZuBy)

    Плавающая кнопка

    вот тут есть
  37. 1 балл
    Евгений Корепов

    Локальная рация, Android, пример

    Блестящая работа! Простой и красивый код! Потеря пакетов обусловлена (скорее всего) статичным buffer_size, на разных устройствах он может быть разным и правильнее его размер получать вот так buffer_size:= TJAudioTrack.JavaClass.getMinBufferSize(PSampleRateHz, TJAudioFormat.JavaClass.CHANNEL_OUT_MONO, TJAudioFormat.JavaClass.ENCODING_PCM_16BIT); if (buffer_size = TJAudioTrack.JavaClass.ERROR) then Exit; if (buffer_size = TJAudioTrack.JavaClass.ERROR_BAD_VALUE) then Exit; Еще конечно бы двойную буферизацию для записи/воспроизведения Так же можно сразу запустить проигрывание audiotrack.play в FormCreate, реальные звуки будут проигрываться и так: procedure TForm1.ServerUDPRead(AThread: TIdUDPListenerThread; const AData: TIdBytes; ABinding: TIdSocketHandle); begin audiotrack.write(TBytesToTJavaArray(TBytes(AData)),0,Length(AData)); end;
  38. 1 балл
    Перезалил. Итого: 1. Поправил звук, теперь проценты отображаются верно 2. Переместил иконку закрыть, не знаю даст это что то???(wamaco проверь пожалуйста) 3. Звук теперь регулируется вместе со звуком windows И так по мелочи доработал)
  39. 1 балл
    Равиль Зарипов (ZuBy)

    TMapsEngine

    Компонент TMapsEngine Возможности Нативный LocationSensor [ANDROID] Геокодинг/Реверс геокодинг через Google API, Yandex API, Here Maps API Построение маршрута через Google Distance API Расчет дистанции по прямой Совместим со стандартным компонентом TLocationSensor Видео демонстрация На видео видно как TMapView косячик с миллионом точек, приложение зависло при отрисовке, но с этим ничего не поделать. Без синхронизации не возможно отрисовать все точки Исходник TMapsEngine_source.zip TMapsEngine_Seattle_10.zip Скачать APK (долго он там не пролежит, а форум не позволяет загрузить zip размером 7,4 мб )
  40. 1 балл
    kami

    IdTCPClient, IdTCPSever - снова о кодировке

    Зато его можно указать в конструкторе. Нет. Исходная string в версиях от 2009 и выше - это UnicodeString. В большинстве случаев можно считать как WideString или UCS-2. Кодировка по 2 байта на символ. ANSI - это 1 байт на символ. Действительно, получившийся у Вас код не есть супер-красив. Я продолжаю считать, что всего навсего явное указание Encoding для StringStream снимет эти проблемы. Всякие остальные преобразования, включая явные упоминания конкретных TEncoding и функций перекодировки не нужны.
  41. 1 балл
    Регулировка звука теперь ошибается на 1%, иногда показывает правильное значение. Ещё заметил, что можно в большой минус уйти Если регулировать звук через систему, то значение в приложении не меняется, т.е. в системе выставил 20, а в приложении так и осталось 56.
  42. 1 балл
    Равиль Зарипов (ZuBy)

    StatusBar Color

    Текущая реализация не позволяет нам менять цвет статус бара, потому что в FMX используется старая тема Holo. Поэтому устанавливается полупрозрачный цвет для нативного окна, и регулируется цвет статус бара с помощью установки цвета формы. Так достигается эффект покраски статус бара
  43. 1 балл
    Andrey Efimov

    TBitmapListAnimation проблемы с отрисовкой в Android

    Подобное поведение наблюдалось на Delphi 10.2. Вроде этот баг исправили в 10.2.1, хотя могу ошибаться... Если нет, то возвращайтесь пока на 10.1.2 (Berlin upd 2). О том как и когда ловить события я писал здесь: Очередь событий Delphi приложения на Android Обратите внимание на события: BecameActive, WillBecomeForeground, WillBecomeInactive, OnSaveState
  44. 1 балл
    enatechno

    [ListView]пример от embarcadero

    По умолчанию в DynamicAppearance есть только один объект - Text. Соответственно, из кода вы должны убрать все упоминания AItem.Objects.TextObject, AItem.Objects.AccessoryObject и изменить заполнение текста в ListViewItem (например так): for Item in [1..10] do ListView1.Items.Add.Data['Text1']:= Format('Regular item %d.%d', [Group, Item]); Как добавить свои объекты в LIstViewItem читайте Using the DynamicAppearance Value или смотрите видео.
  45. 1 балл
    Barbanel

    При LongTap срабатывают и OnTap и OnClick

    У изображения нужно настроить на какие жесты он реагирует. Кинь на форму TGestureManager, потом настрой поля как показано ниже в коде. OnClick - срабатывает при касании объекта, срабатывает и в виндовс и на мобильных устройствах. OnTap - срабатывает несколько интеллектуальнее, причем только на мобильных устройствах (в виндовс не срабатывает). Упрощенно, он срабатывает только если ты коротко тапнул на контрол, если ты нажал на контрол и повел пальцем, скроля контент или скроля родительский ScrollBox, OnTap НЕ сработает. // инициализация Image.Touch.GestureManager := gestManager; Image.Touch.InteractiveGestures := [TInteractiveGesture.LongTap]; Image.OnGesture := FormGesture; .. // обработка жеста procedure TfrmMain.FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); begin case EventInfo.GestureID of igiLongTap : begin DoSomething(); end; end; end;
  46. 1 балл
    Andrey Efimov

    opendialog для папок

    Так не устраивает? procedure TFormMain.sbSelectFolderClick(Sender: TObject); var PathFolder: string; begin if SelectDirectory('Выбор папки...', '', PathFolder) then ePathFolder.Text := PathFolder; end; SelectDirectory
  47. 1 балл
    Новые вести с поле! Как вы уже знаете, предварительной датой выхода курса было 1 июня. Однако, по ходу записи уроков я обнаружил дополнительные темы, которые считаю необходимым рассмотреть в рамках этого курса подробнее. Это обусловлено моим желанием предоставить вам качественный видео курс, пройдя который, вы cможете быть уверены в полноте полученных знаний. На текущий момент к курсу добавились еще 4 урока о создании стилей для наиболее часто используемых компонентов. Помимо этого много времени ушло на создание отдельной площадки для удобной организации обучения и повышения эффективности этого процесса. К сожалению, я вынужден сдвинуть дату выхода курса еще на один месяц, чтобы полностью завершить работу. Но в конечном итоге вы останетесь довольны.
  48. 1 балл
    Ориентировочная дата выпуска Ориентировочная дата выпуска курса - 31 июня 2016 года. Краткое описание Этот курс посвящен использованию стилей в FireMonkey. Стили являются одной из самых главных особенностей FireMonkey, отличающих FMX фреймворк от других. С одной стороны с их помощью вы можете придать своему приложению индивидуальность и добавить визуальную неповторимость. Однако, с другой стороны использование стилей является очень сложной темой и содержит много нюансов, не зная которые, можно потратить много времени на попытку понять причину неудач использования. Тема является одной из самых популярных, поэтому она будет рассмотрена в первую очередь. Что вы будете уметь после прохождения курса? В результате прохождения курса, вы сможете: Создать свой стиль на основе вашего UI дизайна приложения простейшим путем из возможных Редактировать и дополнять уже существующие стили, идущие в поставке с FireMonkey Создавать и использовать уже существующие стили для использования их в своих компонентах Детально понимать, как работает механизм стилей, Понимать, как создать "эффективный" стиль. Стиль, который не будет сказываться на производительности вашего приложения. Сделать действительно кроссплатформенное приложение с точки зрения стилей. Использование разных стилей для разных платформ (Android, iOS, Windows, OSX) Научитесь анализировать типовые ошибки создания стилей и исправлять их в кратчайшие строки. Будете знать технику создания своего стиля для любого стилевого компонента с нуля. На кого рассчитан курс? Курс рассчитан на: Разработчиков, которые начинают использовать FireMonkey. Разработчиков, планирующие использовать стили в своих приложениях. Разработчиков, которые уже использовали стили, но поняли, что это не так просто, как кажется. Состав курса Пока курс находится в процессе разработке, здесь будут представлены только основные темы и вопросы. По мере готовности курса, будет дано детальное описание всех уроков. Что такое стиль, что он из себя представляет? Архитектура стилей: Основные части стилевого механизма, назначения и их взаимодействия (TStyleBook, TStyledControl, TStyleManager). Как происходит процедура загрузки/выгрузки/смены стиля? Изменение стилей на лету. Замена платформенных стилей. Кеш стилей. Достоинства и потенциальные опасные места при проектировании компонента со стилями. Динамическая подгрузка стиля на мобильных платформах. Уведомления. Способы узнать, когда стиль меняется для компонента или формы. Растровые и векторные стили: Назначения Отличия Достоинства и недостатки? Что выбрать? Манипулирование стилем: Доступ к элементам стиля: StylesData, FindStyleResource. Достоинства и недостатки. Какой способ выбрать? Форсирование загрузки и выгрузки стиля Стилизация рамки окна: Структура стиля рамки окна (Windows only) Какие элементы стиля за что отвечают Платформенные стили: Откуда FireMonkey берёт стиль по умолчанию? Как изменить стиль по умолчанию? Где взять исходники дефолтных стилей. Tint эффект Что такое, зачем нужен и в чем его преимущества? Когда стоит использовать Tint, а когда нет? Принципы работы. Настройки, как использовать? Контролы поддерживающие Tint эффект Дизайнер стилей FMX. Принципы работы Знакомство с интерфейсом, Создание нового стиля, Удаление существующего, Смена порядка стилевых объектов (Z-order), Создание нового стиля Редактирование существующего Дизайнер стилей VCL - как один из способов создания FMX стилей. Описание Основные принципы работы Автоматическое создание FMX стиля без необходимости знания структуры стиля с точки зрения FMX компонентов. Получение стилей по умолчанию. Создание стилей для базовых компонентов (TListBox, TEdit, TMemo, TButton, TTabControl) Как узнать структуру стиля для компонента? Фиксация размера (Фиксация высоты, ширины или ширины и высоты) TListBox: Способы создания своих итемов с любыми элементами TEdit, TMemo: TButton TTabControl Анализ типичных ошибок при создании и редактировании стилей
  49. 1 балл
    Полным ходом идет создание обучающего ресурса с курсами, на котором будет организовано дистанционное обучение. Многое уже сделано, но работа еще продолжается. Стараюсь сделать ресурс простым, не перегруженным и удобным для вашего использования, чтобы вы смогли извлечь максимум полезной информации без затрат на организационные вопросы. А пока вот вам предварительный вид главной страницы сайта
  50. 1 балл
    Работа идет полным ходом. Уже записано больше половины уроков курса. Поэтому спешу поделиться с вами предварительным содержанием уроков: Урок 1. Введение в концепцию стилей. Архитектура стилей: Что такое стиль, что он из себя представляет? Основные части стилевого механизма и их назначения (TStyleBook, TStyledControl, TStyleManager). Как происходит процедура загрузки/выгрузки/смены стиля? Изменение стилей на лету. Замена платформенных стилей. Кеш стилей. Достоинства и потенциальные опасные места при проектировании компонента со стилями. (? Возможно перенос в другой урок) Динамическая подгрузка стиля на мобильных платформах. (? Возможно перенос в другой урок) Уведомления. Способы узнать, когда стиль меняется для компонента или формы. (? Возможно перенос в другой урок) Откуда FireMonkey берёт стиль по умолчанию? Как изменить стиль по умолчанию? Где взять исходники дефолтных стилей. Урок 2. Дизайнер стилей FMX. Принципы работы Знакомство с интерфейсом, Создание нового стиля, Удаление существующего, Смена порядка стилевых объектов (Z-order), Создание нового стиля Редактирование существующего Урок 3. Растровые или векторные стили? Назначения Отличия Достоинства и недостатки? Что выбрать? Смотрим различия в живую. Урок 4-1. Растровые стили. Разбор стилевых объектов TStyleObject, TActiveStyleObject, TActiveOpacityObject, TStyleTextObject, TActiveStyleTextObject, TCheckStyleObject Урок 4-2. Растровые стили. Разбор стилевых объектов TButtonStyleObject, TButtonStyleTextObject, TSystemButtonObjecty, TTabStyleTextObject Урок 5. Tint эффект Что такое, зачем нужен и в чем его преимущества? Когда стоит использовать Tint, а когда нет? Принципы работы. Настройки, как использовать? Контролы поддерживающие Tint эффект TTintedStyleObject TTintedButtonStyleObject Урок 6. Стилизация рамки окна Структура стиля рамки окна (Windows only) Какие элементы стиля за что отвечают Урок 7-1. Доступ к элементам стиля. FindStyleResource Доступ к элементам стиля: StylesData, FindStyleResource. Достоинства и недостатки. Какой способ выбрать? Форсирование загрузки и выгрузки стиля Урок 7-2. Доступ к элементам стиля. StylesData Урок 8. Создание стилей для базовых компонентов (TListBox, TEdit, TMemo, TButton, TTabControl) Как узнать структуру стиля для компонента? Фиксация размера (Фиксация высоты, ширины или ширины и высоты) TListBox: Способы создания своих итемов с любыми элементами TEdit, TMemo TButton TTabControl Урок 9. Дизайнер стилей VCL - как один из способов создания FMX стилей. Описание Основные принципы работы Автоматическое создание FMX стиля без необходимости знания структуры стиля с точки зрения FMX компонентов. Получение стилей по умолчанию. Урок 10. Анализ типичных ошибок при создании и редактировании стилей Поиск проблемы Типовые ошибки разработки стилей Где черпать информацию о структуре стиля (из каких стилевых объектов должен состоять стиль). Если вы еще не подали заявку на приобретение курсов, то поторопитесь:
Эта таблица лидеров рассчитана в Москва/GMT+03:00