![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
sleep и динамическое создание объектов
Тимоха © (2009-01-24 02:05:00)Создаю форму, label, memo динамически и все работает нормально. Но если в конце процедуры вставить код sleep(), то форма и мемо создаются, лабел тоже но его не видно, почему? как исправить?
AndreyV (2009-01-25 16:38:00) [1]> [24] Тимоха (25.01.09 16:24)
> Как сделать чтобы при наведении на image например, с задержкой
> в n сек менялся label.caption? Т.е. навели на image, прошло
> n сек. и поменялся текст в label. Обрабатываю onenter/onleave
TTimer.
Тимоха (2009-01-25 16:24:00) [2]Еще вопрос про задержку. Пишу здесь чтобы не плодиться:))
Как сделать чтобы при наведении на image например, с задержкой в n сек менялся label.caption? Т.е. навели на image, прошло n сек. и поменялся текст в label. Обрабатываю onenter/onleave
KilkennyCat (2009-01-25 12:56:00) [3]
> Германн © (25.01.09 02:19) [21]
Хороший канал, мультик про крысу-убийцу - блеск.
Тимоха (2009-01-25 05:21:00) [4]телевизора не имею и ни разу об этом не пожалел :)
Германн (2009-01-25 02:19:00) [5]
> Тимоха (25.01.09 01:46) [14]
>
> 1. что представляют из себя ссылки?
> 2. screen.forms дает доступ к формам, но не к им компонентам.
>
>
Ох уж эти троешники! :)
> просто форма создается по нажатию на кнопку.
> var
Ну да. Просто что-то волшебное происходит при нажатии на кнопку.
И кто-то тут ещё вякает в защиту телеканала 2х2!
:)
KilkennyCat (2009-01-25 02:11:00) [6]странно как-то создаешь.
Краткий пример о динамическом создании форм:
http://delphi.about.com/od/adptips2005/qt/nilselfapp.htm
Тимоха (2009-01-25 02:00:00) [7]извините,обманул вас:(
форма уже созданна и объекты на ней тоже.
просто форма создается по нажатию на кнопку.
var
S: string;
begin
S := list.Items[ItemIndex].Hint;
with TfrmQwerty.Create(self) do
begin
id := Copy(S, 4, Pos('#name', S) - 4);
Caption := list.Items[ItemIndex].Caption;
Show;
end;
KilkennyCat (2009-01-25 01:58:00) [8]ничего.
Тимоха (2009-01-25 01:55:00) [9]2. должен быть цикл походу по все формам. типо того?
procedure TForm1.Button6Click(Sender: TObject);
var
i: byte;
begin
for i := 0 to Screen.FormCount - 1 do
if Screen.Forms[i] <> Application.MainForm then
Form1(Screen.Forms[i]).Label1.Caption := '';
end;
что должно быть на месте form1 ? :))))
KilkennyCat (2009-01-25 01:54:00) [10]Мда. Вот и весь ООП.
{RASkov} (2009-01-25 01:48:00) [11]> [14] Тимоха (25.01.09 01:46)
1) var lb: TLabel; подчеркнутое - ссылка.
2) TMyForm(Screen.Forms[i]).Label1.Caption:='';
Тимоха (2009-01-25 01:46:00) [12]1. что представляют из себя ссылки?
2. screen.forms дает доступ к формам, но не к им компонентам.
Германн (2009-01-25 01:34:00) [13]
> Тимоха (25.01.09 01:21) [10]
>
> например сохрянять hwnd в массиве?
>
Зачем hwnd? Если ты создаёшь экземпляры TForm или его наследников, то и запоминай(сохраняй), например в массиве, ссылки на эти экземпляры.
Или, если не запомнил, или ещё что, используй список форм Application.Screen.Forms
Тимоха (2009-01-25 01:30:00) [14]Спасибо ответившим!
в рантайм создаются. а потом мне нужно пробежаться по всем формам которые создал. и получить возможность изменять свойства меток в том числе и caption.
{RASkov} (2009-01-25 01:25:00) [15]> Тимоха
Формы создаются от одного типа? На Предке создоваемых форм присутствуют эти самые метки или они тоже в рантайм создаются?
Тимоха (2009-01-25 01:21:00) [16]например сохрянять hwnd в массиве?
Германн (2009-01-25 01:19:00) [17]
> Тимоха (25.01.09 01:14) [8]
>
> хм. я их создаю. но потом например мне нужно через каждые
> 5 сек. менять во всех этих окнах значение caption двух label'ов
>
Ты их создал, тебе и карты в руки!
При создании у тебя есть туева хуча вариантов как сохранить ссылки на эти формы.
Тимоха (2009-01-25 01:14:00) [18]хм. я их создаю. но потом например мне нужно через каждые 5 сек. менять во всех этих окнах значение caption двух label'ов
KilkennyCat (2009-01-25 00:56:00) [19]
> как найти все динамически созданные формы например поменять
> caption label который находится на них?
Странный вопрос.
Вы их сами создаете, значит знаете, где они и как они называются.
При создании надо сразу продумывать дальнейшую работу.
Можно использовать FindComponent
Можно запихнуть в массив.
Примеров множество.
Тимоха (2009-01-25 00:50:00) [20]использовал delay, все норм работает. спасибо!
мне вот еще один вопрос не дает покоя, как найти все динамически созданные формы например поменять caption label который находится на них?