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

Winexcel

Пользователи
  • Постов

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

  • Посещение

Весь контент Winexcel

  1. Здравствуйте, подскажите пожалуйста как узнать активна ли форма на данный момент или нет? Пробовал события OnActivate и OnDeactivate, они работают если переключатся между формами на рабочем столе, но если развернуть например другую форму из панели задач то событие OnDeactivate не срабатывает
  2. Здравствуйте! Стилизую TTreeView, хочу чтобы горизонтального скроллбара не было, вместо этого чтобы текст обрезался посимвольно просто если выходит за рамки Item, установил в стиле "text.trimming=Character" но не помогло, подскажите пожалуйста как сделать это.
  3. Здравствуйте! Имею следующую проблему: Поверх основной формы выравнивается прозрачная форма на которой лежит TTreeView, у TTreeViewItem есть стиль который предусматривает кнопку по нажатию на которую из дерева будет удалятся лист, если я нажимаю на кнопку закрыть(крестик что справа, сама кнопка в стиле представлена обычным TButton), то удаляется текущий айтем и все что в него вложены, код кнопки удаления: procedure ButtonCloseClick(Sender: TObject); var ItemSelected:TTreeViewItem; begin if TreeView1.Selected<>nil then begin if TreeView1.Selected.ParentItem<>nil then begin ItemSelected:=TreeView1.Selected; TreeView1.Selected.ParentItem.RemoveObject(ItemSelected); ItemSelected.DisposeOf; end else begin ItemSelected:=TreeView1.Selected; TreeView1.RemoveObject(ItemSelected); ItemSelected.DisposeOf; end; end; end; После того как я нажимаю на кнопку удаления один или более раз, я не могу получить доступ к основной форме над которой висит прозрачная форма, всё это очень похоже на DeadLock, но это не DeadLock, потому что если я кликну в любое другое место за пределами формы, например открою "Проводник", а затем кликну на основную форму, то та получает фокус и всё снова работает. Сделал небольшой костыль который иногда срабатывает, он имитирует клик по форме, что даёт ей фокус, но не всегда работает: procedure ClickOnControl(HWND:THandle; xPos,yPos:word); begin PostMessage(HWND,WM_LBUTTONDOWN,0,(yPos shl 16)+xPos); PostMessage(HWND,WM_LBUTTONUP,0,(yPos shl 16)+xPos); end; Из прозрачной формы посылаю клик когда она закрывается: ClickOnControl(FMXHandleToHWND(FormMain.Handle), Round(Point.X+10), Round(Point.Y+10)); Пробовал вызывать FormMain.Activate, не помогло. Посоветуйте пожалуйста как вернуть фокус форме при таких обстоятельствах.
  4. UP
  5. Реализовал логику данных спинов с нуля сам, но вопрос остаётся открытым.
  6. Доброго времени суток, подскажите пожалуйста как правильно стилизовать спины у TTabControl чтобы они были за границами самого TTabControl. Сама стилизация работает, вопрос в том как сделать так чтобы спины были за пределами TTabControl справа, например спины имеют ширину в 15 пикселей, я хочу задать у первого спина отступ Right= -15 (для левого спина), и у правого спина отступ Right = -30(для правого спина). Чтобы они вышли за границы компонента, пробовал сделать следующее: перегрузил метод DoUpdateTabBarButtons: procedure TChromeTabControl.DoUpdateTabBarButtons(const TabBarButtons: FMX.TabControl.TTabControl.TTabBarButtons; const TabPosition: TTabPosition; const Content: TContent; var TabBarControls: FMX.TabControl.TTabControl.TArrayTabBarControls); begin inherited; TabBarControls[TTabBarButton.Left].Width:=15; TabBarControls[TTabBarButton.Right].Width:=15; TabBarControls[TTabBarButton.Right].Position.X :=TabBarControls[TTabBarButton.Right].Position.X+15; TabBarControls[TTabBarButton.Right].Position.X :=TabBarControls[TTabBarButton.Right].Position.X+15; end; Перемещение сработало, правда не совсем правильно, но не работает событие OnClick у кнопки, то есть если я пытаюсь на спин нажать он не нажимается, подскажите пожалуйста кто знает как правильно сделать сдвиг спинов.
  7. var KeybLayout:HKL; begin KeybLayout := GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow, nil)); showmessage(IntToHex(LoWord(KeybLayout), 5)); если раскладка US то получим 00409, если верить msdn https://msdn.microsoft.com/en-us/library/windows/desktop/dd318693(v=vs.85).aspx то совпадает
  8. Под структурами данных понимаются какие-либо переменные или записи/record(как пример)?
  9. Не могли бы ткнуть на эту статью? Она отвечает на мой вопрос по чтению как раз да?)
  10. Ещё это может помочь https://msdn.microsoft.com/en-us/library/windows/desktop/ms646296(v=vs.85).aspx
  11. а к чему может привести такое?
  12. Огромное спасибо за материал, ознакомлюсь с ним в ближайшее время, у меня возник такой вопрос, а могу ли я ТОЛЬКО читать из Form4.Label1.Text в самом потоке секции Execute значение бесконечно без синхронизации, например в переменную типа String? То есть могу ли я чисто только счиывать значения из GUI без синхронизации этого.
  13. Здравствуйте, интересует такой вопрос, хочу получить deadLock в своём приложении, может ли кто объяснить что нужно сделать чтобы его получить при обращении потока к GUI? написал небольшой пример который запускает по нажатию на Button поток и устанавливает в TLabel значение из внутреннего счетчика, но никак не могу получить зависание приложения, если кто знает объясните пожалуйста как это сделать и в каких случаях возможен dealLock в FMX. deadlock.rar
  14. Здравствуйте! Знает ли кто как узнать открыто ли на данный момент TPopupMenu или нет? Например у TPopup есть свойство IsOpen, а как узнать это по аналогии для компонента TPopupMenu ?
  15. UP
  16. Сделал как вы сказали, вот такой стиль у меня(Delphi Berlin 10.1 Update2), элемента Ani нет:
  17. А где можно родной стиль посмотреть?
  18. Интересует такой вопрос, а можно ли стилизовать TAniIndicator?
  19. Здравствуйте! Знает ли кто как получить список TlistBoxItem'ов которые отображаются в данное время на форме? То есть в TListBox'е имеем примерно 1000 элементов, и он отображает около 10 за раз, можно ли как-то получить индексы отображаемых Item'ов?
  20. Сделал следующий костыль: Перед инициализацией попап окна создаю нужный мне контролл на нужной мне области в попап окне. В событии OnClosePopup написал чтобы удалялись все контроллы порожденные от TEdit for i := 0 to Self.ControlsCount-1 do if Self.Controls[i] is TEdit then Self.Controls[i].Free; И ура, заработал ввод в попап окно в нормальном режиме, нужно только печься о создании нужных полей и их освобождении из памяти. Но действительно ли это единственное решение? Может кто знает причину такого поведения TPopup?
  21. Winexcel

    TPopup и ввод в TEdit

    Объясните пожалуйста, почему при вызове TPopup как модального окна, в поле ввода TEdit сначала нормально вводится текст, но после того я закрою попап и открою его по новой (как модальное окно), текст больше не вводится? Исходник прикрепил Архив ZIP - WinRAR.zip
  22. на 2553 строчке в FMX.Menus получаю AV, в методе procedure TPopupMenu.Popup(X, Y: Single); на строчке FreeAndNil(Popup);
  23. Можно просто проверить у потомка координаты, если есть отрицательная - значит вышел. Position.X Position.Y
  24. Winexcel

    CheckBox в MenuItemStyle TPopupMenu

    Здравствуйте! Подскажите пожалуйста как добавить на уровне стиля в стиль MenuItemStyle CheckBox, после добавления в стиль CheckBox'а и вызове попап меню всё работает до первого закрытия попапа, после получаю различные ошибки, в том числе и AV. Пробовал след стиль С ним получаю ошибку, если рассмотреть стандартные стили FMX, например Air.style, то стиль имеет следующую структуру: Я правильно понимаю, что галочка имеет название checkmark в стиле? Что нужно сделать чтобы её можно было увидеть? И можно ли заменить TPath, на обычный TCheckBox?
×
×
  • Создать...