umkes
-
Постов
79 -
Зарегистрирован
-
Посещение
Активность репутации
-
umkes получил реакцию от A_l_ex в И снова про ориентацию экрана. Запрет поворота экрана.
Project -> Options -> Application -> Orientation -> Enable custom orientation
-
umkes получил реакцию от Mars M в XE8, не могу установить соединение с базой Sqlite на устройстве под Android
Я делал так,
FDMainConnection.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath, 'DB.s3db'); Создает в моих документах на винде, и где-то не знаю где на андроидах)
Так же мб понадобится
FDMainConnectionAfterConnect(Sender: TObject); begin FDMainConnection.ExecSQL('CREATE TABLE If Not Exists [TableName] (' + #13#10 + '[IdObject] INTEGER PRIMARY KEY NOT NULL,' + #13#10 + '[SomeField] INTEGER NULL' + #13#10 + ')'); end { FDMainConnectionAfterConnect }; и т.д.
-
umkes получил реакцию от Pax Beach в мне нужно что бы мой сервис стартовал каждые 10 секунд.
package com.TestReceiver; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class BootCompletedReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) if ( action.equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED) || action.equalsIgnoreCase("com.TestReceiver.BootCompletedCustomIntent") ) { Intent TestLauncher = new Intent(); TestLauncher.setClassName(context, "com.TestReceiver.BootCompletedReceiver"); TestLauncher.setAction("com.TestReceiver.StartServiceIntent"); PendingIntent pintent = PendingIntent.getBroadcast(context, 0, TestLauncher, 0); AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 5000, pintent); } else if (action.equalsIgnoreCase("com.TestReceiver.StartServiceIntent")) { Intent TestLauncher = new Intent(); TestLauncher.setClassName(context, "com.embarcadero.services.myService"); context.startService(TestLauncher); } } } Вот пример 1 из моих сервисов. Сначала стартует аларм менеджер, который сюда же шлет интенты на старт сервиса "myService".
В манифесте в ресиверах прописаны эти интенты
<receiver android:name="com.TestReceiver.BootCompletedReceiver" android:enabled="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="com.TestReceiver.BootCompletedReceiver" /> <action android:name="com.TestReceiver.BootCompletedCustomIntent" /> <action android:name="com.TestReceiver.StartServiceIntent" /> </intent-filter> </receiver>
-
umkes получил реакцию от Pax Beach в Android MySQL+UniDac+3G
Привет, а где находится БД, не в твоей сети случайно, а ты по локальному адресу пытаешься конектиться? =))
-
umkes получил реакцию от Равиль Зарипов (ZuBy) в Android MySQL+UniDac+3G
Привет, а где находится БД, не в твоей сети случайно, а ты по локальному адресу пытаешься конектиться? =))
-
umkes получил реакцию от Vitaldj в Android MySQL+UniDac+3G
Привет, а где находится БД, не в твоей сети случайно, а ты по локальному адресу пытаешься конектиться? =))
-
umkes получил реакцию от Rusland в Как увеличивать ListBoxItem в зависимости от количества текста?
Я такое использую для вычисления высоты текста. Может пригодится)
function CalculateTextHeight(aText: String; aWidth: Single; aMinHeight: Single; aMaxHeight: Integer; aFont: TFont) : Single; begin if not Assigned(FTextLayout) then FTextLayout := TTextLayoutManager.DefaultTextLayout.Create; FTextLayout.BeginUpdate; try FTextLayout.Text := aText; FTextLayout.MaxSize := TPointF.Create(aWidth, 1000); FTextLayout.WordWrap := True; FTextLayout.Font.Assign(aFont); FTextLayout.HorizontalAlign := FMX.Types.TTextAlign.Leading; FTextLayout.VerticalAlign := FMX.Types.TTextAlign.Leading; finally FTextLayout.EndUpdate; end; Result := FTextLayout.Height; if aMinHeight>0 then if Result < aMinHeight then Result := aMinHeight; if aMaxHeight>0 then if Result > aMaxHeight then Result := aMaxHeight; end{ function CalculateTextHeight }; FTextLayout : TTextLayout - глобальная приватная переменная.
-
umkes отреагировална Andrey Efimov в Delphi не видит мой телефон
Вот этого вполне достаточно для работы. Если чего-то нет, то просто установите это через SDK Manager. Всё установится по нужным путям, потом просто в студии перепроверьте, если что, поменяйте на новые.
p.s. Там же, можно всё снести.
-
umkes получил реакцию от Rusland в мне нужно что бы мой сервис стартовал каждые 10 секунд.
package com.TestReceiver; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class BootCompletedReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) if ( action.equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED) || action.equalsIgnoreCase("com.TestReceiver.BootCompletedCustomIntent") ) { Intent TestLauncher = new Intent(); TestLauncher.setClassName(context, "com.TestReceiver.BootCompletedReceiver"); TestLauncher.setAction("com.TestReceiver.StartServiceIntent"); PendingIntent pintent = PendingIntent.getBroadcast(context, 0, TestLauncher, 0); AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 5000, pintent); } else if (action.equalsIgnoreCase("com.TestReceiver.StartServiceIntent")) { Intent TestLauncher = new Intent(); TestLauncher.setClassName(context, "com.embarcadero.services.myService"); context.startService(TestLauncher); } } } Вот пример 1 из моих сервисов. Сначала стартует аларм менеджер, который сюда же шлет интенты на старт сервиса "myService".
В манифесте в ресиверах прописаны эти интенты
<receiver android:name="com.TestReceiver.BootCompletedReceiver" android:enabled="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="com.TestReceiver.BootCompletedReceiver" /> <action android:name="com.TestReceiver.BootCompletedCustomIntent" /> <action android:name="com.TestReceiver.StartServiceIntent" /> </intent-filter> </receiver>
-
umkes получил реакцию от Rusland в Zoom & Location
Есть ли возможность при использовании MapView и при наличии нескольких маркеров на нем, посчитать оптимальный Location и Zoom mapview'a? Чтобы поместилось как можно больше маркеров.
Вроде как на javascript это делается с помощью такого кода:
var latlngbounds = new google.maps.LatLngBounds(); for (var i = 0; i < markerslat.length; i++) { latlngbounds.extend(markerslat[i]); } map.fitBounds(latlngbounds); Использование WebBrouser не подходит.
Может у кого-то есть что сказать по этому поводу?
-
umkes получил реакцию от Rusland в AlarmManager
Да - да, это он. Там есть от силы 5 ссылок в интернете, на которых разсматриваются 2 примера с ХЕ5.
Я неделю колупал, не мог разобраться пока не поставил джаву и не написал свой сервис джавовский
И сегодня наконец-то сделал, по полной аналогии, сервис в коротом пашет StartForeground)
Так что мой тебе совет. Попробуй написать на джаве, или хотяб примеры глянь. А потом через JNI все сделаешь на делфи.
-
umkes получил реакцию от Brovin Yaroslav в Не сохраняются данные в ini, На Android.
//============================================================================== procedure TKTasksApi.SaveIntoIniFile; //------------------------------------------------------------------------------ var IniFile : TIniFile; begin {$IFDEF MSWINDOWS} IniFile := TIniFile.Create(ChangeFileExt(ParamStr(0),'.ini')); {$ENDIF} {$IFDEF ANDROID} IniFile:=TIniFile.Create(System.IOUtils.TPath.GetDocumentsPath+'/config.ini'); {$ENDIF} try IniFile.WriteString('Tasks','UserName', fmTasks.cbTabSettingsUser.Selected.Text); IniFile.WriteString('Tasks','Address', fmTasks.edtTabSettingsAddress.Text); finally IniFile.free; end{ try..finally }; end{ procedure TKTasksApi.SaveIntoIniFile }; Всегда работал такой код.
-
umkes отреагировална rareMax в Добавьте кнопку "Вверх"
Просьба, добавьте кнопку "вверх", (пример - Хабр). Очень неудобно с середины или даже ниже в теме подниматься вверх
-
umkes получил реакцию от Rusland в Закрытие приложение Андроидом
Есть ли способ защитить приложение от автозакрытия андроидом, если мало памяти на устройстве?
Грубо говоря приложение - это просто таймер. Через некоторое время при выборе его(приложения) в трее, происходит начальный запуск. Данные таймера теряются и бида наступает
Слышал что сервисы закрываются попозже (Так ли это?). А сервисы у которых есть интерфейс (например виджет от плеера) закрываться не будет. Но как такой создать на делфи я не понял....
Хотелось бы услышать мнение наших форумчан, по поводу решения данной проблемы.
-
umkes получил реакцию от Brovin Yaroslav в И снова про ориентацию экрана. Запрет поворота экрана.
Project -> Options -> Application -> Orientation -> Enable custom orientation
-
umkes получил реакцию от Rusland в И снова про ориентацию экрана. Запрет поворота экрана.
Project -> Options -> Application -> Orientation -> Enable custom orientation
-
umkes получил реакцию от zairkz в XE8, не могу установить соединение с базой Sqlite на устройстве под Android
Я делал так,
FDMainConnection.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath, 'DB.s3db'); Создает в моих документах на винде, и где-то не знаю где на андроидах)
Так же мб понадобится
FDMainConnectionAfterConnect(Sender: TObject); begin FDMainConnection.ExecSQL('CREATE TABLE If Not Exists [TableName] (' + #13#10 + '[IdObject] INTEGER PRIMARY KEY NOT NULL,' + #13#10 + '[SomeField] INTEGER NULL' + #13#10 + ')'); end { FDMainConnectionAfterConnect }; и т.д.
-
umkes получил реакцию от Rusland в ListBox, Edit и клавиатура
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); //----------------------------------------------------------------------------- var Keyboard : IFMXVirtualKeyboardService; begin if Key = vkReturn then begin if TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface( Keyboard ) ) then if TVirtualKeyboardState.Visible in Keyboard.GetVirtualKeyBoardState then begin Keyboard.HideVirtualKeyboard; Key := 0; Exit; end{if}; end{procedure TForm1.FormKeyUp}; -
umkes получил реакцию от Vitaldj в ListBox, Edit и клавиатура
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); //----------------------------------------------------------------------------- var Keyboard : IFMXVirtualKeyboardService; begin if Key = vkReturn then begin if TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface( Keyboard ) ) then if TVirtualKeyboardState.Visible in Keyboard.GetVirtualKeyBoardState then begin Keyboard.HideVirtualKeyboard; Key := 0; Exit; end{if}; end{procedure TForm1.FormKeyUp}; -
umkes получил реакцию от Kitty в Запрет жеста
Решил при помощи координат.
На OnMouseDown сохраняем координату Y. А в обработке igiLongTap проверку или теперешняя координата равна Y.
-
umkes получил реакцию от Равиль Зарипов (ZuBy) в Запрет жеста
Решил при помощи координат.
На OnMouseDown сохраняем координату Y. А в обработке igiLongTap проверку или теперешняя координата равна Y.
-
umkes отреагировална Brovin Yaroslav в О видах координат в FireMonkey и конвертации между ними
Типы координат
В FIreMonkey различают три вида координат:
Локальные - это координаты в системе координат контрола. Абсолютные - это координаты в системе координат клиентской части формы. Экранные - это координаты в системе координат экрана. Соответственно, если речь идет о форме, то позиция формы задается в экранных координатах.
Если речь идет о контролах, то в локальных координатах своего родительского контрола.
Конвертация
Локальные -> Абсолютные
TControl.LocalToAbsolute(TPointF): TPointF Абсолютные -> Локальные
TControl.AbsoluteToLocal(TPointF): TPointF Абсолютные -> Экранные
TControl.Scene.LocalToScreen(TPointF): TPointF; Экранные -> Локальные
TControl.Scene.ScreenToLocal(TPointF): TPointF; -
umkes получил реакцию от Rusland в Долгое нажатие на элементе ListView
uses System.UITypes
if (EventInfo.GestureID = igiLongTap) then begin
-
-
umkes отреагировална Brovin Yaroslav в Презентационные материалы с запуска RX Seattle
RAD Studio 10 Seatlle: обзор продукта
Презентация: RAD Studio 10 Seatlle обзор продукта.pdf Разработка приложений для Windows 10 и новые возможности VCL
Презентация: Разработка приложений для Windows 10 и новые возможности VCL.pdf Новые возможности мобильной разработки приложений
Презентация: Новые возможности мобильной разработки приложений.pdf Пример сервиса: DownloadServiceDemo.zip Эффективное использование среды разработки и компилятора C++
Презентация: Эффективное использование среды разработки и компилятора C++.pdf Взаимодействие приложений и IoT
Презентация: Взаимодействие приложений и IoT.pdf Преодолевая границы: EMS и расширение FireDAC для работы с MongoDB и Средства разработки и управления для разработчиков БД
Презентация: Преодолевая границы EMS и расширение FireDAC для работы с MongoDB.pdf