Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2012, 10:22   #1
maxim93dd
 
Регистрация: 11.10.2012
Сообщений: 4
По умолчанию объектно-ориентированное программирование

Напишите пожалуйста, как создать приложение, в которром форма изменяет свои размеры (подобно биению сердца, увеличиваясь и уменьшаясь в размерах, центр симметрии должен оставаться на месте). Использовать компонент TTimer.
maxim93dd вне форума Ответить с цитированием
Старый 11.10.2012, 10:40   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

по событию OnTimer изменяете размеры формы на фиксированный шаг и сдвигаете форму на половину шага. При достижении минимума/максимума изменяете знак шага на противоположный.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 11.10.2012, 11:52   #3
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

уточню:
изменять на половину "шага" ширину и высоту (Width, Height), и отступ вормы слева и сверху (Left , Top).
если отступы плюсуются, то размеры минусуются, и наоборот....
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 11.10.2012, 11:56   #4
maxim93dd
 
Регистрация: 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.
maxim93dd вне форума Ответить с цитированием
Старый 11.10.2012, 12:51   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Сделать постепенное изменение формы . Вы сразу делаете окно маленьким, а надо постепенно - сначала до 400 точек, потом до 300, потом до 200. А можно и еще плавней, чтобы на глаз не было заметно скачков.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 11.10.2012, 12:54   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Зачем тут 2 таймера? Одного достаточно.
eval вне форума Ответить с цитированием
Старый 12.10.2012, 23:48   #7
maxim93dd
 
Регистрация: 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.
maxim93dd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объектно-ориентированное программирование 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