Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2007, 16:57   #1
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию Сглаживание углов формы.

BorderStyle:=bsNone;

Подскажите пожалуйста как сгладить углы формы. Хочется с каждого из четырех углов убрать 1 пиксель (сделать его прозрачным).
Помогите пожалуйста, это очень важно для меня.
celovec вне форума Ответить с цитированием
Старый 15.06.2007, 17:20   #2
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию

так работай над канвой... точки ставиш и делаеш прозрачным тот цвет которым ты зделал точки...
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Старый 15.06.2007, 17:24   #3
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Расскажите пожалуйста подробней, я новичок в Delphi.
celovec вне форума Ответить с цитированием
Старый 15.06.2007, 17:31   #4
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию

Canvas - это поверхность на которой возможно рисовать разные фигуры... там можно выбирать цвет карандаша(Pen), кисти(Brush) и всякие разные настройки,
пример:
Form1.canvas.pen.color:=clred;
form1.canvas.point(x,y) // - это кажысь точка, давно с этим не работал, точно не скажу...
Думаю розберёшся. УДачи!
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Старый 15.06.2007, 19:20   #5
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

С вашей идеей так и не получилось разобраться, но смотрите что я нашел:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  r1 := CreateRectRgn(0, 2, 250, 248);
  r2 := CreateRectRgn(2, 2, 248, 0);
  region := CreateRectRgn(0,0,250,250);
  CombineRgn(region, r1, r2, RGN_OR);
  SetWindowRgn(Handle, region, TRUE);
end;
С помощью этого у меня получилось убрать 1 пиксель с верхнего левого и правого края формы. Блин а вот с нижнего правого и левого края не получается. Подскажите пожалуйста как это сделать.
celovec вне форума Ответить с цитированием
Старый 15.06.2007, 23:33   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

procedure TForm1.FormCreate(Sender: TObject);
begin
r1 := CreateRectRgn(0, 2, 250, 248);
r2 := CreateRectRgn(2, 0, 248, 250);
region := CreateRectRgn(0,0,250,250);
CombineRgn(region, r1, r2, RGN_OR);
SetWindowRgn(Handle, region, TRUE);
end;
вообще форму можно создать любой формы (простите за тафтологию) но конечно это будет посложнее
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 15.06.2007 в 23:42.
mutabor вне форума Ответить с цитированием
Старый 16.06.2007, 07:54   #7
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Сообщений: 321
По умолчанию

Вы уже объясняли бы для всех, а то кто нибудь начнёт читать, пробовать, а с этим ещё не сталкивался. Начнет запускать Ваш код, а он не пойдёт, так как не указано, что:
var
r1,r2,region:HRGN;
Трофимов Александр вне форума Ответить с цитированием
Старый 16.06.2007, 16:48   #8
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Если любите работать с регионами, есть хорошая вещь: FormRGN.
zetrix вне форума Ответить с цитированием
Старый 16.06.2007, 21:58   #9
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от Трофимов Александр Посмотреть сообщение
Вы уже объясняли бы для всех, а то кто нибудь начнёт читать, пробовать, а с этим ещё не сталкивался. Начнет запускать Ваш код, а он не пойдёт, так как не указано, что:
var
r1,r2,region:HRGN;
я специально не указал, чтоб он машинально не скопировал, у него они глобальные
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 09.02.2009, 23:44   #10
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

я использовал вот ваш код
Код:
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
r1,r2,region:HRGN;
begin
r1 := CreateRectRgn(0, 2, 250, 248);
r2 := CreateRectRgn(2, 0, 248, 250);
region := CreateRectRgn(0,0,250,250);
CombineRgn(region, r1, r2, RGN_OR);
SetWindowRgn(Handle, region, TRUE);
end;

end.
И получаеться, при перетягивании формы мы пепретягиваем прямоуголник, в который вписана наша рабочая область, а не сама область перетягиваеться! Вот при перетягивании любой программы (не прямоуголной) мы же не перетягиваем прямогуголник в которую она описана!
Lemo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Про формы в длл Altera Общие вопросы Delphi 2 24.06.2008 22:19
Формы Diamand Общие вопросы Delphi 3 23.06.2008 13:49
Фон формы FAiver Общие вопросы Delphi 4 15.12.2007 23:09
обозначение углов BuBen4ik Помощь студентам 3 18.04.2007 14:11
формы LeoN Общие вопросы Delphi 22 13.11.2006 08:33