Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.27;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
14-89020
Sniffer
2002-05-24 22:46
2002.06.27
Цвет пикселя


7-89061
Gurban
2002-03-25 08:23
2002.06.27
Учёт количества напечатанных страниц.


1-88942
Tzota
2002-06-15 16:31
2002.06.27
Как создать что-то вроде своего диалогового окна?


14-89033
strel
2002-05-25 18:42
2002.06.27
как сдел. чтоб при запуске DPR a открывались ранее откр-е файлы


1-88911
Device
2002-06-14 19:00
2002.06.27
как избавиться от мигания при перерисовке....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский