Перейти к содержанию
Fire Monkey от А до Я

Ingalime

Пользователи
  • Постов

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

  • Посещение

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

    5

Активность репутации

  1. Like
    Ingalime отреагировална krapotkin в Отрисовка прямоугольника.   
    потому что нельзя рисовать где попало когда захочется
    есть событие OnPaint - его и используйте
  2. Like
    Ingalime отреагировална dnekrasov в Посоветуйте компонент-контейнер   
    TScrollBox?
  3. Like
    Ingalime отреагировална Yarpda в TMediaPlayer & TMediaPlayerControl - отрисовка на кадре   
    Да, такая возможность в Аlcinoe точно есть. Вот пример, реализованный на этих компонентах.
  4. Like
    Ingalime отреагировална Олег Киреев в Изменить ширину скроллбара   
    Здравствуйте уважаемый Azaz.
    1. Я извиняюсь но уважаемый Администратор просит в правилах: "
    2.2. Каким должен быть текст вопроса?
    Текст вопроса нужно начать с указания используемой версии RAD Studio, Версии ОС и модель устройства (если речь идет о мобильной разработке)" 2.  У компонента TListBox есть своё свойство-ШоуСкроллБарс.  Достаточно поставить птичку.
    С Уважением. Олег.
  5. Like
    Ingalime отреагировална krapotkin в TMediaPlayer & TMediaPlayerControl - отрисовка на кадре   
    Такая возможность ВРОДЕ БЫ есть в Alcinoe
    https://github.com/Zeus64/alcinoe
    Проверьте, сообщите результаты, всем будет полезно
    Не для Windows! Я искал как-то, не нашел вообще ничего
     
  6. Like
    Ingalime отреагировална Slym в Ошибка при создании формы   
    Мы пользуем 1 форму. А сверху натягиваем различные TFrame
    TFrame - как форма, нормально визуально правится
  7. Like
  8. Like
    Ingalime отреагировална MVAPlayer в Серия статей, как настроить Android, OS X, iOS Simulator, iOS с RAD Studio (Delphi, C++ Builder)   
    Нашел решение. Может кому-то пригодится если будет актуально.
    1) Заходим в макось которая настроена к дельфину
    2) Запускаем XCode
    3) В таб баре вверху выбираем  Window > Devices and Simulators
    4) В открывшемся окне выбираем Simulators далее в нижнем левом углу данного окна нажимаем "+"
    5) Появляется вкладка, и заполняем. i. Даем название эмулятору (любое главное вам понять и на транслите). ii. Следущее окно, для какого устройства (я выбирал 6). iii. Выбираем версию IOS, если в списке ничего нет, то выбираем "Download more simulatior runtime..."
    6) Далее выбираем версию эмулятора, скачиваем и устанавливаем.
    из пункта 5 нажимаем сохранить.
    7) в дельфине выбор платформы на iOS Simulator > Target обновляем список.
    8) выбираем новый появившийся с вашим названием и радуемся жизни ?
  9. Like
    Ingalime отреагировална Евгений Корепов в данные о железе   
    Выполняете любимую консольную команду выводящую сведения о железе (к примеру lspci -v) и парсите вывод.
  10. Like
    Ingalime отреагировална DirtyBorov в MaskEdit   
    Случилось так, что потребовался мне ввод номера телефона. Компонента, аналога TMaskEdit в FMX нет, так что пришлось "изобретать на коленке". Компонент писать было лень, потому просто покажу как я решил это в конкретном диалоге с использованием TEdit. Может кому то пригодится. Из кода я убрал все лишнее, оставил только то что относится к делу.
    uses .... System.MaskUtils, System.Character; type TFormRegistry = class(TForm) edtPhone: TEdit; procedure edtPhoneValidating(Sender: TObject; var Text: string); procedure edtPhoneKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); procedure FormCreate(Sender: TObject); procedure edtPhoneEnter(Sender: TObject); procedure edtPhoneTyping(Sender: TObject); private const Mask = '+7(000)000-00-00;0;*'; /// '+0(000)000-00-00;0;*' - для других стран, например для Украины +3(999).... private PhoneNumber: string; function GetCaretPos: Integer; function GetMaxLength: integer; public end; procedure TFormRegistry.FormCreate(Sender: TObject); begin edtPhone.Text := FormatMaskText(Mask, PhoneNumber); end; function TFormRegistry.GetCaretPos: Integer; var i: integer; begin Result := 0; for i := 0 to Mask.Length-1 do begin if not (MaskGetCharType(Mask, i) in [mcDirective, mcMask]) then Result := Result + 1; if (Result + PhoneNumber.Length) = i then Break; end; Result := Result + PhoneNumber.Length - 1; end; function TFormRegistry.GetMaxLength: integer; var i: integer; begin Result := 0; for i := 0 to Mask.Length-1 do if (MaskGetCharType(Mask, i) in [mcMask]) then Result := Result + 1; end; procedure TFormRegistry.edtPhoneKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin if (Key = 8) and (PhoneNumber.Length > 0) then PhoneNumber := Copy(PhoneNumber, 1, PhoneNumber.Length-1) else if (PhoneNumber.Length < GetMaxLength) and (Key = 0) and IsDigit(KeyChar) then PhoneNumber := PhoneNumber + KeyChar else KeyChar := #0; end; procedure TFormRegistry.edtPhoneEnter(Sender: TObject); begin edtPhone.CaretPosition := GetCaretPos; end; procedure TFormRegistry.edtPhoneTyping(Sender: TObject); begin edtPhone.CaretPosition := GetCaretPos; end; procedure TFormRegistry.edtPhoneValidating(Sender: TObject; var Text: string); begin Text := FormatMaskText(Mask, PhoneNumber); end; end.
  11. Like
    Ingalime отреагировална Axbor в MaskEdit   
    // --------------------------------------------------------------------------- #include <fmx.h> #pragma hdrstop #include "Unit1.h" // --------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.fmx" TForm1 *Form1; // --------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Mask = "+7(00)000-00-00;0;*"; PhoneNumber = ""; } // --------------------------------------------------------------------------- void __fastcall TForm1::edtPhoneTyping(TObject *Sender) { edtPhone->CaretPosition = GetCaretPos(); } // --------------------------------------------------------------------------- int __fastcall TForm1::GetCaretPos() { int i; int Result = 0; for (i = 0; i < Mask.Length(); i++) { if (!(MaskGetCharType(Mask, i) == mcDirective || MaskGetCharType(Mask, i) == mcMask)) Result += 1; if ((Result + PhoneNumber.Length()) == i) break; } Result = Result + PhoneNumber.Length() - 1; return Result; } int __fastcall TForm1::GetMaxLength() { int Result = 0; for (int i = 0; i < Mask.Length(); i++) if (MaskGetCharType(Mask, i) == mcMask) Result = Result + 1; return Result; } void __fastcall TForm1::edtPhoneKeyDown(TObject *Sender, WORD &Key, System::WideChar &KeyChar, TShiftState Shift) { if ((Key == 8) && (PhoneNumber.Length() > 0)) PhoneNumber = PhoneNumber.SubString(1, PhoneNumber.Length() - 1); else if ((PhoneNumber.Length() < GetMaxLength()) && (Key == 0) && IsDigit(KeyChar)) PhoneNumber = PhoneNumber + KeyChar; else KeyChar = 0; } // --------------------------------------------------------------------------- void __fastcall TForm1::edtPhoneKeyUp(TObject *Sender, WORD &Key, System::WideChar &KeyChar, TShiftState Shift) { edtPhone->CaretPosition = GetCaretPos(); } //--------------------------------------------------------------------------- void __fastcall TForm1::edtPhoneValidating(TObject *Sender, UnicodeString &Text) { Text = FormatMaskText(Mask, PhoneNumber); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { edtPhone->Text = FormatMaskText(Mask, PhoneNumber); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <System.Classes.hpp> #include <FMX.Controls.hpp> #include <FMX.Forms.hpp> #include <System.MaskUtils.hpp> #include <FMX.Controls.Presentation.hpp> #include <FMX.Edit.hpp> #include <FMX.StdCtrls.hpp> #include <FMX.Types.hpp> #include <System.Character.hpp> #include <string.h> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TEdit *edtPhone; TButton *Button1; void __fastcall edtPhoneTyping(TObject *Sender); void __fastcall edtPhoneKeyDown(TObject *Sender, WORD &Key, System::WideChar &KeyChar, TShiftState Shift); void __fastcall edtPhoneKeyUp(TObject *Sender, WORD &Key, System::WideChar &KeyChar, TShiftState Shift); void __fastcall edtPhoneValidating(TObject *Sender, UnicodeString &Text); void __fastcall FormCreate(TObject *Sender); private: // User declarations public: String PhoneNumber; String Mask; int __fastcall GetCaretPos(); int __fastcall GetMaxLength(); // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif Для тех кому нужен на C++
  12. Like
    Ingalime отреагировална gonzales в поломались ПУШи в 10.4   
    Нашел причину,
    В недрах класса TPushService
    TPushService = class abstract public type TPropPair = TPair<string, string>; TPropArray = TArray<TPropPair>; // commonly used names TServiceNames = record public const GCM = 'gcm'; // deprecated 'Is not available anymore. Please use FCM instead'; // Google cloud messaging FCM = 'fcm'; // Google Firebase cloud messaging APS = 'aps'; // Apple end; Соответственно нужно исправить
    FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);
    на
    FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.FCM);
     
    Все работает
  13. Like
    Ingalime отреагировална krapotkin в Открыть сайт из локальной папки (WebView)   
    а откуда у вас там адресная строка и навигация? 
    или вы даже не смотрели?
  14. Like
    Ingalime отреагировална Slym в Чтение QR кода, нужен компонент или тулза   
    hints: TDictionary<TDecodeHintType, TObject>;   l: TList<TBarcodeFormat>; begin     if not Assigned(FScanManager) then     begin       hints := TDictionary<TDecodeHintType, TObject>.Create();       l:=TList<TBarcodeFormat>.Create;       l.Add(TBarcodeFormat.QR_CODE);       hints.Add(ZXing.DecodeHintType.POSSIBLE_FORMATS, l);       FScanManager := TScanManager.Create(TBarcodeFormat.QR_CODE, hints); не тестил
  15. Like
    Ingalime отреагировална Евгений Корепов в информация о версии консольного приложения   
    https://unix.stackexchange.com/questions/58846/viewing-linux-library-executable-version-info
  16. Like
    Ingalime отреагировална Олег Киреев в Апдейт: FastReport FMX 2.7   
    Елена.
    Существует ли FastReport для разработки приложений для OS Android?
    С Уважением. Олег.
  17. Like
    Ingalime отреагировална Dmitry_4501 в [РЕШЕНО]: Как отловить кнопки пульта ДУ   
    В общем удалось решить проблему с кнопками пульта. Теперь приложение распознает все кнопки с пульта. Если кому-то нужно, прикрепил архив. (Delphi 10.3.1 Rio)
     
    fmx_androidkey_fix.zip
  18. Like
    Ingalime отреагировална Евгений Корепов в [РЕШЕНО]: Как отловить кнопки пульта ДУ   
    Друзья, вы будете смеяться - Эмбаркадера наконец то обратила внимание на заявку по этой проблеме. Правда в стиле моя-твоя непонимай ))) 
    https://quality.embarcadero.com/browse/RSP-16910
  19. Like
    Ingalime отреагировална x11 в Перехват события звонка   
    да, запретил
  20. Like
    Ingalime отреагировална Losev Andrei в Нестандартные иконки в FMX Premium Styles   
    В конце концов решил проблему за счет замены изображений из FMX Premium Styles на разработанные icons8.com. При этом можно качать с сайта, но удобнее установить их бесплатное приложение Pichon. Условия использования:
    For smartphone apps, please set a link to https://icons8.com in the About dialog or settings. Also, please credit our work in your App Store or Google Play description (something like "Icons by Icons8" is fine).
  21. Like
    Ingalime отреагировална krapotkin в Сортировка TListViewItems   
    так вот речь и идет о том, что компоненты должны быть отдельно, а данные отдельно
    если мы под компонентами понимаем одно и то же - экранные компоненты, предназначенные для отображения данных человеку
    программа не человек, ей компоненты побоку, ей бы переменные, классы, списки. 
    ну и по коду - ошибка - обращение к переменной form1 внутри метода класса TForm1
  22. Like
    Ingalime отреагировална gonzales в Сортировка TListViewItems   
    если бы все было так просто...
    в моем случае TEssense - это родительский класс для других компонентов, сортировать на этапе создания - означало бы иметь кучу вложенных циклов, не уверен, что это было бы шустро.
    А ларчик просто открывался, по недогляду забыл про Result:=0;
    Вот рабочий код
    procedure TForm1.SortGroup; begin Form1.RoomsScrollBox.sort( function(LeftItm, RightItm: TFmxObject): integer begin Result := 0; if TEssence(LeftItm).SortIndex > TEssence(RightItm).SortIndex then Result := 1 else if TEssence(LeftItm).SortIndex < TEssence(RightItm).SortIndex then Result := -1; end); end; Не забываем про BeginUpdate, EndUpdate
  23. Like
    Ingalime отреагировална krapotkin в Не определяет устройство в Delphi XE7. Ошибка при компиляции.   
    1. возьмите свежую версию делфи
    2. проблема у вас с настройкой окружения для разработки - SDK и NDK. Если все установлено настроено по инструкции, то все и работает
  24. Like
    Ingalime отреагировална krapotkin в Formatter для Delphi   
    CnWizards + CtrlW ?
  25. Like
    Ingalime отреагировална krapotkin в Сортировка TListViewItems   
    кривое тз всегда дает еще более кривое решение
    сортировать надо данные, а не компоненты на экране
    отсортировать список - доли секунды, вывести его на экран - тоже
    а вот работать с неповоротливыми экранными компонентами это ну никак не быстро
     
×
×
  • Создать...