Лидеры
Популярный контент
Показан контент с высокой репутацией 13.01.2017 во всех областях
-
[Статья] Онлайн-сервисы в помощь разработчику по дизайну
#WAMACO и 3 других отреагировал Равиль Зарипов (ZuBy) за тема
Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html Автор: Зарипов Равиль @ZuBy Описание: Онлайн-сервисы в помощь разработчику по дизайну4 балла -
Быстродействие при использовании TCrititcalSection и TThread
Kitty и ещё один отреагировал Камышев Александр за вопрос
думаю эти два куска показывают основную обработку OnCommandGet, из хедера: typedef std::deque< strDBQueueMember* > db_queue_deque; db_queue_deque db_queue; TCriticalSection *cs_pool, *cs_queue, *cs_files; TInterlocked *Interlocked; 3600 это запрос без обращения к бд, только данные из пула с критическими секциями ну и вот это обязательно в System.Classes.pas в Embarcadero\Studio\17.0\source\rtl\common\ constructor TThread.Create(CreateSuspended: Boolean); -//- {$IF Defined(MSWINDOWS)} //#define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000 - это для информации //#define CREATE_SUSPENDED 0x00000004 - это для информации // заменить FHandle := BeginThread(nil, 0, @ThreadProc, Pointer(Self), CREATE_SUSPENDED, FThreadID); // на FHandle := BeginThread(nil, 65536, @ThreadProc, Pointer(Self), $00010004, FThreadID); System.Classes.pas добавить в проект. и будет вам счастье2 балла -
как позвонить на iPhone?
Brovin Yaroslav и ещё один отреагировал Равиль Зарипов (ZuBy) за вопрос
вот мой рабочий вариант { ********************************************************** } { } { 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 по аналогии с другими фреймворками и обновил кеш SDK2 балла -
Scanline и Draw под FMX
MaratBest и ещё один отреагировал Равиль Зарипов (ZuBy) за вопрос
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 балла -
Можно поиграться с подменой: IFMXSystemFontService = interface(IInterface) ['{62017F22-ADF1-44D9-A21D-796D8C7F3CF0}'] function GetDefaultFontFamilyName: string; function GetDefaultFontSize: Single; end;2 балла
-
задать шрифт (default)
Rusland и ещё один отреагировал Равиль Зарипов (ZuBy) за вопрос
не хорошо так выражаться, можно и бан получить то что у тебя 100 форм это твоя проблема то что тебе лень прописать одну строчку в создании одного типа компонентов, то думаю что там говно-код и если бы ты понял, что я предлагаю, ты бы уже давно реализовал, а не писал на форуме "остроумный" пост, в коде добавляется только одна строчка и это не ApplyFontToForm (если там не говно-код) я бы предложил еще один кардинальный вариант, но не буду2 балла -
задать шрифт (default)
Rusland и ещё один отреагировал Равиль Зарипов (ZuBy) за вопрос
"я не хочу думать! я хочу кнопку, нажимаешь и все работает" как я вижу эту реализацию: делается отдельный модуль, в который перемещается код 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'); даже незнаю как можно сделать проще2 балла -
Проблема со свойством "GroupName"
Brovin Yaroslav отреагировал Равиль Зарипов (ZuBy) за вопрос
намёк <TSpeedButton>.StaysPressed := false;1 балл -
задать шрифт (default)
Rusland отреагировал Дмитрий Ш. за вопрос
des80, с такой позицией помощи можно не ждать. хамству тут не место1 балл -
Компоненты поверх WebBrowser
Rusland отреагировал Равиль Зарипов (ZuBy) за вопрос
такой возможности пока нет, потому что нативные компоненты всегда располагаются выше стилизованных. ждать нужно будущих версии студии, там будут нативные компоненты под андроид и ZOrder1 балл -
Delphi 10.1 пропало событие onDblClick в StringGrid
Rusland отреагировал Равиль Зарипов (ZuBy) за вопрос
временное решение DblClick.zip1 балл -
В Add Planform нет iOS Simulator
Равиль Зарипов (ZuBy) отреагировал Vitaldj за вопрос
Нет. Если только писать на Delphi и на симуляторе1 балл -
1 балл
-
Ссылка: https://habrahabr.ru/post/318876/ Автор: Error Описание: Delphi и C++Builder разработчики, использующие VCL не по наслышке знают о вездесущей проблеме мерцания контролов. Мерцание происходит при перерисовке, вследствие того, что сначала отрисовываеться фон компонента, и только потом сам компонент. И если в случае с наследниками от TWinControl частичным решением проблемы является установка свойства DoubleBuffered в True, что заставляет контрол отрисовываться в буфере(однако DoubleBuffered работает тоже не идеально, к прим.: контрол перестает быть прозрачным), то в случае с TGraphicControl решение с DoubleBuffered просто невозможно, из-за отсутствия у TGraphicControl окна, установка же DoubleBuffered в True у родителя не помогает, из-за того что отрисовка вложенных TGraphicControl-ов происходит уже после прорисовки родителя в буфере. Обычно остается только одно — смириться с мерцанием, и максимально упростить отрисовку для минимизации эффекта, или использовать по возможности исключительно TWinControl-ы, что не всегда возможно и удобно. Однажды намучившись с мерцанием, я не выдержал и решил решить эту проблему, раз и навсегда! ...1 балл
-
Описание TfgRatingBar
rareMax отреагировал Brovin Yaroslav за тема
Добрый день, Пока находится на доработке. Финальные штрихи.1 балл