Akad

Пользователи
  • Публикации

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

  • Посещение

О Akad

  • Звание
    Новичок

Информация

  • Пол

Посетители профиля

34 просмотра профиля
  1. Имеем динамически создаваемый TGrid состоящий из нескольких TStringColumn с такими опциями: grid.Options := [TGridOption.RowLines,TGridOption.RowSelect, TGridOption.Editing, TGridOption.CancelEditingByDefault, TGridOption.Header,TGridOption.HeaderClick]; Так вот сразу после создания, если мышкой выделить этот грид, то не работает клавиатура, и не приходят вообще OnKeyDown. Но как только поставить фокус на другой элемент, а потом вернуть на TGrid, то всё начинает работать. При этом элементы таблицы можно выделить мышью, и отредактировать без проблем. События OnGetValue/OnSetValue так же ходят корректно. grid.SelectRow(0) проблемы не решает. Хотя выделяется всё верно. Windows, studio 10.2.
  2. А если ещё обработчик изменения TEdit и пр на этом коде появится? P.S. Даже если ты всю жизнь пишешь мелкие проектики со прямолинейной логикой и без скриптов и пр. вещей, это не значит, что использование absolute хоть как-то оправдано. Тем более рекомендовать подобное кому-то. Код будет работать в частных случаях, максимум до первой большой переделки логики - когда ты об этом хаке уже забудешь - не более.
  3. Это вообще мрак, что он написал. Такая конструкция возможна только в случае маленьких программок с простой логикой. Что, например, если в качестве Sender придёт не TButton? А как выполнить действие, если пришла кнопка №34? Не поставив 34 if, и не трогая tag?
  4. Sender - это сферический конь в вакууме. Sender as TButton - это уже ближе. Но обычно логика завязывается на массив. Ни кто не делает 100 if по поводу SameText((Sender as TButton).text, "Кнопка1"), а сопоставляется с массивом. То есть MyButton[Sender.Tag]. Что я собственно в предыдущем посте и указал.
  5. Для начала надо убрать этот ужас. Как минимум заменить на MyButton: array of TButton; SetLength( MyButton, JsAr.Size); Затем Form1.MyButton.Tag := i; И тогда в OnMyClick(Sender: TObject); MyButton[Sender.Tag] и будет искомой кнопкой.
  6. А как фрейм можно перетаскивать туда, где он мешать не будет? Причём каждый раз это место - новое. Так же если нужно вызвать дочернее окно, по новой парадигме - без ShowModal - тоже не совсем представляю как без parent := self обойтись.
  7. А какие ещё есть варианты, что бы второе окно было всегда над первым, но у первого не терялась возможность ввода? Это например нужно для вывода лога ошибок. Если Вы про TMSFMXWebBrowser1.Parent := self, то это второе, что я попробовал. И так же пробовал TMSFMXWebBrowser1.Parent := nil; TMSFMXWebBrowser1.Parent := self; У меня такое ощущение, что окно как раз пересоздаётся, но от старого экземпляра не перепривязывается к новому. Т.е. загрузка (судя по Debug строке среды) происходит, но если посмотреть по ПКМ исходный код страницы, то он пустой. И все последующие попытки программно перезагрузить страницу ничего не меняют.
  8. Нашел ли кто-то решение данной проблемы? Так же возникает, если у другой формы выставить родителем форму с TWebBrowser. Т.е. как только в коде что-то типа: Form2.Parent := self; содержимое окна TWebBrowser моментально пропадает и становится полностью белым (XE 10.2, windows). Кстати со сторонним TTMSFMXWebBrowser картина аналогичная.