Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Вниз

Обновление формы и пауза в программе   Найти похожие ветки 

 
m-kirill-2003 ©   (2006-10-04 17:20) [0]

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


 
ProgRAMmer Dimonych   (2006-10-04 17:28) [1]

Насчёт обновления - OnTimer или (универсальное) OnIdle соответственно у TTimer и TApplicationEvents.

Насчёт паузы есть несколько вариантов:
1) Delay
2) for i:=1 to 1000000 do begin end;
3)
StartTickCount:=GetTickCount;
while GetTickCount-StartTickCount<Time do {Time - время задержки в мс}
Application.ProcessMessages;


 
m-kirill-2003 ©   (2006-10-04 17:31) [2]

Ой, можно про обновления по подробнее, куда что пихать


 
ProgRAMmer Dimonych   (2006-10-04 17:36) [3]

Если нужны только часы - то кидаем на форму TTimer (в 7-ой Дельфе находится на закладке System), у него настраиваем интервал (на свой вкус и цвет, но в пределх разумного :)), создаём обработчик события OnTimer, который вызывается раз в стольо миллисекунд, сколько мы настроили в TTimer.Interval. Там пишем всё для обновления.
Если же дело часами не ограничивается, то бросаем на форму TApplicationEvents (в 7-ой Дельфе - на закладке Additional), у него есть событие OnIdle. Если в обработчике этого события регулярно писать строку Done:=False, то обработчик будет вызываться беспрерывно (почти :)). Там определяем, что же нужно делать в данный конкретный момент, и делаем это.
Будут вопросы - всё сюда. Чем смогу - помогу.


 
m-kirill-2003 ©   (2006-10-04 17:42) [4]

Ой спасибо! Я Ваш далжник на веке!
Курсковой по теме "АСУ путей и станции" сказали в Delphi вот и пытаюсь


 
m-kirill-2003 ©   (2006-10-04 17:46) [5]

Еще один вопросик.
Можно ли создать из объектов (например фигур прямоугоьников) массив? Если да, то как эти элементы (массива) прописать на форме


 
MsGuns ©   (2006-10-04 17:47) [6]

Для того, чтобы "данные в форме обновлялись", в соответствующем блоке кода (в ветке - это событие таймера или приложения) надо "заставлять" форму или меняемые элементы (панельки, эдиты, комбобоксы и т.д.) перерисовываться. Для этого надо вызывать метод Update/Invalidate для перерисовываемого контрола.


 
ProgRAMmer Dimonych   (2006-10-04 17:47) [7]

Насчёт вечного должника - это лишнее. Сам когда-то начинал - мне подсказывали, теперь вроде как освоил более или менее успешно - вот другим помогаю.
Удачи в цели из [4]


 
ProgRAMmer Dimonych   (2006-10-04 17:49) [8]

> [5]
Извиняюсь, в этой формулировке не понял :(


 
Leonid Troyanovsky ©   (2006-10-04 17:49) [9]


> ProgRAMmer Dimonych   (04.10.06 17:47) [7]

> - мне подсказывали, теперь вроде как освоил более или менее
> успешно - вот другим помогаю.


Тоже пути и станции? Или воздушные перевозки?
Бедные мы, бедные.

--
Regards, LVT.


 
ProgRAMmer Dimonych   (2006-10-04 17:53) [10]

> [9]
Не, вообще по Дельфям.


 
m-kirill-2003 ©   (2006-10-04 17:57) [11]

Массив, что так такое знаешь?
Бывает из цифр, слов
тип array of
можно ли из объектов tshape сделать, если да, то  как эти фигуры разместить на форму, т.е. какое имя им давать


 
Leonid Troyanovsky ©   (2006-10-04 18:03) [12]


> m-kirill-2003 ©   (04.10.06 17:57) [11]

> можно ли из объектов tshape сделать, если да, то  как эти
> фигуры разместить на форму, т.е. какое имя им давать


Размещение на форме не требует никаких имен.

--
Regards, LVT.

PS На второе высшее замахнулся?
Уважаю.


 
ProgRAMmer Dimonych   (2006-10-04 18:10) [13]

1. Объявляем массив.
2. В OnCreate формы или где-нибудь ещё (зависит от программы) пишем приблизительно следующее.

for i:=1 to 10 do
begin
Shapes[i]:=TShape.Create(Self);
Shapes[i].Left:=100;
...
end;

Т.е. после создания вместо имени компонента указываем элемент массива.


 
m-kirill-2003 ©   (2006-10-04 18:20) [14]

Ошибку дает!


 
ProgRAMmer Dimonych   (2006-10-04 18:22) [15]

> [14]
Что за ошибка?


 
Leonid Troyanovsky ©   (2006-10-04 18:23) [16]


> ProgRAMmer Dimonych   (04.10.06 18:22) [15]

> Что за ошибка?


Обычную ошибку, ясень пень.

--
Regards, LVT.


 
han_malign ©   (2006-10-04 18:24) [17]

Shapes[i]:=TShape.Create(Self);
Shapes[i].Parent:= Self;
Shapes[i].Left:=100;
...


 
m-kirill-2003 ©   (2006-10-04 18:26) [18]

Вот что я сделал:
var
 Form1: TForm1;
 A:array[1..5] of tshape;
 i:word;

потом
procedure TForm1.FormCreate(Sender: TObject);
begin
 for i:=1 to 5 do
begin
A[i]:=TShape.Create(self);
A[i].Left:=10+5*i;
a[i].height:=30;
a[i].width:=30;
a[i].top:=100;
end;
end;

короче их не видно!


 
m-kirill-2003 ©   (2006-10-04 18:28) [19]

РАБОТАЕТ!!! УРА


 
ProgRAMmer Dimonych   (2006-10-04 18:28) [20]

a[i].Visible:=True;

> han_malign ©   (04.10.06 18:24) [17]
> Shapes[i]:=TShape.Create(Self);
> Shapes[i].Parent:= Self;
> Shapes[i].Left:=100;
> ...


 
han_malign ©   (2006-10-04 18:28) [21]

дубль два
Shapes[i]:=TShape.Create(Self);
Shapes[i].Parent:= Self;
Shapes[i].Left:=100;
...


 
m-kirill-2003 ©   (2006-10-04 18:30) [22]

Только минус в том, что они появляются только при запуске программы, их нельзя както редактировать на конструкторе форм... или можно?


 
Leonid Troyanovsky ©   (2006-10-04 18:31) [23]


> ProgRAMmer Dimonych   (04.10.06 18:28) [20]

> han_malign ©   (04.10.06 18:28) [21]


Спамеры :)

Шумим, братцы, шумим.

--
Regards, LVT.


 
ProgRAMmer Dimonych   (2006-10-04 18:32) [24]

IMHO, нет. Можно только свой компонент написать, в котором хранить свойства всех шейпов, а он при запуске проги сам эти свойства расставит. Но это ни в какие временные рамки не влезет...



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

Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.045 c
2-1159803742
Juju
2006-10-02 19:42
2006.10.22
Как установить формулу в Excel?


15-1159415891
vajo
2006-09-28 07:58
2006.10.22
Intel продемонстрировала 80-ядерный суперпроцессор будущего


2-1159871351
salexn
2006-10-03 14:29
2006.10.22
Как засунуть Set в строку


2-1159866052
zaqqaz
2006-10-03 13:00
2006.10.22
как свернуть программу в Трэй


2-1159847702
qp
2006-10-03 07:55
2006.10.22
У кого какие мысли будут?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский