-
Постов
135 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Активность репутации
-
zairkz получил реакцию от Kitty в OnButtonClick vs OnItemClick
procedure TForm1.ListView1ItemClickEx(const Sender: TObject; ItemIndex: integer; const [Ref] LocalClickPos: TPointF; const ItemObject: TListItemDrawable);
begin
if ItemObject is TListItemTextButton then
begin
//Bla Bla Bla вообщем сюда перенесите OnButtonClick .
end;
//Next Bla Bla Bla
end;
-
zairkz отреагировална Равиль Зарипов (ZuBy) в ListView Color Helper
версия для Seatle ColorListView.zip
весь код для отрисовки кастомного цвета
1) копируем себе и открываем FMX.ListView
2) Ctrl+F -> DrawItemsFill
3) Вставляем код
// отрисовываем кастомный цвет........................................... // procedure TListViewBase.DrawItemsFill(const StartItem................. if TListViewItem(ListItem).Data['aUseCustomColor'].AsBoolean then FBrush.Color := TListViewItem(ListItem).Data['aCustomColor'].AsInteger; // ...................................................................... после
if FAlternatingColors and (AltIndex mod 2 = 1) then FBrush.Color := FItemStyleFillAltColor; 4) Подключаем в своём проекте после стандартного FMX.ListView
-
zairkz отреагировална beklexx в comboBoxChange поймать любое нажатие
Так OnChange на то и OnChange ... может вас устроит OnClosePopup ?
-
-
zairkz отреагировална RoschinSpb в [XE8] Новая иерархия классов
Возможно, что вопрос уже потерял актуальность, но тут есть дерево наследования всех классов пакета FMX. Инфа немного впереди паровоза, т. е. актуальна для следующей версией после RAD Studio 10.
-
zairkz отреагировална Rusland в Есть ли обучалка StyleBook?
В этом видео есть некоторые объяснения про StyleBook
-
-
zairkz отреагировална Равиль Зарипов (ZuBy) в RAD 11 на подходе?
1) Кастомный стиль в виде плитки *
2) ListView с горизонтальной прокруткой, профиксил баги, которые появились из-за этого *
3) Отступ сверху от первого Itema, задается вручную. (нужно было сделать, чтобы решить без многочисленных костылей одну ситуацию)
4) Кастомные цвета для отдельных Item'ов
5) разные хелперы и внутренние настройки
* можно посмотреть тут
скрин выполненной работы
-
zairkz отреагировална Равиль Зарипов (ZuBy) в RAD 11 на подходе?
главное чтобы они не сломали ListView, у меня столько изменении для него написано...
Снова переворачивать ListView в другую плоскость, стили, отступы и прочие мелочи.
А так изменения вроде классные
-
zairkz отреагировална krapotkin в RAD 11 на подходе?
Черт возьми! Как интересно читать! Хочу хочу)))
-
zairkz отреагировална Равиль Зарипов (ZuBy) в FindStyleResource возращает nil
lbName := Item.FindStyleResource('lbname') as TLabel; // Здесь получаю nil
-
zairkz отреагировална dnekrasov в Глобальные хоткеи в OS X
Ещё в AppKit.framework у NSEvent есть такой метод как addGlobalMonitorForEventsMatchingMask. Может кто использовал?
-
zairkz отреагировална dnekrasov в Глобальные хоткеи в OS X
Хм... Сам задал вопрос и сам же на него отвечаю...
Нашёл ещё один вариант:
Импортировал несколько методов из Carbon.framework и всё получилось:
uses Macapi.CocoaTypes, Macapi.ObjCRuntime, Macapi.CoreFoundation, Macapi.CoreServices; const HITFwk = '/System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/HIToolbox'; type EventParamName = OSType; EventParamNamePtr = ^EventParamName; EventParamType = OSType; EventParamTypePtr = ^EventParamType; EventRef = ^SInt32; EventRefPtr = ^EventRef; EventHotKeyIDPtr = ^EventHotKeyID; EventHotKeyID = record signature: OSType; id: UInt32; end; EventTypeSpec = record eventClass: OSType; eventKind: UInt32; end; EventTypeSpecPtr = ^EventTypeSpec; EventTargetRef = ^SInt32; EventHotKeyRef = ^SInt32; OptionBits = UInt32; ByteCountPtr = ^ByteCount; EventHandlerRef = ^SInt32; EventHandlerRefPtr = ^EventHandlerRef; EventHandlerCallRef = ^SInt32; EventHandlerCallRefPtr = ^EventHandlerCallRef; type EventHandlerProcPtr = function(inHandlerCallRef: EventHandlerCallRef; inEvent: EventRef; inUserData: Pointer): OSStatus; cdecl; EventHandlerUPP = EventHandlerProcPtr; const kEventHotKeyNoOptions = ; kEventHotKeyExclusive = 1 shl ; kEventRawKeyDown = 1; kEventRawKeyRepeat = 2; kEventRawKeyUp = 3; kEventRawKeyModifiersChanged = 4; kEventHotKeyPressed = 5; kEventHotKeyReleased = 6; kEventClassKeyboard: UInt32 = Ord('k') shl 24 + Ord('e') shl 16 + Ord('y') shl 8 + Ord('b'); typeEventHotKeyID: UInt32 = Ord('h') shl 24 + Ord('k') shl 16 + Ord('i') shl 8 + Ord('d'); typeWildCard: UInt32 = Ord('*') shl 24 + Ord('*') shl 16 + Ord('*') shl 8 + Ord('*'); kEventParamDirectObject: UInt32 = Ord('-') shl 24 + Ord('-') shl 16 + Ord('-') shl 8 + Ord('-'); const cmdKeyBit = 8; { command key down?} shiftKeyBit = 9; { shift key down?} optionKeyBit = 11; { option key down?} controlKeyBit = 12; { control key down?} cmdKey = 1 shl cmdKeyBit; shiftKey = 1 shl shiftKeyBit; optionKey = 1 shl optionKeyBit; controlKey = 1 shl controlKeyBit; // in version 10.0 and later in Carbon.framework function GetApplicationEventTarget: EventTargetRef; cdecl; external HITFwk name _PU + 'GetApplicationEventTarget'; {$EXTERNALSYM GetApplicationEventTarget} // in version 10.0 and later in Carbon.framework function InstallEventHandler(inTarget: EventTargetRef; inHandler: EventHandlerUPP; inNumTypes: UInt32; {const} inList: {variable-size-array} EventTypeSpecPtr; inUserData: Pointer; outRef: EventHandlerRefPtr { can be NULL } ): OSStatus; cdecl; external HITFwk name _PU + 'InstallEventHandler'; {$EXTERNALSYM InstallEventHandler} // in version 10.0 and later in Carbon.framework function RemoveEventHandler( inHandlerRef: EventHandlerRef ): OSStatus; cdecl; external HITFwk name _PU + 'RemoveEventHandler'; {$EXTERNALSYM RemoveEventHandler} // in version 10.0 and later in Carbon.framework function RegisterEventHotKey(inHotKeyCode: UInt32; inHotKeyModifiers: UInt32; inHotKeyID: EventHotKeyID; inTarget: EventTargetRef; inOptions: OptionBits; var outRef: EventHotKeyRef): OSStatus; cdecl; external HITFwk name _PU + 'RegisterEventHotKey'; {$EXTERNALSYM RegisterEventHotKey} // in version 10.0 and later in Carbon.framework function UnregisterEventHotKey(inHotKey: EventHotKeyRef): OSStatus; cdecl; external HITFwk name _PU + 'UnregisterEventHotKey'; {$EXTERNALSYM UnregisterEventHotKey} // in version 10.0 and later in Carbon.framework function GetEventParameter(inEvent: EventRef; inName: EventParamName; inDesiredType: EventParamType; outActualType: EventParamTypePtr { can be NULL }; inBufferSize: ByteCount; outActualSize: ByteCountPtr { can be NULL }; outData: Pointer { can be NULL } ): OSStatus; cdecl; external HITFwk name _PU + 'GetEventParameter'; {$EXTERNALSYM GetEventParameter}
-
zairkz получил реакцию от Sergionn в Легализация доходов, подача декларации и уплата налогов
Мы тоже подаём в "электрическом" виде, через розетку 220В
-
zairkz отреагировална #WAMACO в Легализация доходов, подача декларации и уплата налогов
с валютными заказчиками нужен паспорт сделки и подробный договор, иначе налоговая будет придираться!
работайте через каких-нибудь агрегаторов (paypal, Авангейт, Пейпро), деньги можно вывести на карту pioneer
если будешь сам составлять договор, то особо обрати внимание на сроки платежей в договоре. все сроки должны сходится и документы предоставляться вовремя
-
zairkz отреагировална Евгений Корепов в Легализация доходов, подача декларации и уплата налогов
Так вышло, что моё хобби - программирование на Delphi, стало приносить деньги. Хочу честно заплатить подоходный налог, как физическое лицо. Поделитесь опытом кто этим занимался.
На данный момент удалось выяснить что при подаче декларации заполняется Лист Б (доходы за рубежом), но налоговая требует заполнения каждой транзакции, ладно у меня их несколько десятков, а если тысячи? Фуру заказывать для перевозки декларации? Так же обязательно нужен ИНН и если не ошибаюсь КПП зарубежных организаций, где их взять? Хотя бы Гугла и его AdMod?
Так же налоговая требует справку НДФЛ2 приложить к декларации, хотя она уже у них есть - собственноручно отправлял с основного места работы.
Забавно что сами работники налоговой смотрят как на дурака и в приватных разговорах рекомендуют забить на это дело ;-)
-
zairkz получил реакцию от Rusland в Легализация доходов, подача декларации и уплата налогов
Мы тоже подаём в "электрическом" виде, через розетку 220В
-
zairkz отреагировална kami в Легализация доходов, подача декларации и уплата налогов
Понимаю, что несколько не по теме, но в приватных разговорах мне аналогичные работники говорили "пока ваш оборот не превысил (сумму не помню, но большая) - можете спать спокойно, никто вами не заинтересуется".
Декларацию можно подавать, насколько я знаю, и в электрическом виде.
-
zairkz отреагировална Евгений Корепов в Устройства с Intel Atom
Fonepad
Fonepad 7
Fonepad 8
Fonepad ME371MG
Fonepad Note 6
Lenovo Mobile K900
Lenovo TAB S8
MeMO Pad 7
MeMO Pad 8
MeMO Pad FHD 10
MeMO Pad ME181CX
Transformer AiO P1801 P1801-T
Transformer AiO P1802 P1802-T
Transformer Pad (TF103C) K010
Transformer Pad (TF103C) K010_3
Transformer Pad (TF103CE) K010E
Transformer Pad (TF103CE) K010E_1
Transformer Pad (TF103CG) K018
Transformer Pad (TF303CL) K014
Transformer Pad (TF303K) K01B
Transformer Pad Infinity (TF701T) K00C
Transformer Pad Infinity TF700KL
Transformer Pad K010_1
Transformer Pad TF300T TF300T
Transformer Pad TF300TG TF300TG
Transformer Pad TF300TL TF300TL
Transformer Pad TF502T TF502T
Transformer Pad (TF103C)
Transformer Pad (TF103CG)
Transformer Pad (TF303CL)
Venue 7
VivoTab Note 8 (M80TA)
Xolo_X900
ZenFone 2 (ZE500CL) ASUS_Z00D
ZenFone 2 (ZE550ML) Z008_1
ZenFone 2 (ZE551ML) Z00A
ZenFone 2 (ZE551ML) Z00A_1
ZenFone 2 (ZE550ML)
ZenFone 2 (ZE551ML)
ZenFone 4 (A400CG) ASUS_T00I
ZenFone 4 (A450CG) ASUS_T00Q
ZenFone 4 (A400CG)
ZenFone 4 (A450CG)
ZenFone 5 (A500CG) ASUS_T00F1
ZenFone 5 (A501CG) ASUS_T00J1
ZenFone 5 (A502CG) ASUS_T00K
ZenFone 5 ASUS_T00F
ZenFone 5 ASUS_T00J
ZenFone 5 (A501CG)
ZenFone 5 (A502CG)
ZenFone 6 (A600CG) ASUS_T00G
ZenFone 6 (A601CG) ASUS_Z002
ZenFone 6 (A600CG)
ZenFone C (ZC451CG) ASUS_Z007
ZenFone C (ZC451CG)
Zenfone Go (ASUS_Z00SD) ASUS_Z00SD
Zenfone Go (ASUS_Z00VD) ASUS_Z00VD
Zenfone GO ASUS_X013D_1
Zenfone GO ASUS_X013D_2
Zenfone GO ASUS_X014D_1
Zenfone GO ASUS_X014D_2
Zenfone MAX (ZC550KL) ASUS_Z010
ZenFone Selfie (ZD551KL) ASUS_Z00U_1
ZenFone Selfie (ZD551KL) ASUS_Z00U_2
ZenFone Zoom
ZenFone Zoom (ZX551ML) Z00X
ZenFone Zoom (ZX551ML) Z00X_1
ZenFone Zoom (ZX551ML)
ZenPad 10 (Z300C) P023_1
ZenPad 10 (Z300C) P023_2
ZenPad 10 (Z300CG) P021
ZenPad 10 (Z300CG) P021_1
ZenPad 10 (Z300CL) P01T_1
ZenPad 7.0 (Z370C) P01W
ZenPad 7.0 (Z370CG) P01V_1
ZenPad 7.0 (Z370CG) P01V_2
ZenPad 7.0 (Z370KL) P002_2
ZenPad 7.0(Z370KL) P002_1
Zenpad 8 LTE P024_2
Zenpad 8 LTE P024_3
Zenpad 8 LTE P024_4
Zenpad 8.0 (Z380C) P022_1
Zenpad 8.0 (Z380C) P022_2
Zenpad 8.0 (Z380KL) P024_1
ZenPad C 7.0 (Z170C) P01Z
ZenPad C 7.0 (Z170C) P01Z_2
ZenPad C 7.0 (Z170CG) P01Y
ZenPad C 7.0 (Z170CG) P01Y_2
ZenPad C 7.0 (Z170MG) P001
ZenPad C 7.0 (Z170MG) P001_2
ZenPad C 7.0 P01Y_S
ZenPad S 8.0
ZenPad S 8.0 (Z580C) P01M_2
ZenPad S 8.0 (Z580CA) P01M_1
ZenPad S 8.0 (Z580CA) P01M_3
ZenPad S 8.0 (Z580CA)
-
zairkz отреагировална kami в Изменить тип клавиатуры
что значит "просто показать клавиатуру"? Грид сам по себе не работает с клавиатурой, его дело - просто нарисовать содержимое. Чтобы ячейку можно было изменить, гридом каждый раз создается редактор, умеющий принимать фокус ввода, события от клавиатуры и т.п. Если его не создаете вы - его создаст сам грид, на основе своих предпочтений.
Допустим, что возможно показанной клавиатуре изменить тип программно. Но не думаю, что клавиатура нужна вам только в гриде. Получается - задача разрастается:
1. отловить поднятие клавиатуры
2. определить, что элемент, "поднявший" ее - находится в нужном гриде, в нужной колонке (а как? Лень смотреть код грида, но это будет нужно лезть через Parent-ы, определять принадлежность редактора к гриду, определять к какой колонке относится редактор)
3. Если все условия выполнены - менять тип клавиатуры.
И весь этот код не будет относиться к самому модулю с гридом напрямую. Плохо. Некрасиво.
-
zairkz отреагировална Равиль Зарипов (ZuBy) в Работа с ListView
procedure TForm3.Button1Click(Sender: TObject); begin with ListView1.Items.Add do begin Text := '...'; Data['STATUS'] := 'Signal'; end; with ListView1.Items.Add do begin Text := '...'; Data['STATUS'] := 'Normal'; end; ListView1.Resize; end; procedure TForm3.ListView1UpdateObjects(const Sender: TObject; const AItem: TListViewItem); var TextObject: TListItemText; begin TextObject := AItem.Objects.FindDrawable('STATUS') As TListItemText; if TextObject = nil then begin TextObject := TListItemText.Create(AItem); TextObject.Name := 'STATUS'; end; if TextObject.Text = 'Signal' Then TextObject.TextColor := TAlphaColorRec.Red else TextObject.TextColor := TAlphaColorRec.Black; end; остальное сами настроете
-
zairkz отреагировална Alex924 в [TMultiView] Текст кнопки вылезает за границы TMultiView в режиме NavigationPane
Всё оказалось даже проще, нужно выставить свойство ClipChildren у TMultiView в true и дочерние компоненты выходящие за границу автоматически скрываются!
-
zairkz отреагировална ivadimos в AniИндикатор на винде
FMX же юзает стилизацию той операционной системы, на которой Вы запускаете приложение.
Можете проверить на TSwitch компонентах и будете удивлены)
-
zairkz отреагировална kami в Передать значение в ITask
Так и делайте.
ParseItem(i). Емнип, значение будет размещено в стеке, так что последующие изменения переменной на уже созданный таск не повлияют.
-
zairkz отреагировална Евгений Корепов в Тормоза при первом переключении вкладок TTabControl
Проблема решена. Но решена методом научного тыка. Сделал так:
ATabItem:=TabControl.Add(); ATabItem.DisableDisappear:=True; и задержка исчезла совсем. Так же убрал все рекурсивные предварительные ApplyStyleLookup, тоже работает идеально.
Help и сайты с документацией молчат по поводу DisableDisappear - это свойство науке не известно. По крупицам собраны сакральные знания,позволяют догадываться что отвечает оно за "запрет контролу выгружать стиль, когда он скрывается со сцены (С) Brovin Yaroslav"