Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];
ВнизКак удалить выделенный контрол? Найти похожие ветки
← →
Мурзик (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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.005 c