Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1197356647
dumka
2007-12-11 10:04
2008.01.06
Строки


15-1196616127
manevil
2007-12-02 20:22
2008.01.06
acer 5520g


15-1196625121
Удав
2007-12-02 22:52
2008.01.06
где надыбать вирей


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


2-1197363838
Molodoi
2007-12-11 12:03
2008.01.06
DBGridEh





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский