![](https://fire-monkey.ru/uploads/set_resources_12/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
Kitty
-
Постов
792 -
Зарегистрирован
-
Посещение
-
Победитель дней
16
Активность репутации
-
Kitty отреагировална Равиль Зарипов (ZuBy) в [TidIPWatch] Узнаём локальный IP
можно использовать вот это
-
Kitty отреагировална Error в [TEdit] Почему при изменении масштаба TEdit.Scale, могут появляться артефакты в виде линий?
9-path изображение из которых состоят все растровые скины, состоят из 9 кусочков, которые если компонент имеет дробные координаты или размер рисуются в дробных координатах, а сглаживание размазывает границы этих кусочков.
Вариант решения: следить за тем, чтобы размеры и координаты компонентов были всегда целыми числами. (обычно проблемы могут возникать при расположении компонентов на различных Layout-ах типа TGridLayout, TScaledLayout)
-
Kitty отреагировална alexbirukov в Ошибки и косяки Delphi XE10 Seattle и xCode 7
Нашёл решение предыдущей проблемы.
На iOS9 перенесённые проекты не запускаются, если в проекте имелся ImageList. Во время запуска приложения данный компонент вызывает несколько ошибок. Решение: либо удалить компонент, либо пересоздать его и заполнить по новой. Источник.
Так же, с выходом iOS 9.1 возникла проблема загрузки приложений в Apple Store. Теперь для загрузке обязательно необходимо обновить xCode до версии 7.1 и SDK9.
И вот теперь, обязательны ключи:
41<key>NSAppTransportSecurity</key>
42<dict>
43
44 <key>NSAllowsArbitraryLoads</key>
45 <true/>
46</dict>
для работы приложений с http, иначе будет возникать ошибка.
-
Kitty отреагировална Равиль Зарипов (ZuBy) в Реализовать свою маску в Edit
uses maskUtils
Edit1.Text := MaskDoFormatText('000.000.000.000;#0',Edit1.Text, #0); -
Kitty отреагировална Равиль Зарипов (ZuBy) в Слайдер для двух TImage
я к Вашему слайдеру повесил жесты (Left,Right) и нормально так получилось.
пришлось вынести пару методов в public, писал вроде об этом уже
-
Kitty отреагировална Martifan в Удаление маркеров TMapView N2
Private FMarkers: TList<TMapMarker>; ................... Procedure AddMarker; var mapCenter: TMapCoordinate; MyMarker: TMapMarkerDescriptor; Begin mapCenter := TMapCoordinate.Create(StrToFloat(Lat), StrToFloat(Lon)); MyMarker := TMapMarkerDescriptor.Create(mapCenter, 'Text'); fmain.MapView1.Location := mapCenter; FMarkers.Add(fmain.MapView1.AddMarker(MyMarker)); End; Procedure RemoveMarker; var Marker: TMapMarker; Begin for Marker in FMarkers do Marker.Remove; FMarkers.Clear; End; procedure Tfmain.FormCreate(Sender: TObject); begin FMarkers := TList<TMapMarker>.Create; End; -
Kitty отреагировална Brovin Yaroslav в Слайдер для двух TImage
Пока в FGX есть слайдер, но он без использования жеста прокручивания. Я подумаю, чтобы добавить в следующую версию прокрутку пальцем.
-
Kitty отреагировална FIL в [Seattle] Создание функции обратного вызова при помощи TDSRestClientCallback
Выяснил что если из ХЕ8 взять файлы:
Datasnap.DSClientRest.pas
Datasnap.DSHTTPClient.pas
Datasnap.DSProxyRest.pas
Datasnap.DSClientMetadata.pas
, то клиет работает корректно.
Но найти в них косяк весьма проблемотично, т.к. изменения в Seattle относительно ХЕ8 слишком кардинальные.
А разработчикам, похоже, это не особо интересно.
-
Kitty отреагировална Brovin Yaroslav в Работа с эмулятором BlueStacks из RAD Studio XE5
Для запуска эмулятора с последними версиями среды требуется сделать следующее:
Открыть Deployment Manager. Project-> Deployment Снять галки с файлов libnative-activity.so
Более подробную информацию можно найти здесь.
-
Kitty отреагировална Brovin Yaroslav в Как убрать клавиатуру вызванную фокусом TEdit?
Добрый день,
Два варианта:
Как я могу скрыть / показать клавиатуру под "Android"? Сбросить фокус
Edit.ResetFocus -
Kitty отреагировална bigjorj в InAppPurchase.IsProductPurchased
Вот пример. У меня работает. Был один неприятный момент - после использования тестовых продуктов проверка покупки заработала примерно через день, сама по себе.
При старте приложения вызываем
PurchaseDataModule.InAppPurchase1.SetupInAppPurchase;
procedure TPurchaseDataModule.DataModuleCreate(Sender: TObject); begin fisPurchased := true; {$IFDEF ANDROID} InAppPurchase1.ApplicationLicenseKey :=''; //Присваиваем ключ InAppPurchase1.ProductIDs.Add(ProductId); // Добавляем наш продукт InAppPurchase1.OnSetupComplete := InAppPurchase1SetupComplete; {$ENDIF} end; procedure TPurchaseDataModule.InAppPurchase1ProductsRequestResponse( Sender: TObject; const Products: TIAPProductList; const InvalidProductIDs: TStrings); var Product: TProduct; begin fisPurchased := false; for Product in Products do begin if ProductId = Product.ProductID then begin FProductIsValid := True; if InAppPurchase1.IsProductPurchased(ProductId) then begin fisPurchased := true; // КУПЛЕНО!!!! end end; end; end; procedure TPurchaseDataModule.InAppPurchase1PurchaseCompleted(Sender: TObject; const ProductID: string; NewTransaction: Boolean); begin MainDataModule.ShowToast('Премиум версия активирована'); fisPurchased := True end; procedure TPurchaseDataModule.InAppPurchase1SetupComplete(Sender: TObject); begin fisPurchased := False; try InAppPurchase1.QueryProducts; except on E:Exception do MainDataModule.ShowToast(e.Message); end; end; procedure TPurchaseDataModule.Purchase; begin {$IFDEF ANDROID} if InAppPurchase1.IsSetupComplete and InAppPurchase1.CanMakeInAppPurchases then begin InAppPurchase1.PurchaseProduct(ProductId); end else MainDataModule.ShowToast('В данный момент приобретение не возможно. Попробуйте позже'); {$ENDIF} end; -
Kitty отреагировална haword в Delphi XE8 автозагрузка приложения в Android
ну вообще то надо задать java класс а указано - .BootReceiver
-
Kitty отреагировална serg557 в [TidHTTP] Кодировка ответа сервера на загрузку файла
Тема закрыта, решение нашлось благодаря теме в соседней ветке. приведу весь кусок кода- может спасу кому-то день
#include <IdURI.hpp> ... TStringList *SL2= new TStringList; SL2->Clear(); OpenDialog1->Execute(); TIdMultiPartFormDataStream *PostFile= new TIdMultiPartFormDataStream; PostFile->Clear(); PostFile->AddFormField("FileName",ExtractFileName(OpenDialog1->FileName)); PostFile->AddFile("Filedata",OpenDialog1->FileName); PostFile->AddFormField("Upload","Submit Query"); SL2->Text=TIdURI::URLDecode(HTTP1->Post("http://...", PostFile)); Memo1->Text=SL2->Text; PostFile->Free(); SL2->Free(); HTTP1->Request->ContentType="application/x-www-form-urlencoded"; изменение в 11 строке и добавление include
-
Kitty отреагировална Кривяков Виталий в TUITabControl
Проверил - действительно, есть такое поведение. Постараюсь выложить исправление в ближайшее время.
-
Kitty отреагировална Равиль Зарипов (ZuBy) в Запрет жеста
достаточно один раз сравнить, был ли скрол
if not myFlag then myFlag := newViewportPosition <> OldViewportPosition; // типа того, нет времени проверять onMouseUp
myFlag := false; -
Kitty отреагировална umkes в Запрет жеста
Решил при помощи координат.
На OnMouseDown сохраняем координату Y. А в обработке igiLongTap проверку или теперешняя координата равна Y.
-
Kitty отреагировална Brovin Yaroslav в Как программно в Андроид выполнить MouseDown для компонента?
На уровне формы есть методы для работы с мышью:
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); virtual; procedure MouseMove(Shift: TShiftState; X, Y: Single); virtual; procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single; DoClick: Boolean = True); virtual; procedure MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); virtual; procedure MouseLeave; virtual; Используйте их, для эмуляции нажатия мышкой или пальцем. В качестве координат нужно передавать абсолютные координаты компонента
-
Kitty отреагировална Brovin Yaroslav в [Отклонение] Утечка памяти в компоненте TNotificationCenter
Я уже завел этот баг во внутреннем треккере.
-
Kitty отреагировална Равиль Зарипов (ZuBy) в Динамическое создание и уничтожение TForm
TFormAdd.Create -
Kitty отреагировална Brovin Yaroslav в AppAnalytics
Все просто, если вы выставите флаг AllowTracking в True, то диалоговое окно не будет показано при запуске. Соответственно, после первого запуска, вы должны куда-нибудь сохранить информацию, что пользователь дал добро на отслеживание. Для этого вам предлагают использовать уже готовый механизм для сохранения данных при закрытии приложении. Так же вы можете в ручную реализовать сохранение настроек через XMl, Ini файлы и тд.
[Android] Что использовать для сохранения настроек приложения?
FireMonkey Save State
-
Kitty отреагировална Равиль Зарипов (ZuBy) в [SSL] Как получить содержимое страницы по HTTPS с помощью INDY?
begin fSSL := TIdSSLIOHandlerSocketOpenSSL.Create(fHTTP); fHTTP.IOHandler := fSSL; fHTTP.AllowCookies := True; fHTTP.HandleRedirects := True; end; Указать НУЖНЫЙ тип SSL/TLS и его версию
и если это Windows программа, то надеюсь вы не забыли библиотеки ssl положить вместе с исполнительным файлом
ответ на запрос, проверьте id вашего приложения
-
Kitty отреагировална Равиль Зарипов (ZuBy) в Еще раз про разбор JSON - массива
function JSONParse(const aJSONData: string; const aMemo: TMemo): boolean; var aJSValue: TJSONValue; aJSObject: TJSONObject; aJSArray: TJSONArray; I, J: integer; begin Result := false; aJSValue := TJSONObject.ParseJSONValue(aJSONData) as TJSONValue; if Assigned(aJSValue) then begin aJSObject := aJSValue as TJSONObject; if Assigned(aJSObject) then begin for I := 0 to aJSObject.Count - 1 do begin aMemo.Lines.Add(aJSObject.Pairs[I].JsonString.Value + '=' + aJSObject.Pairs[I].JsonValue.Value); if aJSObject.GetValue(aJSObject.Pairs[I].JsonString.Value) is TJSONArray then begin aJSArray := aJSObject.GetValue(aJSObject.Pairs[I].JsonString.Value) as TJSONArray; if Assigned(aJSArray) then begin for J := 0 to aJSArray.Count - 1 do aMemo.Lines.Add(aJSArray.Items[J].Value); end; end; end; end; end; Result := true; end; JSONParse('{"desc":"Описания...","otdel":["1","12","300"],"manufacturer":"ООО \"Привет\""}', Memo1) -
Kitty отреагировална Pulsarius в RAD XE9 (RAD X Seattle)
https://onedrive.live.com/redir?resid=6F5EAC5B9D042042!4961&authkey=!AEoTXbnPYPhSm4I&ithint=folder%2cpdf
-
-
Kitty получил реакцию от Alex7wrt в RAD XE9 (RAD X Seattle)
Правильно.
Для споров Си или Делфи полно других форумов.