Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Хитрая прога на Delphi

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Хитрая прога на Delphi
Имя
Сообщение << Старые топики   Новые топики >>
Хитрая прога на Delphi - 2004-05-11 19:56:46   
O.Bender

Сообщений: 82
Оценки: 0
Присоединился: 2004-03-16 22:41:02
Помогите написать прогу на Delphi
Условие: на форму помещаем кнопку и shape (прямоугольник)

Нужно чтобы при нажатиях кнопку ширина shape сначала увеличивалось с ,некоторым шагом, например до 500, а после этого с этим же шагом ширина прямоугольника уменьшалось до исходного.
Как это реализовать и можно ли здесь обойтись лишь одной процедурой OnClick для единственной кнопки или понадобятся др.кнопки.
Post #: 1
Хитрая прога на Delphi - 2004-05-11 21:50:13   
Lord Niken

Сообщений: 379
Оценки: 0
Присоединился: 2004-04-26 16:25:24

—————-
Цитата: Дата:11.05.2004 19:56:46, Автор: O.Bender ::
Помогите написать прогу на Delphi

Условие: на форму помещаем кнопку и shape (прямоугольник)


Нужно чтобы при нажатиях кнопку ширина shape сначала увеличивалось с ,некоторым шагом, например до 500, а после этого с этим же шагом ширина прямоугольника уменьшалось до исходного.

Как это реализовать и можно ли здесь обойтись лишь одной процедурой OnClick для единственной кнопки или понадобятся др.кнопки.


—————-


Думаю одной кнопкой обойдётся….
Попробуй так:
задаёшь shape'у шаг и отводишь ему таймаут на увеличенье, а по завершению на тот же шаг с тем же таймаутом на уменьшенье(шаг возьми 100)..
 
Post #: 2
Хитрая прога на Delphi - 2004-05-17 21:24:57   
Номолос

Сообщений: 8
Оценки: 0
Присоединился: 2004-03-26 21:32:45
Вопрос, честно сказать, ламерский Кидаешь на форму TTimer, ставишь, скажем, Interval=100 и Enabled=false;
по OnClick сл. бадягу (не пробовал, возм. косяки):
var
stp: ShortInt;
procedure Button1Click(Sender: TObject);
begin
stp := 1;
Enabled := True
end;

и для OnTimer в таймере:
procedure Timer1Timer(Sender: TObject);
begin
Shape1.Width := Shape1.Width + stp;
if Shape1.Width = 500 then stp := -1;
if Shape1.Width = 30 { исходный размер } then
Enabled := False
end;

Попробуй…
Post #: 3
Хитрая прога на Delphi - 2004-05-18 10:43:04   
Vasia

Сообщений: 24
Оценки: 0
Присоединился: 2004-03-11 16:40:58
а где shape1.refresh?
Post #: 4
Хитрая прога на Delphi - 2004-05-18 19:11:51   
Номолос

Сообщений: 8
Оценки: 0
Присоединился: 2004-03-26 21:32:45
Ну, йух, выше пятого рефреш автоматик, но для очистки совести можно дописать
Post #: 5
Хитрая прога на Delphi - 2004-05-19 20:56:22   
O.Bender

Сообщений: 82
Оценки: 0
Присоединился: 2004-03-16 22:41:02
Ребят, мне кажется, вы меня не поняли. Я написал «при нажатиях»

Например: нажали 1 раз ширина увеличилась до 200 нажали 2-ой раз ширина увеличилась до 300 и т.д. пока не достигнет 500, 5– ый раз и ширина уменьшилась до 400 и т.д
Post #: 6
Хитрая прога на Delphi - 2004-05-19 22:03:40   
Lord Niken

Сообщений: 379
Оценки: 0
Присоединился: 2004-04-26 16:25:24

—————-
Цитата: Дата:19.05.2004 20:56:22, Автор:O.Bender ::
Ребят, мне кажется, вы меня не поняли. Я написал «при нажатиях»


Например: нажали 1 раз ширина увеличилась до 200 нажали 2-ой раз ширина увеличилась до 300 и т.д. пока не достигнет 500, 5– ый раз и ширина уменьшилась до 400 и т.д


—————-



Берёшь OnClick для увеличения и пишешь процедуру которая на определённом нажатии совершает нужный тебе шаг, а OnDblClick для уменьшения…
Однако я бы просто взял шаг 100 и теже OnClick и OnDblClick для увеличения и уменьшения… и нечего парится с разным шагом…
Post #: 7
Хитрая прога на Delphi - 2004-05-20 18:51:06   
_eugrus

Сообщений: 174
Оценки: 0
Присоединился: 2004-05-04 15:44:59
я пишу тлько на си\сипп так что говорю только алгарм.
цикл while который проверяет значение переменной A if(A==1,2,3) то увеличивать if(A==4,5,6) - уменбшать, если A==7 то shape = как в начале и A=1 и перезапуск функции

ЗЫ вроде ни чё мудрёного
Post #: 8
Хитрая прога на Delphi - 2004-05-23 08:38:50   
Port 111

Сообщений: 13
Оценки: 0
Присоединился: 2004-05-22 18:29:46
Привет всем!
O.Bender Эта задача ОЧЕНЬ легкая… и еслиб ты пораскинул мозгами, то решил бы за минуту!
Я вот тоже пораскинул и нашел способа 2-3 решения!!!

Вот самый легкий из них

procedure TForm1.Button1Click(Sender: TObject);
begin
if Shape1.Height=50 then
Button1.Caption:='Увеличить';
If Shape1.Height=500 then
Button1.Caption:='Уменьшить';
if Button1.Caption='Увеличить' then
begin
Shape1.Height:=Shape1.Height+50;
Shape1.Width:=Shape1.Width+50;
end
else
begin
Shape1.Height:=Shape1.Height-50;
Shape1.Width:=Shape1.Width-50;
end;
end;


Этот способ самый легкий, но он не самый компактный и рациональный! Если надо могу выслать исходник и еще пару способов!!!
Post #: 9
Хитрая прога на Delphi - 2004-05-23 13:37:50   
Yanis

Сообщений: 63
Оценки: 0
Присоединился: 2004-04-19 00:32:13
>Хитрая прога на Delphi
Да вы все не поняли! Хитрая - это наверное с dll'ками там всякими Или же модуль *.obj слинкованный с программой, а в нём функции для всего такого
Post #: 10
Хитрая прога на Delphi - 2004-05-23 14:08:45   
Port 111

Сообщений: 13
Оценки: 0
Присоединился: 2004-05-22 18:29:46
Зачем для такой легкой проиги дополнительные модули?…Просто и легко.. стандартными средствами!
А в условиях про Dll и еще всякий хлам не говорилось!!!
Post #: 11
Хитрая прога на Delphi - 2004-05-24 16:36:43   
Port 111

Сообщений: 13
Оценки: 0
Присоединился: 2004-05-22 18:29:46
Ну вот так всегда! Даже спасибо не сказал…. Обидно ……
Post #: 12
Хитрая прога на Delphi - 2004-05-25 20:50:42   
O.Bender

Сообщений: 82
Оценки: 0
Присоединился: 2004-03-16 22:41:02
Спасибо
Post #: 13
Хитрая прога на Delphi - 2004-07-03 02:30:12   
SniperTeam

Сообщений: 39
Оценки: 0
Присоединился: 2004-07-01 16:46:40
Bilia, опять опоздал. На всё коротко и ясно ответил Номолос.
А вопрос и правда ламовщинкой отдаёт…
Post #: 14
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Хитрая прога на Delphi







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.