ildvild
-
Постов
10 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные ildvild
-
-
До этого Вы писали что у Вас Delphi зависает. Я выше привел код для конструктора и деструктора.
После этого зависание осталось? Проверьте при выбранных платформах Windows и Android.
p.s.
Переделал ваш код, но под платформой андроид не смотрел, т.к. она отсутствует, но запуститься по идее должно
unit BATTERY; interface uses {$IFDEF ANDROID} AndroidAPI.Helpers, AndroidAPI.JNI.GraphicsContentViewText, {$ENDIF} System.SysUtils, System.Classes; type TBattery = class(TComponent) private public { Public declarations } Constructor Create(AOwner: TComponent); override; Destructor Destroy; override; function GetBatteryPercent: string; procedure SetBatteryPercent(Value: string); {$IFDEF ANDROID} function BatteryPercent(const aContext: JContext): integer; {$ENDIF} published { Published declarations } property Battery: string read GetBatteryPercent write SetBatteryPercent; end; procedure Register; implementation procedure Register; begin RegisterComponents('ARION', [TBattery]); end; { TBattery } {$IFDEF ANDROID} function TBattery.BatteryPercent(const aContext: JContext): integer; var filter: JIntentFilter; Battery: JIntent; begin filter := TJIntentFilter.Create; filter.addAction(TJIntent.JavaClass.ACTION_BATTERY_CHANGED); Battery := aContext.registerReceiver(NIL, filter); result := Battery.getIntExtra(StringToJString('level'), -1); end; {$ENDIF} constructor TBattery.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TBattery.Destroy; begin inherited Destroy; end; function TBattery.GetBatteryPercent: string; {$IFDEF ANDROID} var myContext: JContext; {$ENDIF} begin result := 'N/A'; {$IFDEF ANDROID} if not(csDesigning in ComponentState) then begin myContext := SharedActivityContext; result := (BatteryPercent(myContext).ToString); end; {$ENDIF} end; procedure TBattery.SetBatteryPercent(Value: string); begin {$IFDEF ANDROID} {$ENDIF} end; end.
-
Что именно сейчас не работает?
Данный код я бы добавил в сеттер и геттер, но судя по коду выше они у вас не правильны
-
constructor TBattery.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TBattery.Destroy; begin inherited Destroy; end;
-
Возможно нужно добавить проверку на то, что данные о батарее получаются не в design time
if not(csDesigning in ComponentState) then
-
-
Да, удалять элементы можно только в режиме Master.
Далее, не обязательно добавлять другие экраны, всю работу можно делать только в режиме мастера. Экраны тут добавлены только для удобства работы, т.к. визуально все видно.
Например, вам нужно в случае, если устройство планшет, отображать панельку. Вы можете сделать это в Мастере прописав код. А можете добавить экран планшета и уже в дезайн тайме отобразить панель.
-
У меня тоже самое (на XE7). Видимо что то подгружается при первом запуске, поэтому и медленно.
-
Nix0N, спасибо за компонент.
Не хватает проверок на наличие событий
if Assigned(mOnClick) then mOnClick(nil);
-
Подскажите, как на Android осуществлять хранение настроек. Через ini файлы я как понял нельзя.
RAD 11 на подходе?
в Информация о версиях RAD Studio
Опубликовано
А что должно быть с UWP?