|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.10.2012, 10:22 | #1 |
Регистрация: 11.10.2012
Сообщений: 4
|
объектно-ориентированное программирование
Напишите пожалуйста, как создать приложение, в которром форма изменяет свои размеры (подобно биению сердца, увеличиваясь и уменьшаясь в размерах, центр симметрии должен оставаться на месте). Использовать компонент TTimer.
|
11.10.2012, 10:40 | #2 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
по событию OnTimer изменяете размеры формы на фиксированный шаг и сдвигаете форму на половину шага. При достижении минимума/максимума изменяете знак шага на противоположный.
Правильно поставленная задача - три четверти решения.
|
11.10.2012, 11:52 | #3 |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
уточню:
изменять на половину "шага" ширину и высоту (Width, Height), и отступ вормы слева и сверху (Left , Top). если отступы плюсуются, то размеры минусуются, и наоборот....
пишу код не только за печеньки
|
11.10.2012, 11:56 | #4 |
Регистрация: 11.10.2012
Сообщений: 4
|
Написал код программы, но окошко очень быстро прыгает, что сделать нужно?
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; Timer2: TTimer; procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); begin width:=640; Height:=480; end; procedure TForm1.Timer2Timer(Sender: TObject); begin width:=200; Height:=200; end; end. |
11.10.2012, 12:51 | #5 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Сделать постепенное изменение формы . Вы сразу делаете окно маленьким, а надо постепенно - сначала до 400 точек, потом до 300, потом до 200. А можно и еще плавней, чтобы на глаз не было заметно скачков.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
11.10.2012, 12:54 | #6 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Зачем тут 2 таймера? Одного достаточно.
|
12.10.2012, 23:48 | #7 |
Регистрация: 11.10.2012
Сообщений: 4
|
Я сделал чтобы справа и слева форма сжимается и разжимается...А как сделать чтобы сверху и снизу...??
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; N,s,w0,l0:integer; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin w0:=width; l0:=Left; ShowMessage(IntToStr(l0)); N:=0; s:=1; end; procedure TForm1.Timer1Timer(Sender: TObject); begin n:=n+s; // inc(n) width:=w0+2*n; Height:=Height; Left:=l0-n; Top:=Top; if (n=20) or (n=0) then s:=-s; end; end. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объектно-ориентированное программирование | Dinara93 | Visual C++ | 0 | 29.05.2012 20:38 |
Объектно-ориентированное программирование | Kira444 | Помощь студентам | 21 | 03.02.2011 16:34 |
Объектно-ориентированное программирование | Solnze2 | Помощь студентам | 4 | 14.06.2010 15:32 |
Объектно-ориентированное программирование | Solnze2 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 14.06.2010 10:14 |