Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как удалить выделенный контрол? [D7, WinXP]


Страницы:   1 2

Мурзик ©   (2007-12-07 15:01:00) 

На форме определенные контролы (кнопки, метки и т.п.), как программно удалить выделенный контрол?


homm   (2007-12-07 21:33:00) [1]

> [16] Галинка ©   (07.12.07 15:44)
> Обычно, когда контрол получает фокус ввода, то он становится
> выделенным.

Обычно, когда контрол получает фокус ввода, он получает фокус ввода. Выделеный контрол, по редоставленному описанию, это сферический конь в вакууме.


homm   (2007-12-07 21:31:00) [2]

> [9] Мурзик   (07.12.07 15:11)
> Я же говорю, я не знаю контретного контрола, может быть
> выделана метка, а может кнопка, может вобще...

Как выделена? Что значит выделена? Кто ее выделил?


Сергей М.   (2007-12-07 16:54:00) [3]


> Небольшой листинг можно?


А не жирно будет ? Может логикой обойдешься ?)

У дельфийских контролов есть событие OnExit, происходящее при потере контролом фокуса.

В его обработчике ты волен и можешь зафиксировать где-либо ссылку на контрол, теряющий фокус.

Жмакая мышью на некую Кнопку ты проверяешь в ее клик-обработчике, не является ли эта ссылка ссылкой на эту Кнопку или ссылкой на форму, на которой лежит Кнопка. Если не является - смело делай по этой ссылке Фри.


Галинка   (2007-12-07 16:19:00) [4]

Jeer ©   (07.12.07 16:09) [20]

нет. Не будет AV когда попытается найти несуществующий элемент.


Jeer   (2007-12-07 16:09:00) [5]


> Галинка ©   (07.12.07 15:59) [19]



> в моем цикле лучше идти от конца к началу.


Неужели быстрее найдет ?


Галинка   (2007-12-07 15:59:00) [6]

Dib@zol ©   (07.12.07 15:52) [18]

а разве в МСДН описаны классы VCL? ))) Не знала.

Автор, в моем цикле лучше идти от конца к началу. Т.е. i:= Form1.Controls.Count - 1 downto 0


Dib@zol   (2007-12-07 15:52:00) [7]

> ПыСы: бывает ли онлайн помощь по дельфи. Типа МСДН?

А чем не устроил МСДН? :) Тем более - ДМ вот и есть онлайн помощь :)))


Галинка   (2007-12-07 15:52:00) [8]

for i:=0 to Form1.Controls.Count do
 if Form1.Controls[i].Tag = 1 then Form1.Controls[i].Free();


типа такого.


Галинка   (2007-12-07 15:44:00) [9]

Если у класса нет свойства типа IsSelected, выделенность можно, например, в Tag пометстить.

Обычно, когда контрол получает фокус ввода, то он становится выделенным. И остается таковым пока любой другой контрол (исключая контролы с функциями "системного меню", типа "OK", "Ignor", "Accept" etc) не получил фокус ввода. Т.е. не стал выделенным.

Потом в цикле можно перебрать все контролы на форме и с помощью проверки на тип и выделенность уничтожить те, для которых обе проверки дают истину.

ПыСы: бывает ли онлайн помощь по дельфи. Типа МСДН?


Мурзик   (2007-12-07 15:32:00) [10]

Дак а вот как это реализовать? Небольшой листинг можно?


Palladin   (2007-12-07 15:32:00) [11]

а что такое выделеный контрол? чем ты его выделил? маркером на экране?


Галинка   (2007-12-07 15:31:00) [12]

если удаляться будут контролы определенного класса, то нужно бы проверку на принадлежность классу сделать. И вероятно на выделенность.


Мурзик   (2007-12-07 15:31:00) [13]

Удалено модератором


Мурзик   (2007-12-07 15:14:00) [14]


> Ту которую ты жмакаешь для удаления контрола

Нет, ее не учитывать!


Сергей М.   (2007-12-07 15:13:00) [15]


> а может кнопка


Ту которую ты жмакаешь для удаления контрола - она в том же числе ? Это же тоже контрол ..


Мурзик   (2007-12-07 15:11:00) [16]


> ЧСделай так, чтобы Control ссылался на нужный контрол, а
> не на форму.

Я же говорю, я не знаю контретного контрола, может быть выделана метка, а может кнопка, может вобще... и как ссылался на нужный контрол!


Сергей М.   (2007-12-07 15:07:00) [17]


> Мурзик   (07.12.07 15:05) [4]


Значит Control есть ссылка на форму.

ЧСделай так, чтобы Control ссылался на нужный контрол, а не на форму.


{RASkov}   (2007-12-07 15:07:00) [18]

> [3] Мурзик   (07.12.07 15:03)
> как, выделив произвольный компонент

Вот именно как? как выделяешь? например как выделишь TImage?

> удалить его по нажатию кнопки

Какой кнопки? ...мышки? ...на клавиатуре? ...Button1?


Мурзик   (2007-12-07 15:06:00) [19]

У меня на дочерней форме


Anatoly Podgoretsky   (2007-12-07 15:05:00) [20]

> Мурзик  (07.12.2007 15:05:04)  [4]

С чего бы


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо