Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

AlphaControls

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 18.08.2012, 18:56   #1
 Разведчик
Аватар для pavel!
 
pavel! никому не известный тип
Регистрация: 30.09.2010
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию AlphaControls

Привет ребят, залез тут на сайт скинов AlphaControls и в надежде найти новые скины увидил такое:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Сразу же подался в гугле, выдало совсем другое (круглые формы) , но там же не круглая форма, и не сама форма, а скин такой . Скачал Demo , открыл и не увидил не чего такого крутого :0 .
В скин манаджере выбрано 2 скина, как я понел они как то соединилися (:
Мб кто знает как создать такую форму или скин, объясните пожалуйста
  Ответить с цитированием
Старый 18.08.2012, 22:44   #2
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: AlphaControls

Все просто. Есть уже процедура SetWindowRgn, она позволяет создавать окна какой угодно формы. Ругион автоматически уничтожается при закрытии окна. Вот пример использования:

Код:
procedure TForm1.FormCreate(Sender: TObject);

const
  W = 36 * pi / 180;
var
  R, R1, R2: HRgn;
  X, Y, i: integer;

  function S(a: integer; R: integer): integer;
  begin
    Result := round(R * sin(W * a));
  end;

  function C(a: integer; R: integer): integer;
  begin
    Result := round(R * cos(W * a));
  end;

  function GetStarReg(X, Y, R: integer): HRgn;
  var
    P: array [0 .. 4] of TPoint;
  begin
    P[0] := Point(X, Y - R);
    P[1] := Point(X - S(4, R), Y - C(4, R));
    P[2] := Point(X - S(8, R), Y - C(8, R));
    P[3] := Point(X - S(2, R), Y - C(2, R));
    P[4] := Point(X - S(6, R), Y - C(6, R));
    Result := CreatePolygonRgn(P, 5, WINDING);
  end;

begin
  X := Width div 2;
  Y := Height div 2;
  R := GetStarReg(X, Y, 100);
  i := 1;
  repeat
    R1 := GetStarReg(X - S(i, 120), Y - C(i, 110), 40);
    CombineRgn(R, R, R1, RGN_OR);
    inc(i, 2);
  until i > 9;
  R1 := GetStarReg(X, Y, 30);
  CombineRgn(R, R, R1, RGN_DIFF);

  R1 := CreateEllipticRgn(3, 3, Width - 6, Height - 6);
  R2 := CreateEllipticRgn(20, 10, Width - 20, Height - 10);
  CombineRgn(R1, R1, R2, RGN_DIFF);
  CombineRgn(R, R, R1, RGN_OR);

  SetWindowRgn(Handle, R, True);
end;
________________

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';
  Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] AlphaControls Number/1/ Вопросы и ответы, обсуждения 3 19.01.2012 19:50
[Помогите!] AlphaControls Andry lomakin Вопросы и ответы, обсуждения 1 15.01.2012 16:53
[Помогите!] alphacontrols Andry lomakin Вопросы и ответы, обсуждения 3 09.01.2012 12:31
[Куплю] Ищу челвека для создания скина к AlphaControls Рэйзор Товары/услуги в Сети 0 02.09.2010 11:12

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 18:31.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net