Вопрос такой - есть массив элементов, я их по ходу выполнения проги создаю по мере необходимости... Надо отследить какой элемент (из созданных) в данный момент активен (или имеет фокус)и передать его индекс. Я пробовал... но что-то, видно, не так... помогите разобраться или предложите как это реализовать по-другому.
Доброе время суток, DeadShot! Если у тебя есть список объектов, то тут даже проблем быть не должно. Перебираешь их все по порядку, вызывая метод Focused, пока он не будет равен True для очередного объекта. Он и будет активным. А что за подозрительная процедура такая? :-О !
Ответ отправлен: 28.07.2002, 00:42 Отправитель: baldr Отвечает Vladimir
Добрый день, DeadShot! При создании Edit прописывай Edit[n].tag := n; Edit[n].OnClick:=Form2.myClick; procedure TForm2.myclick(sender:Tobject); var cont:TWinControl; begin cont:=Form2.ActiveControl; Edittag:= cont.Tag; end; где Edittag - глобалбная переменная типа integer. Ну а дальше - дело техники.
Ответ отправлен: 29.07.2002, 08:21 Отправитель: Vladimir Отвечает Sanya
Здравствуйте, DeadShot! Используй Self.ActiveControl, Для определения своего контрола при его создании задавай ему сво-во tag, а для применения действия задавай конкретное имя процедуры см. пример(на всякий случай полностью)! Удачи!
Приложение: Ответ отправлен: 29.07.2002, 03:50 Отправитель: Sanya Отвечает Артём Шегеда
Доброе время суток, DeadShot!
Вообще-то для этих целей удобнее использовать класс TList. Во-первых, никаких проблем с размером массива. Во-вторых, удалять из него также просто, как и добавлять. В-третьих, для поиска элемента не нужно писать цикл, а достаточно вызвать IndexOf В-четвёртых, не на Pascal же ты программу пишешь, а на ObjectPascal - блюди стиль!
Приложение: Ответ отправлен: 27.07.2002, 17:19 Отправитель: Артём Шегеда
Вопрос № 104
Привет, коллеги! Есть две проблемы. 1) Не могу найти, как установить размер строки в TListView в режиме Viewstyle="vsReport" и OwnerDraw = true. Изменяю шрифт - текст увеличивается, а строки - нет. :( 2) В том же TListView не могу побороть Hint в режиме Viewstyle="vsReport." Нужно высветить какую-либо информацию, связанную с текушим элементом, но TListView упорно высвечивает свой хинт. А если повесить обработчик на OnInfoTip, то появляется сразу два хинта!
Рекомендую отвечать, предварительно проверив свой вариант. Я не профан - если что, админу пожалуюсь...
Добрый день, Артём! Попробуй так: Повесь на форму ApplicationEvents, и перехватывай его событие OnShowHint, это событие возникает раньше всех остальных! Что-то типа procedure TForm1.ApplicationEvents1ShowHint(var HintStr: String; var CanShow: Boolean; var HintInfo: THintInfo); begin If (HintInfo.HintControl.ClassName = 'TListView')then HintStr:= 'Get Lost'; end;
Ответ отправлен: 29.07.2002, 05:14 Отправитель: Sanya
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.