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

Равиль Зарипов (ZuBy)

Модераторы
  • Постов

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

  • Посещение

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

    264

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

  1. Like
    Равиль Зарипов (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;  
  2. Like
    Равиль Зарипов (ZuBy) получил реакцию от enatechno в В Add Planform нет iOS Simulator   
    ребята ну вы чего?
    http://docwiki.embarcadero.com/RADStudio/Berlin/en/Running_Your_iOS_Application_on_the_iOS_Simulator
     
  3. Like
    Равиль Зарипов (ZuBy) получил реакцию от #WAMACO в [Статья] Онлайн-сервисы в помощь разработчику по дизайну   
    Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
    Автор: Зарипов Равиль @ZuBy
    Описание: Онлайн-сервисы в помощь разработчику по дизайну
     
     
  4. Like
    Равиль Зарипов (ZuBy) получил реакцию от rakhmet в Алфавитный скроллинг для ListView   
    на андроиде не проверял, но должно работать
    alphaLVS_Berlin.zip
  5. Like
    Равиль Зарипов (ZuBy) получил реакцию от Vitaldj в [Статья] Онлайн-сервисы в помощь разработчику по дизайну   
    Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
    Автор: Зарипов Равиль @ZuBy
    Описание: Онлайн-сервисы в помощь разработчику по дизайну
     
     
  6. Like
    Равиль Зарипов (ZuBy) получил реакцию от DimArt в [Статья] Онлайн-сервисы в помощь разработчику по дизайну   
    Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
    Автор: Зарипов Равиль @ZuBy
    Описание: Онлайн-сервисы в помощь разработчику по дизайну
     
     
  7. Like
    Равиль Зарипов (ZuBy) отреагировална sinuke в [Статья] Жизненный цикл объектов в Delphi. Часть 1. Windows, OSX. Что же использовать Destroy, Free, FreeAndNil или DisposeOf?   
    тут еще не совсем кроссплатформа, а только Вин и МакОС. мобильные платформы в следующей части и там есть нюансы
  8. Like
    Равиль Зарипов (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, класс и тестовое приложение)
    либо посмотрите в настройках приложения, раздел с правами.
  9. Like
    Равиль Зарипов (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 разработчиков.
  10. Like
    Равиль Зарипов (ZuBy) получил реакцию от Mars M в [Статья] Онлайн-сервисы в помощь разработчику по дизайну   
    Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
    Автор: Зарипов Равиль @ZuBy
    Описание: Онлайн-сервисы в помощь разработчику по дизайну
     
     
  11. Like
    Равиль Зарипов (ZuBy) получил реакцию от Andrey Efimov в [Статья] Онлайн-сервисы в помощь разработчику по дизайну   
    Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
    Автор: Зарипов Равиль @ZuBy
    Описание: Онлайн-сервисы в помощь разработчику по дизайну
     
     
  12. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в [Статья] Онлайн-сервисы в помощь разработчику по дизайну   
    Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
    Автор: Зарипов Равиль @ZuBy
    Описание: Онлайн-сервисы в помощь разработчику по дизайну
     
     
  13. Like
    Равиль Зарипов (ZuBy) получил реакцию от Alex Bozhko в [Статья] Онлайн-сервисы в помощь разработчику по дизайну   
    Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
    Автор: Зарипов Равиль @ZuBy
    Описание: Онлайн-сервисы в помощь разработчику по дизайну
     
     
  14. Like
    Равиль Зарипов (ZuBy) получил реакцию от Martifan в [Статья] Онлайн-сервисы в помощь разработчику по дизайну   
    Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
    Автор: Зарипов Равиль @ZuBy
    Описание: Онлайн-сервисы в помощь разработчику по дизайну
     
     
  15. Like
    Равиль Зарипов (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
  16. Like
    Равиль Зарипов (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;  
  17. Like
    Равиль Зарипов (ZuBy) получил реакцию от Brovin Yaroslav в Проблема со свойством "GroupName"   
    намёк
    <TSpeedButton>.StaysPressed := false;
  18. Like
    Равиль Зарипов (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
  19. Like
    Равиль Зарипов (ZuBy) отреагировална Vitaldj в В Add Planform нет iOS Simulator   
    Нет. Если только писать на Delphi и на симуляторе
  20. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в Кто нибудь знает какой приличный компонет под Windows для работы с картами?   
    В будущих версиях, в роадмэп все написано
  21. Like
    Равиль Зарипов (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;  
  22. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в Delphi 10.1 пропало событие onDblClick в StringGrid   
    временное решение
    DblClick.zip
  23. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в Компоненты поверх WebBrowser   
    такой возможности пока нет, потому что нативные компоненты всегда располагаются выше стилизованных.
    ждать нужно будущих версии студии, там будут нативные компоненты под андроид и ZOrder
  24. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в задать шрифт (default)   
    не хорошо так выражаться, можно и бан получить
    то что у тебя 100 форм это твоя проблема то что тебе лень прописать одну строчку в создании одного типа компонентов, то думаю что там говно-код и если бы ты понял, что я предлагаю, ты бы уже давно реализовал, а не писал на форуме "остроумный" пост, в коде добавляется только одна строчка и это не ApplyFontToForm (если там не говно-код) я бы предложил еще один кардинальный вариант, но не буду
  25. Like
    Равиль Зарипов (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');
    даже незнаю как можно сделать проще
×
×
  • Создать...