Поиск сообщества

Показаны результаты для тегов 'FMX'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • API интернет сервисов
    • ВКонтакте API
    • Google Maps API
    • Yandex деньги
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума
    • Правила форума
    • Нарушения правил форума
    • Предложения об организации форума
    • Проблемы
    • Функции форума
  • Видеокурсы
    • Основная информация
    • Курсы
    • Предложения и голосования за новые курсы
    • Вопросы

Категории

  • Курсы

Найдено: 58 результатов

  1. Добрый день. Как под FMX в ListView сделать подчеркивание Detail в рантайме? Пытался делать так: LV.ItemAppearanceObjects.ItemObjects.Detail.Font.Style := [TFontStyle.fsUnderline] но не срабатывает. P.S. Возможно это применить не ко всем строкам, а только к некоторым?
  2. Ошибка при запуске отладки

    Ошибка при запуске программы на отладку: " Can't open socket: Permission denied Exiting . " кто знает как побороть ? Отладку запускаю на OnePlus3 с Android 8.0.0, драйвера Google USB переустанавливал.
  3. Есть код который работает при смещении карты и получив координаты центра пытаюсь получить адрес по ним. procedure TMasterDetailForm.MapView3CameraChanged(Sender: TObject); var myCoordinat: TLocationCoord2D; begin inherited; myCoordinat.Create(MapView3.Location.Latitude,MapView3.Location.longitude); if (int(myCoordinat.Latitude)<>0) then begin //проверяю, что координаты определены if not Assigned(fGeocoder) then begin if Assigned(fGeocoder.Current) then fGeocoder := TGeocoder.Current.Create; if Assigned(fGeocoder) then fGeocoder.OnGeocodeReverse := OnGeocodeReverseEventStart; end; if Assigned(fGeocoder) and not fGeocoder.Geocoding then fGeocoder.GeocodeReverse(myCoordinat); end end; все работало до очередного обновления, а сейчас ругается "java.io.IOException: Service not Available" на fGeocoder.GeocodeReverse(myCoordinat); подскажите куда копать
  4. Объединение ячеек одного стоблца

    Всем привет! Нужен совет. Есть Grid, в нем расписание дня. В БД каждая строка это отдельная запись. Нужно как-то визуально сделать подобие объединения ячеек в Excel. Т.е. нужно занять расписание на 2 часа. При этом функционал по событиям для строки "второго часа" должен быть недоступен. Может хотя бы границу стирать, т.е. оставлять значение в верхней ячейки, а нижнюю просто не отображать. Как это лучше сделать? FMX, Windows, Delphi XE6, MySQL
  5. Нет ли у FMX готовой функции для открытия веб-ссылок из приложения? А то приходится городить огород с лисапетами и кучей IFDEF. В итоге что у меня получилось. Для удобства разнес все по разным модулям. Модуль для Windiws unit uUtilsWindows; interface {$IFDEF MSWINDOWS} uses ShellApi, Variants, Windows, FMX.Types, FMX.Platform.Win; procedure WindowsOpenUrl(const sUrl: string; WindowHandle: TWindowHandle); {$ENDIF} implementation {$IFDEF MSWINDOWS} procedure WindowsOpenUrl(const sUrl: string; WindowHandle: TWindowHandle); begin ShellExecute(FmxHandleToHWND(WindowHandle), 'open', PChar(VarToStr(sURL)), nil, nil, SW_NORMAL); end; {$ENDIF} end. Модуль для Android unit uUtilsAndroid; interface {$IFDEF ANDROID} uses FMX.Helpers.Android, Androidapi.JNI.Net, Androidapi.JNI.GraphicsContentViewText, AndroidApi.Helpers; procedure AndroidOpenUrl(const sUrl: string); {$ENDIF} implementation {$IFDEF ANDROID} procedure AndroidOpenUrl(const sUrl: string); Var Uri: Jnet_Uri; OpenLinkIntent: JIntent; begin Uri := StrToJURI(sUrl); OpenLinkIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW, Uri);// будем что-то смотреть OpenLinkIntent.addCategory(TJIntent.JavaClass.CATEGORY_BROWSABLE);// смотреть в браузере OpenLinkIntent.setData(Uri);// смотреть эту ссылку SharedActivity.startActivity(OpenLinkIntent);// открываем end; {$ENDIF} end. теперь в основной форме: uses ..., ...{$IFDEF ANDROID}, vkbdhelper, uUtilsAndroid{$ENDIF} {$IFDEF MSWINDOWS}, uUtilsWindows {$ENDIF}; ... ... ... procedure TfmEditObject.actOpenUrlExecute(Sender: TObject); begin {$IFDEF ANDROID}AndroidOpenUrl(edMapsCoordUrl.Text);{$ENDIF} {$IFDEF MSWINDOWS}WindowsOpenUrl(edMapsCoordUrl.Text, Self.Handle);{$ENDIF} end; А если добавлять ещё одну платформу, то ещё один модуль понадобится. Может есть более правильный вариант, так сказать, дизайна исходного кода?
  6. Добрый день. Как в FMX при перерисовке объекта включить/отключить привязку к вертикальной синхронизации (v-sync) развертки экрана? Есть ли такая возможность в FMX? (В OpenGL и DirectX - есть) Например если делаем видео-плеер, то чтобы не было артефактов синхронизация нужна, а если хотим узнать реальный fps - синхронизацию выключаем.
  7. var Keyboard: IFMXVirtualKeyboardService; begin if TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface( Keyboard ) ) then if TVirtualKeyboardState.Visible in Keyboard.GetVirtualKeyBoardState then ShowMessage( 'клавиатура открыта' ) else ShowMessage( 'клавиатура скрыта' ); end; ТАК Я на шел для делфи. Но мне нужно для C++
  8. Привет Всем уважаемые! Пытаюсь сделать растягивание по содержимому компонента. Как это реализовано в мессенджерах типа WhatsApp если большой текст то растягивает (выделяется) по содержимому большое поле, если короткий то малое. Text2.Text := Memo1.Lines.Strings[4]; text2.Height := canvas.TextHeight(Text2.Text); //по высоте строки меняется т.к. там и есть одна строка в TText просто переносится WordWrap визуально. text2.Height:=canvas.TextWidth(text2.Text); // - так чушь Как это вообще реализовано кто нибудь сталкивался?
  9. Привет ребят! Помогите кто знает, попытаюсь доходчиво объяснить - имеется набор компонентов KernowSoftwareFMX - в нем использую TksTableView для вывода данных с Tmemo, в нем так же есть Image. В Tmemo с сервера грузится файл txt внутри которого строки с ссылками на изображения вида http://бла-бла/1.png Для загрузки использую FMX.Features.Bitmap.Helpers.pas - позволяет по прямой ссылке загружать изображение в TImage. что пытаюсь сделать? Нужно наполнять список TksTableView с Memo содержащий ссылки и в строках TksTableView - они же ListItem тоже самое что в ListView и загружать в image каждой строки картинки по ссылкам memo. AItem.Image.Bitmap := Image4.MultiResBitmap.Bitmaps[1].LoadFromUrl(Memo1.Lines.Strings[i]); - так ругается [DCC Error] untMain.pas(92): E2010 Incompatible types: 'TBitmap' and 'procedure, untyped pointer or untyped parameter' AItem.Image.Bitmap := Image4.Bitmap.LoadFromUrl(Memo1.Lines.Strings[i]); - так тожн не работает Глюк в том что первым делом создаются строки . а потом грузятся по очереди картинки в Image4. Как заставить подгружать картинки в TksTableView? Как ожидать хавершения загрузки каждой картинки в Image4 и после создавать AItem.Image.Bitmap?
  10. Всем привет пытаюсь грузить файлы изображения с телефона Android на сервер методом post запроса. Для этого один из параметров запроса должен содержать полный путь к файлу. В ActionList есть стандартная опция TakePhotoFromLibraryAction - к с нее выдрать путь??? Куда он ей передается и передается ли вообще? я и справки толком не нахожу или я слепой? imgfile.Text:=TakePhotoFromLibraryAction1.????
  11. Привет ребят, созрел такой вопрос который меня мучает ! Вобщем пытаюсь загрузить картинку по прямой слыке с сервера. Картинка не грузится, не сохраняется не отображается. Конечная платформа - Андроид. Пишу на Delphi xe 10 seatle. Что я делаю? при нажатии на сам компонент TImage (созданный динамически), должна грузится картинка по адресу преждевременно записанное в hint (TImage) при создании вида (http://блаблабла.jpg) Раньше код ниже работал сейчас нет не пойму что не так. Почему стал ковырять? потому что форма встает колом при загрузке изображений. var s: string; fs: TFileStream; begin fs := TFileStream.Create(tpath.Combine(tpath.GetDownloadsPath, 'load.jpg'), fmCreate); NetHTTPClient1.Get((Sender as TImage).Hint, fs); fs.Free; (Sender as TImage).MultiResBitmap.Bitmaps[1].LoadFromFile (tpath.Combine(tpath.GetDownloadsPath, 'load.jpg')); подключал еще pas нашел на этом форуме FMX.Features.Bitmap.Helpers.pas (Sender as TImage).MultiResBitmap.Bitmaps[1].LoadFromUrl ((Sender as TImage).Hint); как проще сделать посоветуете чтоб и грузилось и форма не висла?
  12. ПРивет, есть ли возможность узнать как то номер сроки в memo на delphi FMX в memo при нажатии на текст в поле memo?для windows на vlc можно memo.CaretPos.Y либо через WinAPi заголовки. Как такое делать в FireMonkey FMX для андроид ума не приложу. Может кто делал, поделится опытом?
  13. Привет ребята! Вобщем есть текст в Memo с которого нужно брать строки с конца файла т.е. memo.lines.count-1 в цикле, после этого создавая отельно динамически компоненты, заносить текстовые строки с memo в эти созданные динамически компоненты, ниже пример: procedure TVKBaseForm.Button2Click(Sender: TObject); var rec: TRectangle; txt: Ttext; i: word; // - можно и integer сути не поменяет begin for i := Memo1.Lines.Count - 1 downto 0 do begin rec := TRectangle.Create(Self); rec.Parent := MainLayout1; rec.Height := 15; rec.Align := TAlignLayout.Top; txt := Ttext.Create(Self); txt.Parent := rec; txt.Align := TAlignLayout.Client; txt.Text := Memo1.Lines.Strings[i]; end; end; Работает, но не правильно. Почему выдает не правильный порядок при выводе? почему создает сначала первый файл? Почему создает не все? Может есть какая-то синхронизация? Пробовал так же A: integer; begin A := 1; // Присваеваем единицу While A <> Memo1.Lines.Count - 1 do begin A := A + 1; s := Memo1.Lines.Strings[A]; Application.ProcessMessages; rec := TRectangle.Create(Self); rec.Parent := MainLayout1; rec.Height := 15; rec.Align := TAlignLayout.Top; txt := Ttext.Create(Self); txt.Parent := rec; txt.Align := TAlignLayout.Client; txt.Text := s; Помогите разобраться
  14. Доброе время суток . Я только начал знакомится с потоками , не судите меня строго . Вот код . Смысл которого через отдельный поток загружать текст с сервера и отображать в memo. Что я делаю? На сервере из вне имеется файлкоторый по api запросам пополняется. Его нужно в потоке постоянно выводить в memo. подгружать каждый раз. При использовании на win вес работает, на андроид не качает и не сздает файл в чем может быть проблема? type ThreadHTTP = class(TThread) private public Stream: TMemoryStream; i: integer; procedure Execute; override; procedure ShowResult; end; {$R *.fmx} procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := true; end; procedure TForm1.Timer1Timer(Sender: TObject); var MyHTTP: ThreadHTTP; begin ProgressBar1.Value := 0; MyHTTP := ThreadHTTP.Create(False); end; { ThreadHTTP } procedure ThreadHTTP.Execute; var j: integer; begin inherited; i := 0; j := 0; Stream := TMemoryStream.Create; Form1.IdHTTP1.Get('http://сайт/base.txt', Stream); Form1.ProgressBar1.Max := Stream.Size; while j <= Stream.Size do begin inc(i); Synchronize(ShowResult); inc(j); Form1.ProgressBar1.Value := Form1.ProgressBar1.Value + 1; end; Stream.SaveToFile(tpath.getdownloadspath + '/base.txt'); Form1.Memo1.Lines.LoadFromFile(tpath.getdownloadspath + '/base.txt'); Stream.Free; end; procedure ThreadHTTP.ShowResult; begin Form1.Label1.Text := IntToStr(i) + ' kbs'; end;
  15. Как можно узнать размер видеопамяти под WIN? В инете находятся решения через реестр, с помощью DX и другие, но все сообщения старые. Может есть какой способ узнать средствами FMX?
  16. Если Wi-Fi на телефоне работает в режиме клиента (подключается к внешней точке доступа), то как с ним работать понятно. Если же Wi-Fi на телефоне (ОС Android) работает в режиме персональной точки доступа, то как из программы получить свой ip-адрес и другие параметры сети. Кто знает, помогите, желательно исходный код на Delphi.
  17. Персональная точка доступа Wi-Fi

    Если Wi-Fi на телефоне работает в режиме клиента (подключается к внешней точке доступа), то как с ним работать понятно. Если же Wi-Fi на телефоне (ОС Android) работает в режиме персональной точки доступа, то как из программы получить свой ip-адрес и другие параметры сети. Кто знает, помогите, желательно исходный код на Delphi.
  18. Мне нужно сделать снимок экрана из своего приложения в приложении DirectX (в игре). По-быстрому накидал приложение, исходники здесь: MakeScreenshot-Forum.zip 1. по нажатию единственной кнопки будет выполнена серия из 16 снимков экрана. Если запущен Скайп, то фотографироваться будет содержимое его окна. 2. По нажатии CTRL+ALT+F9 будет сделан единичный снимок 3. Label внизу показывает сколько миллисекунд затрачено на вывод снимка 4. В комментах так же вы найдете, как работать со снимками через буфер обмена. Работа выполняется через GetDC(NULL); Windows 10 x64. Снимки делаются. И DirectX тоже нормально фотографируется. НО! только в оконных приложениях. Если приложение DirectX полноэкранное, то на всех снимках одна и та же картинка с первого снимка. То есть изменение буфера экрана в приложении ни как не отражается на снимках. Что нужно? Необходимо делать снимки конкретного приложения через интерфейс DirectX, а точнее, я так понимаю, через DirectShow. Тогда не будет разницы в окне оно или на полный экран. Помогите плиз, знающие люди, с решением этой задачи. Гарантирую вам от сообщества большой почет, от меня огромный респект, если это принесет доход, то еще и очень приятный бонус. Ссылки теме: 1. DIRECTX FOR DELPHI 2. unofficial version of DelphiX 3. DirectX для начинающих 4. MinHook - The Minimalistic x86/x64 API Hooking Library 5. Various methods for capturing the screen 6. Вывод графики на рабочий стол Windows с использованием оверлеев DirectX 7. Project JEDI 8. Реализация перехвата вызовов API — исчерпывающе про внедрение DLL, если разобраться, + это на Delphi UPD: 9. Серия видео уроков Пишем D3D-хук — все понятно, только в Delphi перенести нужно. UPD 2: Научился рисовать в Direct3D и ловить интерфейс IDirect3DDevice9. Теперь делаю DLL ловушку для реализации снимков.
  19. "Cant load package..." ошибка

    Привет. Я сделал macos установку web installer с Delphi Berlin. Программа дает .bpl ошибка открытия файла.
  20. Мини аналог Paint

    Доброго времени суток! Пытаюсь сделать мини аналог Paint'a с помощью FMX. Необходимо реализовать всего 2 компонента: Кисть и Заливка. С кистью вроде пока сложностей нет, а вот с заливкой не ясно. В VCL было как-то так: .Canvas.FloodFill(x, y, bmp.Canvas.Pixels[x,y], fsSurface); В документации нашел описание различных видов заливок, но все они заливают какую то заданную область. Мне же необходимо заливать область одного цвета. Есть ли у кого примеры реализации подобной задачи ?
  21. Привет, друзья! Подскажите - как, с максимально возможной скоростью, определить отсутствие изображения как такового в TBitmap? Т.е. - есть TBitmap. Он либо заполнен изображением (картинка), либо он - абсолютно черный прямоугольник. Каким способом можно узнать - что в нем именно изображение? Т.е. - НЕ абсолютно черный прямоугольник... И определить это нужно "мгновенно" (условно выражаясь). Заранее всем благодарен за участие! P.S. Варианты типа того что ниже - не предлагать)) Хотелось бы что-то "побыстрее"! Еще раз спасибо! function IsBitmapEmpty(Bmp: TBitmap): Boolean; var X, Y : Integer; BmpData: TBitmapData; yAddr : Integer; AlphaCount : integer; begin Result := False; try AlphaCount := 0; Bmp.Map(TMapAccess.Read, BmpData); for Y := 0 to Bmp.Height div 2 do begin YAddr := Y * Bmp.Height; for X := 0 to Bmp.Width - 1 do if (PAlphaColorArray(BmpData.Data)^[YAddr + X] <> TAlphaColorRec.Null) and (PAlphaColorArray(BmpData.Data)^[YAddr + X] <> TAlphaColorRec.Black) then begin inc(AlphaCount); Break; end; if AlphaCount > 0 then Break; end; finally Bmp.Unmap(BmpData); Result := AlphaCount = 0; end; end;
  22. Ссылка: http://blog.rzaripov.kz/2017/02/firebase-android-ios-2.html Автор: Зарипов Равиль @ZuBy Описание: Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS [Часть 2] В предыдущей части , я рассказывал как сделать настройку пуш уведомления в консоли Firebase, в этой я покажу код на Delphi и серверную часть на PHP https://github.com/rzaripov1990/PUSHTestFCM
  23. Ссылка: http://blog.rzaripov.kz/2017/02/firebase-android-ios.html Автор: Зарипов Равиль @ZuBy Описание: Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS
  24. Иконки в ListView

    Заполняю в рантайме ListView: procedure TAddForm.ConnectClick(Sender: TObject); var LI: TListViewItem; begin with Query do begin Open; while not Eof do begin LI := ListView1.Items.Add; LI.Text := Query.FieldByName('Type').AsString; LI.Detail := Query.FieldByName('Cargo').AsString + #13#10 + Query.FieldByName('Weight').AsString; Next; end; end; end; Как видно, Detail разбивается и заполняется в две строки (оказалось, что так удобнее смотреть). Но на обеих строках сухие цифры: Поэтому хотелось бы в начало обеих строчек вставить свои иконки, чтобы в конечном итоге выглядело как-то так: Есть идеи, как это можно сделать? А то товарищ kramler в другой теме писал, что не видит масла стоя перед открытым холодильником - так вот я сейчас уже в таком состоянии, что начинаю забывать, где мой собственный холодильник стоит, не говоря уже о масле в нём И смешно, и грустно...
  25. Очистить очеред нажатий на кнопку

    Как избежать повторных нажатий/ закликиваний на кнопку? Имеется следующий код: procedure Tfm.ButtonPrevCardClick(Sender: TObject); begin ButtonPrevCard.Enabled := false; Application.ProcessMessages; // здесь код по смене карты + пауза в 2 секунды ButtonPrevCard.Enabled := true; Application.ProcessMessages; end; Под Windows повторных нажатий/закликиваний при этом не происходит. А под Андроид, если пользователь быстро подряд нажал несколько раз, то сработает также несколько раз.