Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

круглая кнопка

14K
10 мая 2007 года
Baxtiyor
28 / / 23.02.2007
:( Пожалуйста помогите создать круглий или овалный кнопка (button). спосибо заранее!!!
261
10 мая 2007 года
ahilles
1.5K / / 03.11.2005
нарисовать рисунок на форме, и обрабатывать нажатия мыши, если мышь попала в область рисунка, значит кнопку нажали
попадение в область можно, например, вычислить взяв центр кнопки и коррдинату нажати,я если расстояние меньше радиуса, то всё нормально
257
10 мая 2007 года
kosfiz
1.6K / / 18.09.2005
Baxtiyor
а ты по форуму искал? подобные темы не раз поднимались, попробуй http://forum.codenet.ru/search.php
14K
12 мая 2007 года
Baxtiyor
28 / / 23.02.2007
Спосибо за ответ! я пробовал все ок... но я хотел в с# юзер контрол. с круглым буттоном. а так нормально.....
16K
21 мая 2007 года
right_systems
29 / / 08.11.2006
SetWindowRgn тебя спасет. Может по крайней мере :)
Привожу свой старый паскалевский код, который делает форму в виде произвольной картинки. Под свои нужды его переделать будет не сложно.
Код:
function BitmapToRegion(Bitmap:TBitmap; TransColor:TColor): HRGN;  //TransColor - цвет, декларированный как прозрачный
var x, y: Integer;
    xStart: Integer;
begin
     Result:=0;
     with Bitmap do begin
       for y:=0 to Height-1 do begin
         x:=0;
         while x<Width do begin
           while (x<Width) and (Canvas.Pixels[x, y]=TransColor) do
             inc(x);
             if x>=Width then Break;
             xStart:=x;
             while (x<Width) and (Canvas.Pixels[x, y]<>TransColor) do
               inc(x);
             if Result=0 then
               Result:=CreateRectRgn(xStart, y, x, y + 1)
             else
               CombineRgn(Result, Result, CreateRectRgn(xStart, y, x, y + 1), RGN_OR);
           end;
         end;
     end;
end;


procedure TForm1.FormPaint(Sender: TObject);
begin
     if bmp<>nil then
       Canvas.Draw(0, 0, bmp);
end;

procedure TForm1.HitTest;
begin
     inherited;
     if  MSG.Result = htClient then  
       MSG.Result := htCaption;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
     if bmp=nil then begin
       bmp:=TBitmap.Create;
       bmp.LoadFromResourceName(HInstance, 'LOGO');
     end;
     BorderStyle:=bsNone;
     SetWindowRgn(Handle, BitmapToRegion(bmp, RGB(255, 255, 255)), true);
     SetBounds((Screen.Width-bmp.Width) div 2, (Screen.Height-bmp.Height)div 2, bmp.Width, bmp.Height);
     Refresh;
end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог