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

Вниз

Resize формы при при bsNone   Найти похожие ветки 

 
Алексей А.   (2003-07-11 12:31) [0]

У моей формы свойство BorderStyle равно bsNone, но мне нужно, чтобы размеры формы можно было изменить...
На этот счет у меня есть 2 соображения: Нужно либо эмулировать движение мыши по краям формы, либо убрать Caption, и border сделать под цвет фона.
Что лучше(проще) и как это сделать???


 
Poirot   (2003-07-11 12:34) [1]

Первое лучше! Эмулировать необязательно! Просто при зажатии кнопки и удержании... а при движении меняйразмеры... самы просто способ... т.е. надо 2 евента обрабатывать MouseDown b MouseMove


 
Юрий Федоров   (2003-07-11 12:34) [2]

Этот вопрос пора заносить в Чаво уже :-)
Нужно обработать WM_NCHITTEST


 
Игорь Шевченко   (2003-07-11 12:50) [3]

Юрий Федоров © (11.07.03 12:34)


> Нужно обработать WM_NCHITTEST


В каком месте ? :)))


 
Юрий Федоров   (2003-07-11 12:57) [4]

>>Игорь Шевченко © (11.07.03 12:50)
Возможно я погорячился, каюсь. Хотя не уверен, а проверять лень :-)


 
Игорь Шевченко   (2003-07-11 13:01) [5]

Юрий Федоров © (11.07.03 12:57)

Нет, не погорячился, можно и через NCHITTEST, но очень долго. Надо отслеживать координаты мыши относительно краев формы и возвращать HTTOPLEFT, HTBOTTOMLEFT, HTLEFT, и еще 9 комбинаций.

Лучше бы, наверное, при создании формы указать-таки стиль WS_SIZEBOX


 
stone   (2003-07-11 14:07) [6]

Я это делал так:

unit AnTxtPrg;

interface

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

type
Tfm_AnTxtPrg = class(TForm)
Animate: TAnimate;
la_Message: TLabel;
Panel1: TPanel;
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
protected
procedure CreateParams(var Params: TCreateParams); override;
private
{ Private declarations }
public
{ Public declarations }
end;

var
fm_AnTxtPrg: Tfm_AnTxtPrg;

implementation

{$R *.dfm}

var
Moving: Boolean;
OldX, OldY: Integer;

procedure Tfm_AnTxtPrg.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
Style := Style or WS_BORDER or WS_THICKFRAME;
end;

procedure Tfm_AnTxtPrg.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
OldX := X;
OldY := Y;
Moving := true;
end;
end;

procedure Tfm_AnTxtPrg.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
Moving := false;
end;

procedure Tfm_AnTxtPrg.FormMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if Moving then
Self.SetBounds(Self.Left+X - OldX, Self.Top + Y - OldY, Self.Width, Self.Height);
end;

end.


 
Игорь Шевченко   (2003-07-11 14:23) [7]

stone © (11.07.03 14:07)

Это вроде не resize...Это вроде move...


 
stone   (2003-07-11 14:27) [8]


> Это вроде не resize...Это вроде move...


Совершенно верно, но resize тоже работает :))
Могу выслать пример.


 
Алексей А.   (2003-07-12 11:51) [9]

Все неплохо, но рамка мне все же не нужна...



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

Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
1-77937
wef
2003-07-10 14:46
2003.07.24
Потоки


14-78130
Председатель
2003-07-06 10:58
2003.07.24
Мисс Delphi


14-78051
Soft
2003-07-06 03:01
2003.07.24
Мы убьем машинами Вселенную


3-77778
Солер
2003-07-02 12:38
2003.07.24
Как скопировать строку DBGrid?


6-78026
Style
2003-05-20 08:30
2003.07.24
NetApi32





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