-
Постов
2 517 -
Зарегистрирован
-
Посещение
-
Победитель дней
264
Активность репутации
-
Равиль Зарипов (ZuBy) получил реакцию от MaratBest в Scanline и Draw под FMX
uses FMX.Utils; procedure TForm7.Button1Click(Sender: TObject); var gamecanvas: TBitmap; i, j: integer; bitData: TBitmapData; p: PAlphaColorArray; begin gamecanvas := TBitmap.Create(256, 256); try if gamecanvas.Map(TMapAccess.ReadWrite, bitData) then begin for i := 0 to 255 do begin p := bitData.GetScanline(i); for j := 0 to 255 do p[j] := TAlphaColorF.Create(random(255) / 255, random(255) / 255, random(255) / 255, 1).ToAlphaColor; end; gamecanvas.Unmap(bitData); self.Canvas.BeginScene(); self.Canvas.DrawBitmap(gamecanvas, gamecanvas.BoundsF, RectF(0, 0, 256, 256), 1); self.Canvas.EndScene; end; finally gamecanvas.Free; end; end;
-
Равиль Зарипов (ZuBy) получил реакцию от enatechno в В Add Planform нет iOS Simulator
ребята ну вы чего?
http://docwiki.embarcadero.com/RADStudio/Berlin/en/Running_Your_iOS_Application_on_the_iOS_Simulator
-
Равиль Зарипов (ZuBy) получил реакцию от #WAMACO в [Статья] Онлайн-сервисы в помощь разработчику по дизайну
Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
Автор: Зарипов Равиль @ZuBy
Описание: Онлайн-сервисы в помощь разработчику по дизайну
-
Равиль Зарипов (ZuBy) получил реакцию от rakhmet в Алфавитный скроллинг для ListView
на андроиде не проверял, но должно работать
alphaLVS_Berlin.zip
-
Равиль Зарипов (ZuBy) получил реакцию от Vitaldj в [Статья] Онлайн-сервисы в помощь разработчику по дизайну
Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
Автор: Зарипов Равиль @ZuBy
Описание: Онлайн-сервисы в помощь разработчику по дизайну
-
Равиль Зарипов (ZuBy) получил реакцию от DimArt в [Статья] Онлайн-сервисы в помощь разработчику по дизайну
Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
Автор: Зарипов Равиль @ZuBy
Описание: Онлайн-сервисы в помощь разработчику по дизайну
-
Равиль Зарипов (ZuBy) отреагировална sinuke в [Статья] Жизненный цикл объектов в Delphi. Часть 1. Windows, OSX. Что же использовать Destroy, Free, FreeAndNil или DisposeOf?
тут еще не совсем кроссплатформа, а только Вин и МакОС. мобильные платформы в следующей части и там есть нюансы
-
Равиль Зарипов (ZuBy) отреагировална Andrey Efimov в Не работает с вибрацией
Права дали точно?
Вот вам мой класс для работы с вибрацией, там есть код проверки прав - https://github.com/AndrewEfimov/Android-API/blob/master/Vibrator/class/Vibrator.Android.pas (https://github.com/AndrewEfimov/Android-API/tree/master/Vibrator, класс и тестовое приложение)
либо посмотрите в настройках приложения, раздел с правами.
-
Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в [Статья] Жизненный цикл объектов в Delphi. Часть 1. Windows, OSX. Что же использовать Destroy, Free, FreeAndNil или DisposeOf?
Ссылка: http://yaroslavbrovin.ru/object_life_cycle_in_delphi_part_1_windows_osx-ru/ Автор: Ярослав Бровин С появлением мобильных платформ в мире Delphi, произошли серьезные изменения в жизненном цикле объектов. Послужившие причиной многих проблем и вопросов, а как правильно кроссплатформенно удалять объекты. В этой статье детально рассматриваем жизненный цикл объектов на разных платформах и даём ответы на важные вопросы, которые могут побеспокоить даже опытных Delphi разработчиков.
-
Равиль Зарипов (ZuBy) получил реакцию от Mars M в [Статья] Онлайн-сервисы в помощь разработчику по дизайну
Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
Автор: Зарипов Равиль @ZuBy
Описание: Онлайн-сервисы в помощь разработчику по дизайну
-
Равиль Зарипов (ZuBy) получил реакцию от Andrey Efimov в [Статья] Онлайн-сервисы в помощь разработчику по дизайну
Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
Автор: Зарипов Равиль @ZuBy
Описание: Онлайн-сервисы в помощь разработчику по дизайну
-
Равиль Зарипов (ZuBy) получил реакцию от Kitty в [Статья] Онлайн-сервисы в помощь разработчику по дизайну
Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
Автор: Зарипов Равиль @ZuBy
Описание: Онлайн-сервисы в помощь разработчику по дизайну
-
Равиль Зарипов (ZuBy) получил реакцию от Alex Bozhko в [Статья] Онлайн-сервисы в помощь разработчику по дизайну
Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
Автор: Зарипов Равиль @ZuBy
Описание: Онлайн-сервисы в помощь разработчику по дизайну
-
Равиль Зарипов (ZuBy) получил реакцию от Martifan в [Статья] Онлайн-сервисы в помощь разработчику по дизайну
Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
Автор: Зарипов Равиль @ZuBy
Описание: Онлайн-сервисы в помощь разработчику по дизайну
-
Равиль Зарипов (ZuBy) получил реакцию от Brovin Yaroslav в как позвонить на iPhone?
вот мой рабочий вариант
{ ********************************************************** } { } { CodeGear Delphi Runtime Library } { } { Delphi-Objective-C Bridge } { Interfaces for Cocoa framework CoreTelephony } { } { Copyright (c) 2010, Apple Inc. All rights reserved. } { } { Translator: Embarcadero Technologies, Inc. } { Copyright(c) 2016 Embarcadero Technologies, Inc. } { All rights reserved } { } { ********************************************************** } unit iOSapi.CoreTelephony; interface uses Macapi.ObjectiveC, iOSapi.CocoaTypes, iOSapi.Foundation; // ===== External functions ===== const libCoreTelephony = '/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony'; type {$M+} // ===== Forward declarations ===== CTCarrier = interface; CTTelephonyNetworkInfo = interface; CTCall = interface; CTCallCenter = interface; // ===== Interface declarations ===== CTCarrierClass = interface(NSObjectClass) ['{FA14F6EF-18EF-4AE0-A115-5D5819B05A32}'] end; CTCarrier = interface(NSObject) ['{7FF111BF-7573-4BD2-881F-0B614DD5C01E}'] function allowsVOIP: Boolean; cdecl; function carrierName: NSString; cdecl; function isoCountryCode: NSString; cdecl; function mobileCountryCode: NSString; cdecl; function mobileNetworkCode: NSString; cdecl; end; TCTCarrier = class(TOCGenericImport<CTCarrierClass, CTCarrier>) end; TCellularProviderNotifier = procedure(const Data: CTCarrier) of object; CTTelephonyNetworkInfoClass = interface(NSObjectClass) ['{28EB8488-EE8F-4967-B8A8-6BF96AD4382D}'] end; CTTelephonyNetworkInfo = interface(NSObject) ['{F75CE940-A78E-4C64-812E-0576386B582D}'] function subscriberCellularProvider: CTCarrier; cdecl; procedure setSubscriberCellularProviderDidUpdateNotifier(Handler: TCellularProviderNotifier); cdecl; end; TCTTelephonyNetworkInfo = class(TOCGenericImport<CTTelephonyNetworkInfoClass, CTTelephonyNetworkInfo>) end; CTCallClass = interface(NSObjectClass) ['{1FA8C69C-57FA-4607-ACBA-547C9636312F}'] end; CTCall = interface(NSObject) ['{31625956-A516-437B-A385-7DF292D6FB5A}'] function callID: NSString; cdecl; function callState: NSString; cdecl; end; TCTCall = class(TOCGenericImport<CTCallClass, CTCall>) end; TCallEventHandler = procedure(const Data: CTCall) of object; CTCallCenterClass = interface(NSObjectClass) ['{A28B0E07-ED5A-4C05-82DA-E9FE4073E14D}'] end; CTCallCenter = interface(NSObject) ['{0FDB7AC7-B379-4E20-8D72-F1C11EA32EB6}'] procedure setCallEventHandler(EventHandler: TCallEventHandler); cdecl; function currentCalls: NSSet; cdecl; end; TCTCallCenter = class(TOCGenericImport<CTCallCenterClass, CTCallCenter>) end; // exported string consts function CTCallStateDialing: NSString; function CTCallStateIncoming: NSString; function CTCallStateConnected: NSString; function CTCallStateDisconnected: NSString; implementation {$IF defined(IOS) and defined(CPUARM)} uses Posix.Dlfcn; {$ENDIF IOS} const CoreTelephonyFwk: string = '/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony'; function CTCallStateDialing: NSString; begin Result := CocoaNSStringConst(CoreTelephonyFwk, 'CTCallStateDialing'); end; function CTCallStateIncoming: NSString; begin Result := CocoaNSStringConst(CoreTelephonyFwk, 'CTCallStateIncoming'); end; function CTCallStateConnected: NSString; begin Result := CocoaNSStringConst(CoreTelephonyFwk, 'CTCallStateConnected'); end; function CTCallStateDisconnected: NSString; begin Result := CocoaNSStringConst(CoreTelephonyFwk, 'CTCallStateDisconnected'); end; {$IF defined(IOS) and defined(CPUARM)} var CoreTelephonyModule: THandle; initialization CoreTelephonyModule := dlopen(MarshaledAString(libCoreTelephony), RTLD_LAZY); finalization dlclose(CoreTelephonyModule); {$ENDIF IOS} end. UPDATE Я еще в SDK прописал Framework CoreTelephony по аналогии с другими фреймворками и обновил кеш SDK
-
Равиль Зарипов (ZuBy) получил реакцию от Kitty в Scanline и Draw под FMX
uses FMX.Utils; procedure TForm7.Button1Click(Sender: TObject); var gamecanvas: TBitmap; i, j: integer; bitData: TBitmapData; p: PAlphaColorArray; begin gamecanvas := TBitmap.Create(256, 256); try if gamecanvas.Map(TMapAccess.ReadWrite, bitData) then begin for i := 0 to 255 do begin p := bitData.GetScanline(i); for j := 0 to 255 do p[j] := TAlphaColorF.Create(random(255) / 255, random(255) / 255, random(255) / 255, 1).ToAlphaColor; end; gamecanvas.Unmap(bitData); self.Canvas.BeginScene(); self.Canvas.DrawBitmap(gamecanvas, gamecanvas.BoundsF, RectF(0, 0, 256, 256), 1); self.Canvas.EndScene; end; finally gamecanvas.Free; end; end;
-
Равиль Зарипов (ZuBy) получил реакцию от Brovin Yaroslav в Проблема со свойством "GroupName"
намёк
<TSpeedButton>.StaysPressed := false; -
Равиль Зарипов (ZuBy) получил реакцию от Vitaldj в как позвонить на iPhone?
вот мой рабочий вариант
{ ********************************************************** } { } { CodeGear Delphi Runtime Library } { } { Delphi-Objective-C Bridge } { Interfaces for Cocoa framework CoreTelephony } { } { Copyright (c) 2010, Apple Inc. All rights reserved. } { } { Translator: Embarcadero Technologies, Inc. } { Copyright(c) 2016 Embarcadero Technologies, Inc. } { All rights reserved } { } { ********************************************************** } unit iOSapi.CoreTelephony; interface uses Macapi.ObjectiveC, iOSapi.CocoaTypes, iOSapi.Foundation; // ===== External functions ===== const libCoreTelephony = '/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony'; type {$M+} // ===== Forward declarations ===== CTCarrier = interface; CTTelephonyNetworkInfo = interface; CTCall = interface; CTCallCenter = interface; // ===== Interface declarations ===== CTCarrierClass = interface(NSObjectClass) ['{FA14F6EF-18EF-4AE0-A115-5D5819B05A32}'] end; CTCarrier = interface(NSObject) ['{7FF111BF-7573-4BD2-881F-0B614DD5C01E}'] function allowsVOIP: Boolean; cdecl; function carrierName: NSString; cdecl; function isoCountryCode: NSString; cdecl; function mobileCountryCode: NSString; cdecl; function mobileNetworkCode: NSString; cdecl; end; TCTCarrier = class(TOCGenericImport<CTCarrierClass, CTCarrier>) end; TCellularProviderNotifier = procedure(const Data: CTCarrier) of object; CTTelephonyNetworkInfoClass = interface(NSObjectClass) ['{28EB8488-EE8F-4967-B8A8-6BF96AD4382D}'] end; CTTelephonyNetworkInfo = interface(NSObject) ['{F75CE940-A78E-4C64-812E-0576386B582D}'] function subscriberCellularProvider: CTCarrier; cdecl; procedure setSubscriberCellularProviderDidUpdateNotifier(Handler: TCellularProviderNotifier); cdecl; end; TCTTelephonyNetworkInfo = class(TOCGenericImport<CTTelephonyNetworkInfoClass, CTTelephonyNetworkInfo>) end; CTCallClass = interface(NSObjectClass) ['{1FA8C69C-57FA-4607-ACBA-547C9636312F}'] end; CTCall = interface(NSObject) ['{31625956-A516-437B-A385-7DF292D6FB5A}'] function callID: NSString; cdecl; function callState: NSString; cdecl; end; TCTCall = class(TOCGenericImport<CTCallClass, CTCall>) end; TCallEventHandler = procedure(const Data: CTCall) of object; CTCallCenterClass = interface(NSObjectClass) ['{A28B0E07-ED5A-4C05-82DA-E9FE4073E14D}'] end; CTCallCenter = interface(NSObject) ['{0FDB7AC7-B379-4E20-8D72-F1C11EA32EB6}'] procedure setCallEventHandler(EventHandler: TCallEventHandler); cdecl; function currentCalls: NSSet; cdecl; end; TCTCallCenter = class(TOCGenericImport<CTCallCenterClass, CTCallCenter>) end; // exported string consts function CTCallStateDialing: NSString; function CTCallStateIncoming: NSString; function CTCallStateConnected: NSString; function CTCallStateDisconnected: NSString; implementation {$IF defined(IOS) and defined(CPUARM)} uses Posix.Dlfcn; {$ENDIF IOS} const CoreTelephonyFwk: string = '/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony'; function CTCallStateDialing: NSString; begin Result := CocoaNSStringConst(CoreTelephonyFwk, 'CTCallStateDialing'); end; function CTCallStateIncoming: NSString; begin Result := CocoaNSStringConst(CoreTelephonyFwk, 'CTCallStateIncoming'); end; function CTCallStateConnected: NSString; begin Result := CocoaNSStringConst(CoreTelephonyFwk, 'CTCallStateConnected'); end; function CTCallStateDisconnected: NSString; begin Result := CocoaNSStringConst(CoreTelephonyFwk, 'CTCallStateDisconnected'); end; {$IF defined(IOS) and defined(CPUARM)} var CoreTelephonyModule: THandle; initialization CoreTelephonyModule := dlopen(MarshaledAString(libCoreTelephony), RTLD_LAZY); finalization dlclose(CoreTelephonyModule); {$ENDIF IOS} end. UPDATE Я еще в SDK прописал Framework CoreTelephony по аналогии с другими фреймворками и обновил кеш SDK
-
Равиль Зарипов (ZuBy) отреагировална Vitaldj в В Add Planform нет iOS Simulator
Нет. Если только писать на Delphi и на симуляторе
-
Равиль Зарипов (ZuBy) получил реакцию от Kitty в Кто нибудь знает какой приличный компонет под Windows для работы с картами?
В будущих версиях, в роадмэп все написано
-
Равиль Зарипов (ZuBy) получил реакцию от Brovin Yaroslav в Scanline и Draw под FMX
uses FMX.Utils; procedure TForm7.Button1Click(Sender: TObject); var gamecanvas: TBitmap; i, j: integer; bitData: TBitmapData; p: PAlphaColorArray; begin gamecanvas := TBitmap.Create(256, 256); try if gamecanvas.Map(TMapAccess.ReadWrite, bitData) then begin for i := 0 to 255 do begin p := bitData.GetScanline(i); for j := 0 to 255 do p[j] := TAlphaColorF.Create(random(255) / 255, random(255) / 255, random(255) / 255, 1).ToAlphaColor; end; gamecanvas.Unmap(bitData); self.Canvas.BeginScene(); self.Canvas.DrawBitmap(gamecanvas, gamecanvas.BoundsF, RectF(0, 0, 256, 256), 1); self.Canvas.EndScene; end; finally gamecanvas.Free; end; end;
-
Равиль Зарипов (ZuBy) получил реакцию от Rusland в Delphi 10.1 пропало событие onDblClick в StringGrid
временное решение
DblClick.zip
-
Равиль Зарипов (ZuBy) получил реакцию от Rusland в Компоненты поверх WebBrowser
такой возможности пока нет, потому что нативные компоненты всегда располагаются выше стилизованных.
ждать нужно будущих версии студии, там будут нативные компоненты под андроид и ZOrder
-
Равиль Зарипов (ZuBy) получил реакцию от Rusland в задать шрифт (default)
не хорошо так выражаться, можно и бан получить
то что у тебя 100 форм это твоя проблема то что тебе лень прописать одну строчку в создании одного типа компонентов, то думаю что там говно-код и если бы ты понял, что я предлагаю, ты бы уже давно реализовал, а не писал на форуме "остроумный" пост, в коде добавляется только одна строчка и это не ApplyFontToForm (если там не говно-код) я бы предложил еще один кардинальный вариант, но не буду
-
Равиль Зарипов (ZuBy) получил реакцию от Rusland в задать шрифт (default)
"я не хочу думать! я хочу кнопку, нажимаешь и все работает"
как я вижу эту реализацию:
делается отдельный модуль, в который перемещается код
procedure ChangeFont(const aControl: TControl; const aFontName: string); const StyledSett = [TStyledSetting.Size, TStyledSetting.Style, TStyledSetting.FontColor]; var aTextSettings: ITextSettings; I: Integer; begin if aControl is TListView then begin (aControl as TListView).ItemAppearanceObjects.ItemObjects.Text.Font.Family := aFontName; (aControl as TListView).ItemAppearanceObjects.ItemObjects.Detail.Font.Family := aFontName; end else begin if Supports(aControl, ITextSettings, aTextSettings) then begin aTextSettings.StyledSettings := StyledSett; aTextSettings.TextSettings.Font.Family := aFontName; end; for I := 0 to aControl.ControlsCount - 1 do ChangeFont(aControl.Controls[I], aFontName); end; end; .................................................. procedure ApplyFontToForm(const aForm: TForm; const aFontName: string;); var I: Integer; begin for I := 0 to aForm.ComponentCount - 1 do begin if aForm.Components[I] is TControl then ChangeFont(aForm.Components[I] as TControl, aFontName); end; end; прописываем ChangeFont и ApplyFontToForm до implementation
и в форме после создания дин. компонентов и/или в OnShow пишем ApplyFontToForm(Form30, 'Roboto');
даже незнаю как можно сделать проще