Ingalime
-
Постов
354 -
Зарегистрирован
-
Посещение
-
Победитель дней
5
Активность репутации
-
Ingalime отреагировална brunnengi в Странный баг с TMultiView 2
Кинь на форму Layount. Сделай HitTest = true;
Когда MultiView "активен" выводи Layout поверх всех компонентов кроме Multiview. Делай Layout visile true, hittest=true, BringFront;
Тогда если Нажимать "мимо" multiview то отрабатывать нажатие будет имено layout а не какой либо другой компонент
-
Ingalime отреагировална Равиль Зарипов (ZuBy) в Исключить устройства с Intel Atom как не поддерживаемые
Скриншоты с планшета добавлены в ГуглПлей?
-
Ingalime отреагировална Andrey Efimov в Исключить устройства с Intel Atom как не поддерживаемые
Оф. справка: Workaround for Android 4.0/Kindle Fire Message: "Application does not support this device"
-
Ingalime отреагировална haword в Перевод VCL приложения на FMX. Подводные камни, стоит ли?
у меня тоже нет никакой ошибки на рио. пример с ошибкой можно?
-
-
Ingalime отреагировална sinuke в [Android] Прозрачный StatusBar в RAD 10.3 Rio
Привет
Вчера была выпущена финальная версия RAD Studio 10.3 Rio, в которой много нововведений для Андройд. Но вот про статусбар снова "забыли". Хотя не совсем, добавили файлик styles-v21.xml, который превносит новую материальную тему на устройствах под управлением Android 5.0 и выше вместо устаревшей Holo.
Но все равно свойство формы SystemStatusBar так и не реализовали. Поэтому при запуске статус бар будет окрашен в унылый серый цвет (см. скриншот).
Для того, чтобы сделать статусбар прозрачным и поместить под него содержимое формы, то достаточно сделать несколько несложных шагов:
1. Убираем из деплоймента (Project -> Deployment) файл styles-v21.xml (можно просто снять галочку рядом с именем файла)
2. Добавить в деплоймент проекта новый файл styles-v21.xml (styles-v21.zip) и прописать ему путь res\values-v21\
3. В результате получится следующий вид
P.S. В новом файле по сравнению со стандартным добавилась строчка <item name="android:windowTranslucentStatus">true</item>, которая и отвечает за прозрачный статусбар
P.P.S. Чтобы определять размер статус бара, все также можно воспользоваться решеним ZuBy - http://blog.rzaripov.kz/2016/12/android-ios.html
P.P.P.S. Тестовый проектик - StatusBar.zip
-
Ingalime отреагировална krapotkin в Троит картинка при движении объекта
эмм, а насчет рисовать на специально выделенных местах - не на форме а на PaintBox никак?
там все без бубнов взлетает
-
Ingalime отреагировална Barbanel в Nox: в приложении произошла ошибка
Поясните плиз для тупых, что есть Nox?
-
Ingalime отреагировална Tumaso в Как собрать apk для android 8.1 не имея устройства с такой версией android?
В Rio да, укажите api 28
-
Ingalime отреагировална Tumaso в Как собрать apk для android 8.1 не имея устройства с такой версией android?
Delphi Rio:
1. Target Platform -> Android
2. Project -> Build
3. Project -> Deploy
В итоге apk для android 5/6/7/8/8.1/9 создан
-
Ingalime отреагировална Котэ в Цвет поля TTextObjectAppearance
Блин пока создам вопрос, найду ответ.
Код надо поправить было.
function TfrmM.ColorToAlphaColor(Value: TColor): TAlphaColor; var CRec: TColorRec; ARec: TAlphaColorRec; begin CRec.Color := Value; ARec.A := FF; ARec.B := CRec.B; ARec.G := CRec.G; ARec.R := CRec.R; Result := ARec.Color; end;
-
Ingalime отреагировална Denis Vasilyev в Серия статей, как настроить Android, OS X, iOS Simulator, iOS с RAD Studio (Delphi, C++ Builder)
Серия статей с пошаговой инструкцией, как подключить и настроить Android, OS X, iOS Simulator, iOS для работы с RAD Studio.
Как настроить Android и RAD Studio XE7 (Delphi, C++ Builder)
http://habrahabr.ru/company/delphi/blog/253929/
Как настроить Mac OS X, iOS-симулятор и RAD Studio XE8 (Delphi, C++ Builder)
http://habrahabr.ru/company/delphi/blog/255721/
Как настроить iOS-устройство и RAD Studio XE8 (Delphi, C++ Builder)
http://habrahabr.ru/company/delphi/blog/265313/
-
Ingalime отреагировална void в Мануал по использованию сторонних нативных SDK. Нужна Ваша помощь
1) Delphi -> Project Options -> Building -> Delphi Compiler -> Linking -> Option passed to the LD linker
Добавил нужные для компиляции зависимости стороннего framework с соответствующими параметрами и бибилиотеками
у меня например:
-ObjC -L C:\Users\Andrey\Documents\Embarcadero\Studio\SDKs\iPhoneOS12.1.sdk\usr\lib ..\_CommonModules\YandexMetrica\Frameworks\Foundation.framework\Foundation ......
..... -lsqlite3 -lz -lc++
(после такой линковки второй пункт не понадобился)
Но на всякий дополню
2)
dependency 'stdc++', 'z';
-
Ingalime отреагировална krapotkin в Изменение ширины TTextObjectAppearance
а разве не в OnUpdateObjects/OnUpdatingObjects это должно происходить ?
-
-
Ingalime отреагировална Barbanel в Как убить кнопку кликнув на нее саму
function CreateGUID(): string; var GUID: TGUID; begin if ( System.SysUtils.CreateGUID(GUID) <> 0 ) then Result := '' else Result := GUIDToString(GUID); end; ... begin ... lFrame.Name := CreateGUID(); end; Это чтобы уж совсем быть уверенным)))
PS. В Delphi 7 - 100% можно создавать компоненты не присваивая ему имя, у нас так все справочники в CRM работали.
-
Ingalime отреагировална kami в Как убить кнопку кликнув на нее саму
помнится, отвечал уже кому-то на форуме. Для динамически создаваемых компонентов просто не указывайте имя. Не нужно оно им. Тогда эта проблема отпадает сама собой.
-
Ingalime отреагировална slav_z в Как убить кнопку кликнув на нее саму
Намного проще оставить в покое метод Release.
-
Ingalime отреагировална Yarpda в Ура! Вышла 10.3 Rio!
Если планируется выставлять на playmarket то Рио (поддержка 26 targetsdk), если нет то Берлин постабильнее как по мне. Хотя если начинать то лучше сразу на Рио. Переходить все равно придется ..
-
Ingalime отреагировална Евгений Корепов в Как застать TWebBrowser обрабатывать адреса эл. почты (Android)
Прошу прощения, я ввел вас в заблуждение (тестировал на одном своем проекте). Открытие подобных ссылок вы должны делать самостоятельно, обрабатывая событие браузера ShouldStartLoadWithRequest.
Вот код:
uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, {$IFDEF ANDROID} Androidapi.JNI.Net, Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, {$ENDIF ANDROID} FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, FMX.WebBrowser, FMX.Controls.Presentation; ..... const ConstMainURL = 'http://www.docme.ru/contacts'; .... procedure THeaderFooterForm.WebBrowser1ShouldStartLoadWithRequest( ASender: TObject; const URL: string); begin if Not URL.StartsWith(ConstMainURL) then // Если ссылка перехода отличается от базовой, то открываем ее через активити begin WebBrowser1.Stop; OpenURL(URL); end; end; procedure THeaderFooterForm.OpenURL(const AUrl: string); {$IFDEF ANDROID} var Uri: Jnet_Uri; OpenLinkIntent: JIntent; {$ENDIF ANDROID} begin {$IFDEF MSWINDOWS} ShellExecute(0, 'open', PChar(AUrl), nil, nil, SW_SHOWNORMAL); {$ENDIF MSWINDOWS} {$IFDEF ANDROID} Uri := StrToJURI(AUrl); OpenLinkIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW, Uri); TAndroidHelper.Activity.startActivity(OpenLinkIntent); {$ENDIF ANDROID} end; И прикрепляю ваш проект с моими изменениями
WebPrj.zip
-
Ingalime отреагировална Евгений Корепов в Как застать TWebBrowser обрабатывать адреса эл. почты (Android)
Все отлично обрабатывается и открывается. Любой браузер по определению должен это делать. У вас должна быть правильная ссылка на электронную почту, в примеру <a href="mailto:putin@russia.gov">Напишите письмо президенту</a>
P.S. Или так, если хотите видеть адрес <a href="mailto:putin@russia.gov">putin@russia.gov</a>
-
Ingalime отреагировална slav_z в Как убить кнопку кликнув на нее саму
в XE8 как раз и было реализовано через помещение в объект TPurgatory. (удален из 10)
он как раз и помещал объект к себе в список и удалял "чуть позже" по таймеру (через 10 мс).
unit FMX.Types; type TPurgatory = class (TComponent) public const TimerInterval: Integer = 10; private FInstanceList: TList<Pointer>; FTimerHandle: TFMXHandle; FPlatformTimer: IFMXTimerService; procedure StartTimer; procedure StopTimer; procedure TimerProc; procedure UpdateTimer; protected procedure Notification(AComponent: TComponent; Operation: TOperation); override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Clear; procedure Add(const Instance: TFmxObject); procedure Remove(const Instance: TFmxObject); function Contains(const Instance: TFmxObject): Boolean; end;
-
Ingalime отреагировална slav_z в Работа с атрибутами текста
Как сделать текст с подобными атрибутами? Очень просто!
(Цвет текста не работает в XE8) Вот весь код:
unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.UIConsts, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, FMX.Objects, FMX.TextLayout; type TForm1 = class(TForm) Button1: TButton; Text1: TText; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} type TTextAccess = class(TText); procedure ClearTextAttribute(Text: TText); begin TTextAccess(Text).Layout.ClearAttributes; end; procedure AddTextAttribute(Text: TText; Pos,Length: Integer; FontStyles: TFontStyles; FontColor: TAlphaColor); var Font: TFont; begin Font:=TFont.Create; Font.Assign(Text.Font); Font.Style:=FontStyles; TTextAccess(Text).Layout.AddAttribute( TTextRange.Create(Pos,Length), TTextAttribute.Create(Font,FontColor)); end; procedure TForm1.Button1Click(Sender: TObject); begin AddTextAttribute(Text1,10,17,[TFontStyle.fsBold],claRed); AddTextAttribute(Text1,34,8,[TFontStyle.fsUnderline],claBlue); AddTextAttribute(Text1,47,8,[TFontStyle.fsStrikeOut],claGreen); Text1.Repaint; end; end.
-
Ingalime отреагировална Brovin Yaroslav в Как сделать буквы разного цвета?
Добрый вечер,
Такую надпись можно решить несколькими способами в зависимости от дополнительных условий:
Будет ли меняться текст надписи или нет? В зависимости от этого есть четыре решения:
I. Текст надписи не допускает изменений
В этом случае проще всего сделать картинку с этим текстом и использовать ее в вашем приложении. Где нужно отобразить, использовать TImage.
II. Текст надписи может изменяться
Тут два решения:
1. Используем набор TText или TLabel. Для отображения групп последовательных символов одного цвета используем отдельный контрол TLabel или TText. Каждую группу раскрашиваем требуемым образом через настройки контролов.
На скриншотах ниже, я использовал контейнер TLayout и складываю туда несколько объектов TText с выравниванием по левому краю.
2. Рисовать надпись вручную с использование TTextLayout. Этот способ сложнее, но зато универсальнее и эффективнее. Используя TTextLayout по очереди отрисовываем все буквы с нужными цветами и параметрами.
3. На основе решения 2 в этой части, сделать свой компонент.
-
Ingalime отреагировална Ry Koo в NotificationCenter1.CancelALL отменяет только одно уведомление
создаю несколько локальных уведомлений с периодом вывода в минуту, всё ОК, выводятся. При попытке отменить их всех, отменяется только созданное первым, остальные продолжают выводиться и ничего уже с этим не поделать, отменить далее их невозможно. Поимённая отмена NotificationCenter1.CancelNotification(имя напоминания) тоже не действует. Погуглив наткнулся на пост, размещённый более года назад:
https://stackoverflow.com/questions/34719635/delphi-tnotificationcenter-multiple-repeating-notifications-has-unexpected-behav
С тех пор много воды утекло, не нашли ли нормального лекарства от этого глюка? Может что делаю не так?
Кстати, там и решение предложено и оно работает https://github.com/dangas56/SendCancelNotification/blob/master/System.Android.Notification.pas
Просто не верится что до сих пор приходится переписывать самим внутренние файлы.