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

Вниз

sleep и динамическое создание объектов   Найти похожие ветки 

 
Тимоха   (2009-01-24 02:05) [0]

Создаю форму, label, memo динамически и все работает нормально. Но если в конце процедуры вставить код sleep(), то форма и мемо создаются, лабел тоже но его не видно, почему? как исправить?


 
Германн ©   (2009-01-24 02:37) [1]


> но его не видно, почему?

Значит не судьба.
:(


 
Юрий Зотов ©   (2009-01-24 04:22) [2]

> Тимоха   (24.01.09 02:05)

Странно, так быть не должно. Похоже, в коде есть ошибка.

Исправить можно перерисовкой (Label.Invalidate), но лучше не исправлять, а попытаться найти ошибку.


 
Leonid Troyanovsky ©   (2009-01-24 11:22) [3]


> Тимоха   (24.01.09 02:05)  

>  Но если в конце процедуры вставить код sleep(),

И в чем сакральный смысл оного заклинания?

--
Regards, LVT.


 
Медвежонок Пятачок ©   (2009-01-24 11:29) [4]

отжохнуть после напряженного цикла


 
Anatoly Podgoretsky ©   (2009-01-24 12:12) [5]

> Медвежонок Пятачок  (24.01.2009 11:29:04)  [4]

В рабочее время то?


 
Тимоха   (2009-01-25 00:50) [6]

использовал delay, все норм работает. спасибо!
мне вот еще один вопрос не дает покоя, как найти все динамически созданные формы например поменять caption label который находится на них?


 
KilkennyCat ©   (2009-01-25 00:56) [7]


> как найти все динамически созданные формы например поменять
> caption label который находится на них?

Странный вопрос.
Вы их сами создаете, значит знаете, где они и как они называются.

При создании надо сразу продумывать дальнейшую работу.
Можно использовать FindComponent
Можно запихнуть в массив.
Примеров множество.


 
Тимоха   (2009-01-25 01:14) [8]

хм. я их создаю. но потом например мне нужно через каждые 5 сек. менять во всех этих окнах значение caption двух label"ов


 
Германн ©   (2009-01-25 01:19) [9]


> Тимоха   (25.01.09 01:14) [8]
>
> хм. я их создаю. но потом например мне нужно через каждые
> 5 сек. менять во всех этих окнах значение caption двух label"ов
>

Ты их создал, тебе и карты в руки!
При создании у тебя есть туева хуча вариантов как сохранить ссылки на эти формы.


 
Тимоха   (2009-01-25 01:21) [10]

например сохрянять hwnd в массиве?


 
{RASkov} ©   (2009-01-25 01:25) [11]

> Тимоха

Формы создаются от одного типа? На Предке создоваемых форм присутствуют эти самые метки или они тоже в рантайм создаются?


 
Тимоха   (2009-01-25 01:30) [12]

Спасибо ответившим!
в рантайм создаются. а потом мне нужно пробежаться по всем формам которые создал. и получить возможность изменять свойства меток в том числе и caption.


 
Германн ©   (2009-01-25 01:34) [13]


> Тимоха   (25.01.09 01:21) [10]
>
> например сохрянять hwnd в массиве?
>

Зачем hwnd? Если ты создаёшь экземпляры TForm или его наследников, то и запоминай(сохраняй), например в массиве, ссылки на эти экземпляры.
Или, если не запомнил, или ещё что, используй список форм Application.Screen.Forms


 
Тимоха   (2009-01-25 01:46) [14]

1. что представляют из себя ссылки?
2. screen.forms дает доступ к формам, но не к им компонентам.


 
{RASkov} ©   (2009-01-25 01:48) [15]

> [14] Тимоха   (25.01.09 01:46)

1) var lb: TLabel; подчеркнутое - ссылка.
2) TMyForm(Screen.Forms[i]).Label1.Caption:="";


 
KilkennyCat ©   (2009-01-25 01:54) [16]

Мда. Вот и весь ООП.


 
Тимоха   (2009-01-25 01:55) [17]

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:58) [18]

ничего.


 
Тимоха   (2009-01-25 02:00) [19]

извините,обманул вас:(
форма уже созданна и объекты на ней тоже.
просто форма создается по нажатию на кнопку.
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 02:11) [20]

странно как-то создаешь.
Краткий пример о динамическом создании форм:
http://delphi.about.com/od/adptips2005/qt/nilselfapp.htm


 
Германн ©   (2009-01-25 02:19) [21]


> Тимоха   (25.01.09 01:46) [14]
>
> 1. что представляют из себя ссылки?
> 2. screen.forms дает доступ к формам, но не к им компонентам.
>
>

Ох уж эти троешники! :)
> просто форма создается по нажатию на кнопку.
> var

Ну да. Просто что-то волшебное происходит при нажатии на кнопку.
И кто-то тут ещё вякает в защиту телеканала 2х2!
:)


 
Тимоха   (2009-01-25 05:21) [22]

телевизора не имею и ни разу об этом не пожалел :)


 
KilkennyCat ©   (2009-01-25 12:56) [23]


> Германн ©   (25.01.09 02:19) [21]

Хороший канал, мультик про крысу-убийцу - блеск.


 
Тимоха   (2009-01-25 16:24) [24]

Еще вопрос про задержку. Пишу здесь чтобы не плодиться:))
Как сделать чтобы при наведении на image например, с задержкой в n сек менялся label.caption? Т.е. навели на image, прошло n сек. и поменялся текст в label. Обрабатываю onenter/onleave


 
AndreyV ©   (2009-01-25 16:38) [25]

> [24] Тимоха   (25.01.09 16:24)
> Как сделать чтобы при наведении на image например, с задержкой
> в n сек менялся label.caption? Т.е. навели на image, прошло
> n сек. и поменялся текст в label. Обрабатываю onenter/onleave

TTimer.



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

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

Наверх




Память: 0.52 MB
Время: 0.016 c
15-1231874644
oxffff
2009-01-13 22:24
2009.03.15
Рекомендую. Copy-on-write data structures in Delphi


2-1233048701
Golden
2009-01-27 12:31
2009.03.15
Подскажите, что выполняет данная функция?


15-1231753699
NailMan
2009-01-12 12:48
2009.03.15
немного про свои сайты


15-1231322740
Пронин
2009-01-07 13:05
2009.03.15
Винрар


2-1232531633
Artem
2009-01-21 12:53
2009.03.15
Вопрос по отладке