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

Вниз

Форма   Найти похожие ветки 

 
Sniffer   (2002-06-04 15:12) [0]

Привет всем ещё раз, никто не скажет, как сделать форму, например
in shape звезды? Спасибо!


 
MBo   (2002-06-04 15:18) [1]

В FAQ и UBPFD ;)


 
Виктор Щербаков   (2002-06-04 15:19) [2]

Нужно скомбинировать регионы с помощью CombineRgn и назначить получившийся регион форме SetWindowRgn. Делать это нужно в CreateParams.


 
Виктор Щербаков   (2002-06-04 15:20) [3]

MBo © (04.06.02 15:18)
Теперь на сайте кроме FAQ еще одно ругательство появилось :)


 
MBo   (2002-06-04 15:27) [4]

>Виктор Щербаков
Я даже на память не смог написать, пришлось подглядывать ;)


 
Sniffer   (2002-06-04 15:40) [5]

>Виктор Щербаков
А если вместо CombineRgn использовать CreatePolygonRgn?
Кстати такой код вызывает почему-то исчезновение окна :
begin
R := CreateRectRgn(0, 0, 30, 30);
SetWindowRgn(Form1.Handle, R1, True);
end;
Почему?


 
Sniffer   (2002-06-04 15:42) [6]

Сорри,
begin
R := CreateRectRgn(0, 0, 30, 30);
SetWindowRgn(Form1.Handle, R, True);
end;
Почему?


 
Игорь Шевченко   (2002-06-04 16:50) [7]

С регионами - http://www.delphikingdom.com/treasury/hsdialogs.htm


 
Val   (2002-06-04 16:59) [8]

http://www.programme.ru/index.phtml?arch/032001/032001_2_3.htm#top
там есть очень полезная программка "Экзотика", с помощью которой можно по контуру рисунка создать .pas файл


 
Вовчик   (2002-06-06 20:00) [9]

function BitmapToRegion(Bitmap: TBitmap; TransColor: TColor): HRGN;
var
X, Y: Integer;
XStart: Integer;
begin
Result := 0;
with Bitmap do
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;

procedure TZast.FormCreate(Sender: TObject);
Var
bit: HRGN;
Pict: TBitMap;
begin
Pict:= TBitMap.Create; // Критим переменную типа BitMap
Pict.LoadFromFile("1.bmp"); //Загружаем картинку из файла
Bit:= BitmapToRegion(Pict, 0); //Создаем регион 0-цвет который делаем невидимым (ЧЕРНЫЙ)
SetWindowRgn(Zast.Handle, Bit, true);
end;

Должно помочь



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

Форум: "WinAPI";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
1-35260
anod
2002-07-31 00:22
2002.08.12
TColor


4-35530
rdm
2002-06-04 12:43
2002.08.12
Закрыть игру


3-35151
jonik pegas
2002-07-22 10:37
2002.08.12
Номер записи в SQL запросе


7-35479
Apocalypsys
2002-04-24 18:07
2002.08.12
BIOS&Timer


1-35365
Kurt
2002-07-29 18:19
2002.08.12
Поиск вверх/вниз по RichEdit (Memo)! и чтоб было выделение и пока





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский