Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.27;
Скачать: CL | DM;

Вниз

Form   Найти похожие ветки 

 
wwwit@lick ©   (2002-06-15 20:57) [0]

Помогите PliZZ!!! Как мне измеить вид формы (в смысле, чтобы она была не прямоугольная а, например, овальная или еще какая-нибудь)Заранее СПАСИБО


 
777 ©   (2002-06-15 21:07) [1]

SetWindowRgn


 
777 ©   (2002-06-15 21:46) [2]

если конкретнее, то
procedure TForm1.FormCreate(Sender: TObject);
var r:HRGN;
begin
r:=CreateRoundRectRgn(20,20,200,110,20,20);
SetWindowRgn(Handle, R, True);
end;


 
Groove   (2002-06-15 22:22) [3]

Что-то не работает!


 
~Rand~ ©   (2002-06-15 22:25) [4]

Удалено модератором


 
777 ©   (2002-06-15 22:28) [5]

Всё работает.


 
Groove   (2002-06-15 22:33) [6]

пишет не найдено "=" или "(" что-то такое =)


 
~Rand~ ©   (2002-06-15 22:36) [7]

Удалено модератором


 
Groove   (2002-06-15 22:38) [8]

упс точнее
Expected "=" but "(" found

my english is BAD!! =)))


 
777 ©   (2002-06-15 22:41) [9]

оччень странно, я специально отсюда скопировал
фрагмент кода в новый проект - без проблем.




 
~Rand~ ©   (2002-06-15 22:43) [10]

Удалено модератором


 
~Rand~ ©   (2002-06-15 22:44) [11]

Удалено модератором


 
Groove   (2002-06-15 22:54) [12]

~Rand~ © ==>это болезнь
777 ©===>не пашет =(
[Error] Unit1.pas(23): Undeclared identifier: "FormCreate"
[Error] Unit1.pas(27): Undeclared identifier: "Handle"
[Fatal Error] Project1.dpr(5): Could not compile used unit "Unit1.pas"


 
777 ©   (2002-06-15 22:57) [13]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var r:HRGN;
begin
r:=CreateRoundRectRgn(20,20,200,110,20,20);
SetWindowRgn(Handle, R, True);

end;

end.


 
~Rand~ ©   (2002-06-15 22:59) [14]

Удалено модератором


 
Exploited   (2002-06-16 15:51) [15]

Вот инфа с сайта http://www.delphibest.narod.ru/

Для начала нужно обеспечить возможность пользователю перемещать окно, хватаясь за клиентскую область, а не за заголовочную, т.к. полосы заголовка, собственно, у нас нет.
Сначала в частных объявлениях (после слова private) объявляем процедуру:

private
procedure WMNCHitTest(var M:TWMNCHitTest);message wm_NCHitTest;

Затем в разделе implementation описываем её так:

implementation
{$R *.DFM}
procedure TForm1.WMNCHitTest(var M:TWMNCHitTest);
begin
inherited;
if M.Result=htClient then M.Result:=htCaption;
end;


Далее самое главное. По созданию окна (событие OnCreate) пишем следующий код:

procedure TForm1.FormCreate(Sender: TObject);
var
hsWindowRegion:Integer;
begin
hsWindowRegion:=CreateEllipticRgn(50,50,350,200);
SetWindowRgn(Handle,hsWindowRegion,true);
end;


Как это сделано?

Сначала мы объявляем переменную типа Integer, называем её hsWindowRegion.В неё в дальнейшем мы поместим дескриптор созданного региона. Затем, с помощью функции CreateEllipticRgn создаём регион эллипсовидной формы. В скобках ей указываем координаты для построения эллипса. В зависимости от того, какие значения вы укажите, такого размера и создастся ваш эллипс. После того, как регион создан, осталось только применить его к форме. Это делается с помощью следующего кода:

SetWindowRgn(Handle,hsWindowRegion,true);

Вышеуказанной функции в качестве параметров нужно указать три вещи. Это:

1) дескриптор окна,

2) дескриптор применяемого региона и

3) указать будет ли перерисован регион (true - истина, false - ложь)




Страницы: 1 вся ветка

Текущий архив: 2002.06.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
7-89051
Knight
2002-03-25 17:39
2002.06.27
Вопросик по тёмной стороне моих знаний... Модем.


1-88863
Charlz
2002-06-17 18:09
2002.06.27
Как заменить символы в строке


8-88961
Searg
2002-02-17 19:01
2002.06.27
Мерцание при Image.Picture.LoadFromFile( *.jpg ).


8-88966
Tpv
2002-02-15 21:55
2002.06.27
Уровень звукого сигнала.


4-89067
Фантом
2002-04-29 16:50
2002.06.27
Подскажите