estra
Пользователи-
Постов
370 -
Зарегистрирован
-
Посещение
-
Победитель дней
20
Весь контент estra
-
[TBitmapData] Как скопировать в TBitmapData другое изображение?
estra опубликовал вопрос в Изображения
Всем привет. Столкнулся с проблемкой. Есть структура с данными типа TBitmapData. Как из них получить изображение? var Bitmap: TBitmap; BitmapData, M: TBitmapData; begin ... Bitmap := TBitmap.Create; Bitmap.SetSize( Width, Height ); if Bitmap.Map( TMapAccess.maRead, M ) then begin BitmapData := TBitmapData.Create( Width, Height, TPixelFormat.BGR_565 ); BitmapData.Data := @ImageData[0]; M.Copy( BitmapData ); Bitmap.Unmap( M ); end; Image1.Bitmap.Assign( Bitmap ); ... end; В итоге никакого изображения не видно. Как из TBitmapData получить изображение? -
FGX [FGX] Предложения о разработке компонентов
estra ответил Brovin Yaroslav вопрос в Вопросы / Questions
Есть предложение "не скупиться" и добавлять не по 1, а по несколько компонентов... А если конкретно, добавьте компоненты для работы с NFC и для определения уровня сигнала от BlueTooth устройства. Не помешал бы компонент для работы со сканером отпечатков пальцев и датчиком здоровья... -
Все еще актуально. Никто не в курсе, как это исправить?
-
Android API: package "android.net.wifi" или обёртка для работы с Wi-Fi
-
BoxPrimitives
-
Нет, такая же ошибка...
-
Это кто же вам такую ерунду то сказал? Почитайте "Delphi. Программирование для Windows, OS X, iOS и Android": Глава 24. Мультиязычные проекты: Компонент языковой поддержки TLang Режим автоматического перевода Перевод меню Ссылка 1, Ссылка 2
-
Нормально Посмотрите это http://fire-monkey.ru/topic/309-kak-ukazat-tcelevye-platformy-dlia-komponenta-n/
-
Ссылочкой на компонент поделитесь?
-
Подойдет? http://delphifmandroid.blogspot.ru/2014/04/android-api-package-androidnetwifi-wi-fi.html
-
К слову, не все приложения "замораживаются" на iOS, а именно - сервисы определения местоположения, воспроизведение музыки и VoIP-звонки. Так что если хотите, чтобы ваше приложение работало в фоне, научите его (приложение) например получать координаты местоположения. Кстати, все изменилось с iOS 7, подробнее тут.
-
Это не подойдет, или это?
-
Присоединяюсь к просьбе, хотя с трудом верится... У Ярослава на форум времени не хватает, какая уж тут книга...
-
var g: TGUID; begin CreateGUID( g ); end; Этот способ подойдет и для VCL и для FM.
-
Есть проблема с OnReadRSSI. Есть такой код: unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Bluetooth, FMX.StdCtrls, System.Bluetooth.Components, FMX.ListBox; type TForm1 = class(TForm) Button1: TButton; ComboBox: TComboBox; Label1: TLabel; Button2: TButton; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private FBluetoothManagerLE: TBluetoothLEManager; ADevice: TBluetoothLEDevice; AService: TBluetoothGattService; procedure DevicesDiscoveryLEEnd(const Sender: TObject; const ADevices: TBluetoothLEDeviceList); procedure GetCurrentDevice(var ADevice: TBluetoothLEDevice); procedure BluetoothLEReadRSSI(const Sender: TObject; ARssiValue: Integer; AGattStatus: TBluetoothGattStatus); public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.BluetoothLEReadRSSI(const Sender: TObject; ARssiValue: Integer; AGattStatus: TBluetoothGattStatus); begin Label1.Text := IntToStr( ARssiValue ); end; procedure TForm1.Button1Click(Sender: TObject); begin FBluetoothManagerLE := TBluetoothLEManager.Current; FBluetoothManagerLE.OnDiscoveryEnd := DevicesDiscoveryLEEnd; FBluetoothManagerLE.StartDiscovery( 2000 ); end; procedure TForm1.Button2Click(Sender: TObject); begin if ComboBox.ItemIndex >= 0 then begin GetCurrentDevice(ADevice); if ADevice <> nil then begin ADevice.OnReadRSSI := BluetoothLEReadRSSI; ADevice.DiscoverServices; Timer1.Enabled := True; end; end; end; procedure TForm1.DevicesDiscoveryLEEnd(const Sender: TObject; const ADevices: TBluetoothLEDeviceList); var i: Integer; begin ComboBox.Items.Clear; for I := 0 to ADevices.Count - 1 do ComboBox.Items.Add(ADevices[i].DeviceName); end; procedure TForm1.GetCurrentDevice(var ADevice: TBluetoothLEDevice); var I: Integer; begin for I := 0 to FBluetoothManagerLE.LastDiscoveredDevices.Count - 1 do begin if FBluetoothManagerLE.LastDiscoveredDevices[I].DeviceName = ComboBox.Items[ComboBox.ItemIndex] then ADevice := FBluetoothManagerLE.LastDiscoveredDevices[I]; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin ADevice.ReadRemoteRSSI; end; end. В таймере периодически вызывается ReadRemoteRSSI, после чего должно сработать событие BluetoothLEReadRSSI. Проблема в том, что событие вызывается лишь несколько раз после нажатия Button2. Такое ощущение, что есть какой то короткий промежуток времени (примерно 5 секунд), по истечении которого событие отваливается. Косвенно это подтверждает следующий эксперимент: ставим точку останова в событии таймера (Timer1Timer), после ее срабатывания ждем секунд 5, снимаем точку останова и продолжаем выполнение программы (F9), событие BluetoothLEReadRSSI не сработает ни разу. Собственно вопрос, почему так происходит и как заставить работать нормально?