estra

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

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

  • Посещение

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

    17

Весь контент estra

  1. estra

    Download FGX Nativo

    Не, ни в коем случае, Эмба лишь изгадит хорошее начинание...
  2. estra

    HueTrackBar

    HuewTrackBar !!! В точку!!! P.S. Не вздумайте прочесть это по русски! P.P.S. Никого не хочу обидеть, просто очень тонко подмечено)))
  3. estra

    Download FGX Nativo

    Похоже у Ярослава закончился энтузиазм...
  4. Проект вообще жив? Стоит ли ждать релиза осенью, или срок сдвинется на неопределенное время?
  5. Значит не под Windows проверяли, ибо у меня под винду все работает...
  6. А я могу понять автора, хотя и с оговоркой. Вы правы, способ не кроссплатформенный, но мы и не знаем, под какую ОС пишет ТС. Если под Винду, то почему бы и нет. Если нужно кроссплатформенное решение, то GlobalConst.pas прекрасно подойдет, никто не спорит. Но, подобными вопросами полезно задаваться и решать их в познавательных и исследовательских целях, чтобы лучше узнать инструмент, который используешь в работе. ТС не знал такого способа, теперь узнает, прокачает свои скилы, разве ж это плохо))) Да и даже чисто с практической точки зрения, бывают задачи, которые просто невозможно решить, не прибегая к хакам. Так что знать о них нужно, но применять с умом и осторожностью, ибо они не панацея!!!
  7. Можно, и что? Вопрос был "как?", решение дано, вроде никаких противоречий нет...
  8. Существует (если нельзя, но очень хочется, то можно). Правда проверял его работоспособность в VCL, в FM проверьте сами. program Project2; uses Vcl.Forms, Unit1 in 'Unit1.pas' {Form1}; var MyVariableInt: Integer; MyVariableBool: Boolean; MyVariableStr: string; exports MyVariableInt, MyVariableBool, MyVariableStr; {$R *.res} begin MyVariableInt := 456; MyVariableBool := True; MyVariableStr := 'qwerty'#0; Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; end. unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i: ^Integer; begin i := GetProcAddress(HInstance, 'MyVariableInt'); if Assigned(i) then ShowMessage(IntToStr(i^)); i := GetProcAddress(HInstance, 'MyVariableBool'); if Assigned(i) then ShowMessage(BoolToStr(Boolean(i^))); i := GetProcAddress(HInstance, 'MyVariableStr'); if Assigned(i) then ShowMessage(PChar(i^)); end; end.
  9. https://community.embarcadero.com/blogs/entry/rad-studio-3 http://edn.embarcadero.com/article/44774 - хотфиксы (как то совсем хиловато) https://community.embarcadero.com/blogs/entry/mobile-support-in-delphi-and-c-builder-professional-edition https://community.embarcadero.com/blogs/entry/new-in-c-builder-10-2-3-a-new-win32-compiler-front-end-bcc32x https://community.embarcadero.com/blogs/entry/fix-for-google-play-services-dex-error-in-10-2-3 https://community.embarcadero.com/blogs/entry/rad-server-support-for-web-files-in-rad-studio-10-2-3
  10. estra

    [SSL] сертификаты

    Как заставить это "чудо" принимать без лишних вопросов любые сертификаты на iOS и Android? В Objective-C это делается просто +(BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host { return YES; } В Java тоже нет никаких проблем @Override public viod onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); } Только в FM непонятно как провернуть такой финт. Помогите, знающие люди!
  11. [ОФФТОП] Интересно, а как метод ExtractAll должен поступать в случае, если в нескольких поддиректориях лежат файлы с одинаковыми именами? (Выберите верный вариант) В тихую перезаписывать (в конечном итоге оставляя одну версию файла, да еще непонятно какую) Останавливаться (возможно с выбросом ошибки или исключения) Долбать пользователя запросами (дергая какое-нибудь событие) P.S. выбрав вариант, предложите разработчикам "допилить" этот (метод | класс | компонент).
  12. estra

    Save for Enterprise or Ad Hoc Deployment

    Компилируя проект (Distribute for Enterprise) в Xcode, рядом с IPA файлом создается файл PLIST. Как добиться этого от RAD Studio?
  13. Пытаюсь подключиться к принтеру по Bluetooth, код следующий: procedure TForm1.Button2Click(Sender: TObject); var Manager: TBluetoothManager; Adapter: TBluetoothAdapter; Devices: TBluetoothDeviceList; Device: TBluetoothDevice; i: Integer; ClientSocket: TBluetoothSocket; begin Manager := TBluetoothManager.Current; Adapter := Manager.CurrentAdapter; Devices := Manager.GetPairedDevices( Adapter ); for i := 0 to Devices.Count-1 do if Devices[i].DeviceName = 'BT-SPP' then begin Device := Devices[i]; Break; end; ClientSocket := Device.CreateClientSocket( BTChat_UUID, False ); ClientSocket.Connect; end; На строчке ClientSocket.Connect получаю ошибку: java.io.IOException: read failed, socket migth closed ot timeout, read ret: -1. Что не так, почему не получается подключиться?
  14. Проблема в следующем. Набирая текст (например в нижнем поле букву "В") над клавиатурой появляется панель с возможными вариантами автозавершения. Далее, перехожу к другому полю (верхнему) и нажимаю кнопку "в" но в поле появляется "Вв", то есть "текс из поля автозавершения + нажатый символ". Как можно отключить появление поля автозавершения при вводе текста, или как убрать его при переходе к другому контролу?
  15. Похоже я не внятно объяснил. Приложение небольшое, написано буквально за день, но в процессе написания тестировалось только на Android 5. После чего полученный APK я попытался поставить на Android 4.2.2, и приложение не заработало. При чем тут система контроля версий? Код рабочий и отлаженный, он не перестал работать на тестовом устройстве, но не стал запускаться на другом (не использовавшемся для тестов в процессе разработки). При переносе в новый проект я использовал исключительно copy/paste, ничего от себя не добавляя. И со второго раза приложение пошло. Так что в данном случае система контроля версий тут ни при чем, и ни чем бы не помогла.
  16. Не скажу про XE8, но вот на Seattle буквально на днях столкнулся с похожей ситуацией. Написал приложение, которое тестировал на Android 5, после чего его нужно было установить на другой аппарат (Android 4.2.2), так оно вылетало при запуске… Всю голову поломал, думал уже на яве быстро переделать. А потом просто взял, и написал приложение с нуля (создал новый проект и аккуратно все туда перенес), и о чудо, оно заработало! Что за ерунда, я так и не понял, да и нет желания разбираться. Возможно у вас аналогичный случай.
  17. estra

    Где складывание кода?

    На месте.
  18. Вопрос в продолжение темы Как правильно удалять контролы в RunTime? Для начала код тестового приложения var Form1: TForm1; Edit: TEdit; implementation procedure TForm1.Btn_CreateComponentClick(Sender: TObject); begin Edit := TEdit.Create(Form1); Edit.Parent := Form1; Edit.Name := 'Edit'; end; procedure TForm1.Btn_FreeComponentClick(Sender: TObject); begin {$IFDEF AUTOREFCOUNT} Edit.Parent := nil; {$ENDIF} Edit.Free; end; procedure TForm1.Btn_FindComponentClick(Sender: TObject); begin if Assigned(FindComponent('Edit')) then ShowMessage('Компонент найден') else ShowMessage('Компонент не найден'); end; Последовательность действий: 1. Пытаемся найти компонент (Btn_FindComponentClick). Компонент не находится, все OK. 2. Создаем компонент (Btn_CreateComponentClick). Компонент создается, все OK. 3. Пытаемся найти компонент (Btn_FindComponentClick). Компонент находится, все OK. 4. Удаляем компонент (Btn_FreeComponentClick). Компонент якобы удаляется (исчезает с формы). НО… 5. Пытаемся найти компонент (Btn_FindComponentClick). Компонент находится, а это уже не OK. Повторное создание компонента естественно приведет к ошибке "A component named Edit already exists". Собственно вопрос, как полностью удалить компонент, чтобы FindComponent его больше не видел?
  19. Вопрос к разработчикам. Почему в платформе FM перезагрузка операторов для классов работает на для всех платформ, в частности работает для Android и не работает для Windows? P.S. [offtop] Нет ли в планах добавления возможности перезагрузки операторов для классов в VCL?
  20. холивар начинается, это ни есть хорошо. хотелось бы узнать ответ разработчиков по существу вопроса… Add и Multiply - дело вкуса, а лично мне по вкусу перегрузить операторы, чем городить функции. сахар сомнительный, ибо тогда на плюсы будет смахивать а так можно далеко зайти. я бы, например, не отказался от тернарного оператора a = (b > c) ? 1 : 2 но это все лирика, топик о перезагрузке операторов, давайте не отклоняться от темы!
  21. Я и не говорю, что он там есть, я говорю, что его можно сделать. type TMyRec = record public Value: ^Integer; constructor Create(Val: Integer); class operator Add(a, b: TMyRec): TMyRec; end; var Form1: TForm1; r1, r2, r3: TMyRec; implementation {$R *.fmx} procedure TForm1.Button1Click(Sender: TObject); begin r1 := TMyRec.Create(3); r2 := TMyRec.Create(4); r3 := r1 + r2; ShowMessage(IntToStr(r3.Value^)); end; { TMyRec } class operator TMyRec.Add(a, b: TMyRec): TMyRec; begin Result := TMyRec.Create(a.Value^ + b.Value^); end; constructor TMyRec.Create(Val: Integer); begin GetMem(Value, SizeOf(Value)); Value^ := Val; end; такая запись уже мало чем отличается от класса. однако если в такой записи переопределить операторы, никого не заботит вопрос о том, кто будет очищать выделенную память. кто должен освобождать r3? вопрос в том, почему с записями это никого не волнует, а с классами волнует? Почему бы и классам не дать возможность перегружать операторы?
  22. DisposeOf тоже не спасает. FindComponent (2).zip
  23. Мобильные, андроид. Пробовал и так, но увы, результат прежний. procedure TForm1.Btn_FreeComponentClick(Sender: TObject); begin {$IFDEF AUTOREFCOUNT} Edit.Parent := nil; {$ENDIF} Edit.Free; {$IFDEF AUTOREFCOUNT} Edit := nil; {$ENDIF} end; После удаления компонента FindComponent продолжает находить удаленный компонент. FindComponent.zip