Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.06;
Скачать: CL | DM;

Вниз

Как удалить выделенный контрол?   Найти похожие ветки 

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

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


 
Сергей М. ©   (2007-12-07 15:01) [1]

Free ему по мозгам)


 
{RASkov} ©   (2007-12-07 15:02) [2]

> [0] Мурзик   (07.12.07 15:01)

Как выделяешь его?
Может быть будет достаточно Control.Free; а может и ПостМессаге слать форме где и удалять контрол....


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

Дак а как, выделив произвольный компонент, удалить его по нажатию кнопки?


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

Если Control.Free, то и форма исчезает.


 
Anatoly Podgoretsky ©   (2007-12-07 15:05) [5]

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

С чего бы


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

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


 
{RASkov} ©   (2007-12-07 15:07) [7]

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

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

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

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


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


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


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

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


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


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

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


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


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


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


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


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

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


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

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


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

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


 
Palladin ©   (2007-12-07 15:32) [14]

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


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

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


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

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

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

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

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


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

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


типа такого.


 
Dib@zol ©   (2007-12-07 15:52) [18]

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

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


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

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

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

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


 
Jeer ©   (2007-12-07 16:09) [20]


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



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


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


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

Jeer ©   (07.12.07 16:09) [20]

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


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


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


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

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

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

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


 
homm ©   (2007-12-07 21:31) [23]

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

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


 
homm ©   (2007-12-07 21:33) [24]

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

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



Страницы: 1 вся ветка

Текущий архив: 2008.01.06;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.014 c
15-1196721863
Graf
2007-12-04 01:44
2008.01.06
Почему CopyRect так уродует картинку?


2-1197112580
Петр
2007-12-08 14:16
2008.01.06
семитировать ввод в поле с клавиатуры


6-1177658517
analyst
2007-04-27 11:21
2008.01.06
Заморозка закачки через INDY TIdPOP


11-1182345030
nikfel
2007-06-20 17:10
2008.01.06
Как изменить цвет линии.


2-1197287226
ZLinX
2007-12-10 14:47
2008.01.06
Поиск путей в графе