Главная страница
    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.013 c
14-78139
aterm
2003-07-08 14:24
2003.07.24
grids?


14-78118
sucer
2003-07-08 05:00
2003.07.24
Как получить изображение?


14-78064
Knight
2003-07-06 12:52
2003.07.24
Модем и молния...


14-78079
Officeman
2003-07-05 17:26
2003.07.24
! Как закодировать какойлибо файл?!


3-77790
Pauk
2003-06-30 16:05
2003.07.24
DLL и Table





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