Перейти к содержанию
  • Регистрация

slav_z

Пользователи
  • Публикаций

    53
  • Зарегистрирован

  • Посещение

  • Победитель дней

    6

slav_z стал победителем дня 31 октября

slav_z имел наиболее популярный контент!

1 Подписчик

Информация о slav_z

  • Звание
    Продвинутый пользователь

Посетители профиля

1 187 просмотров профиля
  1. uses System.SysUtils, System.IOUtils, System.Permissions, System.Messaging, FMX.Dialogs; uses Androidapi.Helpers, Androidapi.JNI.Os, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, Androidapi.JNI.Webkit, Androidapi.JNI.Net, Androidapi.JNI.App, Androidapi.JNI.Support, FMX.Platform.Android; это потребуется
  2. вот кусок кода "вырванный" из проекта (написано благодаря ссылке ярослава выше- спасибо): MimeType = image/* - для картинок. если что не так, комментируйте. type TDialog = class private FProc: TProc<string>; procedure ResultCallback(const Sender: TObject; const M: TMessage); public constructor Create; destructor Destroy; override; procedure Show(const MimeType: string; Proc: TProc<string>); end; constructor TDialog.Create; begin TMessageManager.DefaultManager.SubscribeToMessage(TMessageResultNotification, ResultCallback); end; destructor TDialog.Destroy; begin TMessageManager.DefaultManager.Unsubscribe(TMessageResultNotification, ResultCallback); end; procedure TDialog.ResultCallback(const Sender: TObject; const M: TMessage); var FilePath: string; begin if TMessageResultNotification(M).RequestCode = 5 then if TMessageResultNotification(M).ResultCode = TJActivity.JavaClass.RESULT_OK then begin FilePath:=JStringToString(TMessageResultNotification(M).Value.getData.getPath); FProc(FilePath); end; Free; end; procedure TDialog.Show(const MimeType: string; Proc: TProc<string>); var Intent: JIntent; begin FProc:=Proc; Intent:=TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_PICK); Intent.setType(StringToJString(MimeType)); MainActivity.startActivityForResult(Intent,5); end; procedure OpenFileDialog(const MimeType: string; Proc: TProc<string>); begin RequestPermissionsExternalStorage( procedure(Granted: Boolean) begin if Granted then TDialog.Create.Show(MimeType,Proc); end); end;
  3. function IsEndScroll(ScrollBox: TCustomScrollBox): Boolean; begin Result:=ScrollBox.ViewportPosition.Y>=ScrollBox.ContentBounds.Height-ScrollBox.ClientHeight; end;
  4. посмотрите реализацию TCustomListBox.Clear;
  5. ну здесь же Button29 не разрушается... тыкая по кнопке будут проблемы если убивается сам элемент по которому тыкать...
  6. procedure ClearTextAttribute(Text: TText); begin for var I:=0 to TTextAccess(Text).Layout.AttributesCount-1 do TTextAccess(Text).Layout.Attributes[I].Attribute.Font.Free; TTextAccess(Text).Layout.ClearAttributes; end; поправка... иначе созданные объекты TFont не разрушаются... так же необходимо вызвать ClearTextAttribute() при разрушении формы.
  7. уберите первые две строки... попробуйте... должно заработать.
  8. unit Unit9; interface uses System.JSON; procedure ReadData(const Data: string); implementation procedure ReadStatus(jsObject: TJSONObject); var ActivityId: Integer; ActivityName: string; begin ActivityId:=jsObject.GetValue<Integer>('statusactivity_id'); ActivityName:=jsObject.GetValue<string>('statusactivity_name'); end; procedure ReadStatusArray(jsArray: TJSONArray); var jsValue: TJSONValue; begin for jsValue in jsArray do ReadStatus(jsValue as TJSONObject); end; procedure ReadAnyArray(jsArray: TJSONArray); begin end; procedure ReadData(const Data: string); var jsArray: TJSONArray; begin jsArray:=TJSONObject.ParseJSONValue(Data) as TJSONArray; try ReadStatusArray(jsArray.Items[0] as TJSONArray); ReadAnyArray(jsArray.Items[1] as TJSONArray); ReadAnyArray(jsArray.Items[2] as TJSONArray); ReadAnyArray(jsArray.Items[3] as TJSONArray); finally jsArray.Free; end; end; end.
  9. Да нормально работает на XE8 и 10.3 procedure TForm6.Button1Click(Sender: TObject); var A: TJSONObject; begin A := TJSONObject(TJSONObject.ParseJSONValue('здесь неправильный json')); if Assigned(A) then A.ToString; end;
  10. Показать/скрыть сенсорную клавиатуру Windows. unit Lib.Keyboard; interface uses Winapi.Windows, Winapi.ActiveX, System.Win.ComObj, FMX.Forms, FMX.Platform.Win; procedure ToggleSensorKeyboard(Form: TCommonCustomForm); implementation const CLSID_UIHostNoLaunch: TGUID = '{4CE576FA-83DC-4F88-951C-9D0782B4E376}'; type ITipInvocation = interface ['{37C994E7-432B-4834-A2F7-DCE1F13B834B}'] procedure Toggle(WND: HWND); safecall; end; procedure ToggleSensorKeyboard(Form: TCommonCustomForm); var TipInvocation: ITipInvocation; begin OleCheck(CoCreateInstance( CLSID_UIHostNoLaunch,nil,CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, ITipInvocation,TipInvocation)); TipInvocation.Toggle(FormToHWND(Form)); end; end. C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe - Сенсорная клавиатура Windows. В Windows 10 простой запуск уже не работает. Кто как делал? Очень интересны примеры кода.
  11. да нормально... я в окопе...
  12. "реагировал"? останется кто-то один: или FMX или FGX... кто?
  13. FGX - утопие. один разработчик не сможет тянуть такой проект. но идея в основе замечательная.
  14. попробуйте указать цвет и вид заполнения... Canvas.Fill.Color и Canvas.Fill.Kind (текст - это заливка... поэтому Fill)
  15. Ищите установленное свойство Scale у родителей. Создайте новый пустой проект и проверьте поведение координат мыши там. image-mouse.zip
×
×
  • Создать...