Содержание материала

Code:

unit Unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, CommDlg;

 

type

TMySaveDialog = class(TSaveDialog)

protected

   procedure WndProc(var Message: TMessage); override;

end;

 

TForm1 = class(TForm)

   Button1: TButton;

   procedure Button1Click(Sender: TObject);

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TMySaveDialog.WndProc(var Message: TMessage);

const

X = 10;

Y = 30;

begin

with Message do

begin

   if ((Msg = WM_NOTIFY) and (POFNotify(LParam)^.hdr.code = CDN_INITDONE)) or

      ((Msg = WM_UPDATEUISTATE) and (WParamLo = UIS_SET)) then

   begin

     if Owner is TForm then

       SetWindowPos(GetParent(Handle), HWND_TOP, X, Y, 0, 0, SWP_NOSIZE);

   end

   else

     inherited;

end

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

TMySaveDialog.Create(Self).Execute;

end;

 

end.

 
Автор: Александр (Rouse_) Багель


 

 

Code:

unit Unit1;

 

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

 

type

TForm1 = class(TForm)

   SaveDialog1: TSaveDialog;

   Button1: TButton;

   procedure SaveDialog1Show(Sender: TObject);

   procedure Button1Click(Sender: TObject);

private

   { Private declarations }

public

 

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

{ TForm1 }

 

 

function NewSaveDlgProc(wnd:HWND; uMsg:DWORD; wParam:Integer; lParam:integer):integer; stdcall;

begin

if uMsg=WM_SHOWWINDOW then MoveWindow(wnd, 10, 30, 500, 100, True) ;

result:=CallWindowProc(Pointer(GetWindowLong(wnd,GWL_USERDATA)),wnd,uMsg,wParam,lParam)

end;

 

procedure TForm1.SaveDialog1Show(Sender: TObject);

begin

SetWindowLong(GetParent(SaveDialog1.Handle),GWL_USERDATA,

    SetWindowLong(GetParent(SaveDialog1.Handle),DWL_DLGPROC,DWORD(@NewSaveDlgProc)));

end;

 

 

procedure TForm1.Button1Click(Sender: TObject);

begin

SaveDialog1.Execute

end;

 

end.

 

 
Автор: Krid

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить