Ingalime
-
Постов
354 -
Зарегистрирован
-
Посещение
-
Победитель дней
5
Активность репутации
-
Ingalime отреагировална krapotkin в Отрисовка прямоугольника.
потому что нельзя рисовать где попало когда захочется
есть событие OnPaint - его и используйте
-
-
Ingalime отреагировална Yarpda в TMediaPlayer & TMediaPlayerControl - отрисовка на кадре
Да, такая возможность в Аlcinoe точно есть. Вот пример, реализованный на этих компонентах.
-
Ingalime отреагировална Олег Киреев в Изменить ширину скроллбара
Здравствуйте уважаемый Azaz.
1. Я извиняюсь но уважаемый Администратор просит в правилах: "
2.2. Каким должен быть текст вопроса?
Текст вопроса нужно начать с указания используемой версии RAD Studio, Версии ОС и модель устройства (если речь идет о мобильной разработке)" 2. У компонента TListBox есть своё свойство-ШоуСкроллБарс. Достаточно поставить птичку.
С Уважением. Олег.
-
Ingalime отреагировална krapotkin в TMediaPlayer & TMediaPlayerControl - отрисовка на кадре
Такая возможность ВРОДЕ БЫ есть в Alcinoe
https://github.com/Zeus64/alcinoe
Проверьте, сообщите результаты, всем будет полезно
Не для Windows! Я искал как-то, не нашел вообще ничего
-
Ingalime отреагировална Slym в Ошибка при создании формы
Мы пользуем 1 форму. А сверху натягиваем различные TFrame
TFrame - как форма, нормально визуально правится
-
-
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) выбираем новый появившийся с вашим названием и радуемся жизни ?
-
Ingalime отреагировална Евгений Корепов в данные о железе
Выполняете любимую консольную команду выводящую сведения о железе (к примеру lspci -v) и парсите вывод.
-
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. -
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++
-
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);
Все работает
-
Ingalime отреагировална krapotkin в Открыть сайт из локальной папки (WebView)
а откуда у вас там адресная строка и навигация?
или вы даже не смотрели?
-
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); не тестил
-
Ingalime отреагировална Евгений Корепов в информация о версии консольного приложения
https://unix.stackexchange.com/questions/58846/viewing-linux-library-executable-version-info
-
Ingalime отреагировална Олег Киреев в Апдейт: FastReport FMX 2.7
Елена.
Существует ли FastReport для разработки приложений для OS Android?
С Уважением. Олег.
-
Ingalime отреагировална Dmitry_4501 в [РЕШЕНО]: Как отловить кнопки пульта ДУ
В общем удалось решить проблему с кнопками пульта. Теперь приложение распознает все кнопки с пульта. Если кому-то нужно, прикрепил архив. (Delphi 10.3.1 Rio)
fmx_androidkey_fix.zip
-
Ingalime отреагировална Евгений Корепов в [РЕШЕНО]: Как отловить кнопки пульта ДУ
Друзья, вы будете смеяться - Эмбаркадера наконец то обратила внимание на заявку по этой проблеме. Правда в стиле моя-твоя непонимай )))
https://quality.embarcadero.com/browse/RSP-16910
-
-
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).
-
Ingalime отреагировална krapotkin в Сортировка TListViewItems
так вот речь и идет о том, что компоненты должны быть отдельно, а данные отдельно
если мы под компонентами понимаем одно и то же - экранные компоненты, предназначенные для отображения данных человеку
программа не человек, ей компоненты побоку, ей бы переменные, классы, списки.
ну и по коду - ошибка - обращение к переменной form1 внутри метода класса TForm1
-
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
-
Ingalime отреагировална krapotkin в Не определяет устройство в Delphi XE7. Ошибка при компиляции.
1. возьмите свежую версию делфи
2. проблема у вас с настройкой окружения для разработки - SDK и NDK. Если все установлено настроено по инструкции, то все и работает
-
-
Ingalime отреагировална krapotkin в Сортировка TListViewItems
кривое тз всегда дает еще более кривое решение
сортировать надо данные, а не компоненты на экране
отсортировать список - доли секунды, вывести его на экран - тоже
а вот работать с неповоротливыми экранными компонентами это ну никак не быстро