-
Постов
16 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
Активность репутации
-
Вадим Шавров получил реакцию от Hevard в Как вернуть скролл в начало? TVertScrollBox
Не помогло.
Решил поискать ответ по командам, которые вы написали. Нашел такое решение:
VertScrollBox1.ViewportPosition:=TPointF.Create(0,0); Все работает. Спасибо!
-
Вадим Шавров отреагировална Andrey Efimov в TEdit не понятное удаление последнего символа
Здравствуйте.
Это баг, я сообщил о нём ещё в мае (RSP-14928 и RSP-14929), в тех. поддержке предложили временное решение (ответ ниже). (Тема В TEdit стирается предыдущий текст аналогичная).
find FMX.Platform.Android.pas find procedure TTextServiceAndroid.SetCaretPosition(const Value: TPoint); change code to: procedure TTextServiceAndroid.SetCaretPosition(const Value: TPoint); var SelStart, SelEnd: Integer; begin if FCaretPosition <> Value then begin FCaretPosition := Value; CalculateSelectionBounds(SelStart, SelEnd); if (FTextView <> nil) and not FInternalUpdate then PlatformAndroid.SynchronizeOnUIThread( procedure begin //Fix By [龟山]Aone(1467948783) //https://quality.embarcadero.com/browse/RSP-14928 // if (SelEnd - SelStart) > 0 then // FTextView.setSelection(SelStart, SelEnd) // else FTextView.setCursorPosition(CaretPosition.X); end); end; end;
-
Вадим Шавров отреагировална FREEFAR в Блокировка компонентов при скроллинге
Костыль года ))
Tdatetime.hittest = False;
на него кидаем TLAyout
Layout.align := talignlayout.contents;
Layout.hittest = True;
в onTap у Layout пишем
datetimepicker.OpenPicker;;
-
Вадим Шавров отреагировална FREEFAR в Блокировка компонентов при скроллинге
Сам не пробовал еще, но тебе предложу.
Может есть целевое решение, но мне видится такое
Проверь отпишись пжл.
значится в CreateFrom суем
FMX.Types.VKAutoShowMode := TVKAutoShowMode.Never;
Это дело лишит нас открытия клавиатуры при Click на Edit
а в событии onTap у Edit прописать процедуру открытия клавы
showKeyboard(Sender);
procedure Tmainf.showKeyboard(Sender: TObject);
var
FService: IFMXVirtualKeyboardService;
begin
{$IFDEF MSWINDOWS}
exit;
{$ENDIF}
TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
if (FService <> nil) then
begin
if not (TVirtualKeyBoardState.Visible in FService.VirtualKeyBoardState) then
FService.ShowVirtualKeyboard(TFmxObject(Sender));
end;
if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardToolbarService, IInterface(FKService)) then
begin
FKService.SetHideKeyboardButtonVisibility(False);
FKService.SetToolbarEnabled(False);
end;
end;
-
Вадим Шавров отреагировална Brovin Yaroslav в Где взять стандартный стиль в FireMonkey для iOS и Android, используемый по умолчанию?
Хороший вопрос.
Не все знают, что в RAD Studio XE5 входит дизайнер растровых стилей для VCL (BitmapStyleDesigner), который также позволяет автоматически создавать стили для FireMonkey. Этот дизайнер находится в папке Bin/bitmapStyleDesigner.exe и содержит внутри себя автоматическую конвертацию любого VCL стиля в FireMonkey.
Этот дизайнер также предназначен для внесения правок в стандартные системные стили андроида и йос.
Чтобы получить системный стиль Android Dark, Android Light, iOS, iOS 7 нужно:
1. Выбрать дефолтный требуемый стиль:
2. Сохранить стиль как стиль FireMonkey:
А дальше использовать файл стиля в своих приложениях.
-
Вадим Шавров отреагировална Евгений Корепов в Импорт/экспорт БД
Конечно полный путь, откуда иначе функция узнает какой файл отправлять?
AComment - комментарий, типа "Это файл №199 из такого то приложения, служит для того то". Но никто не заставляет вас его писать.
Перед тем как пробовать запускать, прочтите предупреждения компилятора, некоторые функции устарели или изменилось их местоположение. Исправьте код. После этого вызывайте как указали, но вместо знаков вопроса укажите пустую строку к примеру.
И убедитесь в существовании файла перед его отправкой.
-
Вадим Шавров отреагировална Евгений Корепов в Импорт/экспорт БД
Да, конечно. Что то из этих, лишнее уберите:
Androidapi.JNI.Webkit,
FMX.Platform.Android,
Androidapi.Helpers,
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNIBridge,
Androidapi.JNI.JavaTypes,
Androidapi.JNI.Net,
Androidapi.JNI.Os,
-
Вадим Шавров отреагировална Евгений Корепов в Импорт/экспорт БД
Вот так:
procedure ShareFile(aFileName, aComment : String); {$IFDEF ANDROID} var Intent : JIntent; uri : Jnet_Uri; AttachmentFile: JFile; S : String; {$ENDIF ANDROID} begin {$IFDEF ANDROID} Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_SEND); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); S:=TPath.GetFileName(aFileName); Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(aComment)); Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(aComment)); AttachmentFile := TJFile.JavaClass.init(StringToJString(aFileName)); Uri := TJnet_Uri.JavaClass.fromFile(AttachmentFile); Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap((Uri as ILocalObject).GetObjectID)); Intent.setType(StringToJString('text/plain')); // Intent.setDataAndType(StrToJURI('file:' + TPath.Combine(TPath.GetSharedDownloadsPath, 'picture.png')), StringToJString ('image/png')); SharedActivity.startActivity(Intent); {$ENDIF ANDROID} end; Из давнего проекта, возможно нужно будет подправить согласно сообщениям компилятора.
P.S. И файл должен находится в общедоступной папке (к примеру TPath.GetSharedDocumentsPath)
-
Вадим Шавров отреагировална masmat в Обновление файла БД без перезапуска приложения
Под Android я делаю так. Вставляю изначально файл БД в Deploy.
Потом вызываю при необходимости процедуру
procedure TForm1.RefreshBD; { TODO -cKod : RefreshBD - обновление БД } var PackageName: JString; zip: TZipFile; begin // Отключаемся от базы FDConnection1.Connected := False; // Получаем имя apk файла PackageName := SharedActivityContext.getPackageResourcePath; if TFile.Exists(JStringToString(PackageName)) then begin // Удаляем старый файл базы TFile.Delete(TPath.GetHomePath + PathDelim + 'DBGK.db'); // Извлекаем новый файл базы zip := TZipFile.Create; zip.Open(JStringToString(PackageName), TZipMode.zmRead); zip.Extract('assets/internal/DBGK.db', TPath.GetDocumentsPath, False); zip.Close; zip.free; end; // Подключаемся к базе FDConnection1.Connected := True; end;
Под iOS вставляю в ресурсы, потом вот так
procedure TForm1.RefreshBD; { TODO -cKod : RefreshBD - обновление БД } begin // Отключаемся от базы FDConnection1.Connected := False; if FindResource(0, 'res_bd', PChar(RT_RCDATA)) <> 0 then rs_bd := TResourceStream.Create(0,'res_bd',PChar(RT_RCDATA)); if TFile.Exists(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db') then begin TFile.Delete(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db'); rs_bd.SaveToFile(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db'); end else begin rs_bd.SaveToFile(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db'); end; FDConnection1.Connected := True; end; -
Вадим Шавров отреагировална ophion в Диалоговое окно MessageBox на Android
Используйте MessageDlg.
На андроиде немного инная реализация, требующая добавления асинхронной процедуры обрабоки результатов, полученных от MessageDlg.
Будет что-то вроде:
MessageDlg('Удалить выбранный файл?', TMsgDlgType.mtConfirmation, mbYesNo, 0, procedure (const AResult: TModalResult) begin if (AResult=mrYes) then begin {тут обрабатываете результат нажатия кнопки "Yes"} end; end); -
Вадим Шавров отреагировална Равиль Зарипов (ZuBy) в Диалоговое окно MessageBox на Android
поправить cамому в файлике FMX.Consts.pas и положить рядом с проектом
-
Вадим Шавров отреагировална FREEFAR в Как вернуть скролл в начало? TVertScrollBox
еще так можно))
VertScrollBox1.ViewportPosition.Y := 0;
-
Вадим Шавров получил реакцию от FREEFAR в Как вернуть скролл в начало? TVertScrollBox
Не помогло.
Решил поискать ответ по командам, которые вы написали. Нашел такое решение:
VertScrollBox1.ViewportPosition:=TPointF.Create(0,0); Все работает. Спасибо!
-
Вадим Шавров отреагировална FREEFAR в Как вернуть скролл в начало? TVertScrollBox
Попробуй так
v: TVertScrollBox
v.ScrollTo(0,0,False);
v.ScrollBy