Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.09.2012, 17:54
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию Плавное изменение размеров формы

Здравствуйте, как нибудь можно реализовать красивое, плавное изменение формы? заранее благодарен
P.S. таймер не предлогать)
Ответить с цитированием
  #2  
Старый 06.09.2012, 18:53
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Вообще-то
Цитата:
красивое, плавное изменение формы
уже реализовано по-умолчанию: ставишь свойство формы BorderStyle в bsSizeable и потом левой клавишей мыши за края формы изменяешь ее размеры.
P.S А при чем здесь таймер?



Вопрос яснее пожалуйста, и обьяснение, чем таймер не устраивает. Если установить значение Interval таймера <10 то плавнее будет уже некуда.
Ответить с цитированием
Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение:
sariman (06.09.2012)
  #3  
Старый 06.09.2012, 19:33
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

я имею ввиду программно, например когда пытаюсь ширину формы сделать больше)
Ответить с цитированием
  #4  
Старый 06.09.2012, 21:44
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Че сложного-то? Головой немного подумать всего-то надо...
Код:
procedure TForm1.MyResize(NewWidth : Integer);
var
  I : Integer;
  N : Integer;
  S : Integer;
begin
  N := Abs(NewWidth - Self.Width);
  S := Sign(NewWidth - Self.Width);
  For I := 1 To N Do
    Begin
       Self.Width := Self.Width + S;
       Sleep(100);                          // <-- задержка
       Application.ProcessMessages;  // <-- обработать сообщения, чтоб все не висло
       // Self.Update; // <-- иногда само не отрисовывается. тогда - раскоменнтировать.
    End;
end;

Последний раз редактировалось lmikle, 08.09.2012 в 10:05.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
sariman (06.09.2012)
  #5  
Старый 06.09.2012, 22:43
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

ругается на Sigh
Ответить с цитированием
  #6  
Старый 06.09.2012, 22:47
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Поиск по папке Source, в будущем всегда выручит. Используй юнит Math.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
sariman (06.09.2012)
  #7  
Старый 06.09.2012, 22:48
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

использовал math, результата 0
Ответить с цитированием
  #8  
Старый 06.09.2012, 22:50
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

там ошибка, нужно sign а не sigh, все пашет) спасибо) однако не очень плавное)
Ответить с цитированием
  #9  
Старый 06.09.2012, 22:51
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Уменьши нарастание/убавление на нужную величину, поиграйся с параметром Sleep.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
sariman (06.09.2012)
  #10  
Старый 06.09.2012, 22:54
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

ок, спасибо, еще есть вопрос, возможно ли сделать label полупрозрачным?
Ответить с цитированием
  #11  
Старый 06.09.2012, 22:56
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

КрасЯвости нравятся? Попробуй AlphaSkins (или как там пишется правильно).
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
sariman (07.09.2012)
  #12  
Старый 06.09.2012, 22:58
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

о даа нравится)) юзал AlphaSkins подобного там нету) и вообще не хочу использовать компоненты, большинство корявые и весят много
Ответить с цитированием
  #13  
Старый 06.09.2012, 23:01
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Тогда пиши свои.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
sariman (07.09.2012)
  #14  
Старый 06.09.2012, 23:01
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Сам тогда пиши компоненты. Если немного переделать орикинальный TLabel, то можно многое сделать. И прозрачность в том числе.
Ответить с цитированием
Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение:
sariman (07.09.2012)
  #15  
Старый 06.09.2012, 23:04
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

нету опыта в создании своих компонентов, юзал гугл, нашел WPF, но как я понимаю, пишется на другом языке
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:45.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter