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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2012, 19:19   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
Вопрос Как правильно применить код?

Есть код, который позволяет расстянуть форму за края, даже если у нее установлено свойство
Код:
BorderStyle=bsNone
Вот этот код:
Код:
type 
  TForm1 = class(TForm) 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
    procedure CreateParams(var Params: TCreateParams); override; 
  end; 

var 
  Form1: TForm1; 

implementation 

{$R *.dfm} 

procedure TForm1.CreateParams(var Params: TCreateParams); 
begin 
  inherited CreateParams(Params); 
  Params.Style := (Params.Style or WS_THICKFRAME); 
end;
Как его применить к динамический созданной форме? А то если я просто вызываю процедуру, то у меня не расстягивается форма.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 05.06.2012, 19:39   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

класс вашей формы должен иметь этот код в себе.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.06.2012, 20:24   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

А разве его там нет? Чо-т не понял.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 05.06.2012, 20:29   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Он имел ввиду что ты должен создавать форму типа TForm1 а не просто TForm
Тогда обьект-форма будет управляться таким кодом, как ты описал
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.06.2012, 20:58   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Так:
Код:
type 
  TForm1 = class(TForm) 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
    procedure CreateParams(var Params: TCreateParams); override; 
  end; 

var 
  Form1: TForm1; 

implementation 

{$R *.dfm} 

procedure TForm1.CreateParams(var Params: TCreateParams); 
begin 
  inherited CreateParams(Params); 
  Params.Style := (Params.Style or WS_THICKFRAME); 
end;
...

procedure TForm1.sSpeedButton14Click(Sender: TObject);
var
 Form: TForm1;
begin
 fFormName:=0;
//создаю форму динамически
   Form:=TForm1.Create(Self);
   Form.BorderIcons:=[biSystemMenu];
   Form.Caption:=' ';
   Form.Height:=220;
   Form.Width:=200;
   Form.Position:=poDesigned;
   Inc(xLeft,205);
   if xLeft + Form.Width > Screen.Width then
   begin
     xLeft:=0;
     Inc(xTop,50);
   end;
   Form.Top:=xTop;
   Form.Left:=xLeft;
   Inc(fFormName);
   Form.Name:='Form' + IntToStr(fFormName);
   Form.Caption:='№' + IntToStr(fFormName);
   Form.Icon.Empty;
   Form.BorderStyle:=bsNone;
   CreateParams(Params);
   Form.Color:=clRed;
???
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 05.06.2012, 22:15   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Form.BorderStyle:=bsNone;
CreateParams(Params);
А вот принудительный вызов CreateParams ИМХО лишний.
Цитата:
The CreateWnd method calls CreateParams to initialize the parameters it passes to CreateWindowHandle.
Так что твои потуги напрасны. Как гриццо - "Его не зовут, он сам приходит"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делфи. как правильно вставить код в код? Кушманский Помощь студентам 13 18.03.2012 20:06
Как правильно применить операцию Xor ? Vja4eslav Microsoft Office Excel 7 15.08.2011 10:29
Как правильно оформить код? NiKiToZZ- Помощь студентам 5 28.12.2010 12:26
C++,есть код,как правильно создать очередь? Aleksandr_Yanov Помощь студентам 0 19.08.2010 14:22