Вниз
Скачать: CL | DM;

стандартный диалог   Найти похожие ветки 

 
dim2001   (2002-02-13 19:48) [0]

Подскажите, пожалуйста, можно ли вывести стандартное окно диалога из VCL в заданной позиции экрана? СПАСИБО.


 
Igor_ ©   (2002-02-15 13:17) [1]

Набрел в хелпе,MessageDlgPos - гоаорят, что остальные парамерты те же что и в MessageDLg


 
dim2001   (2002-02-15 14:00) [2]

речь идет о странице Dialogs (открытие, закрытие файла итд) как быть в этом случае ???


 
Serghei   (2002-02-15 14:07) [3]

Попробуй SetWindowPos!


 
Dimka Maslov ©   (2002-02-15 15:07) [4]


Вот пример. На форму нужно поставить Button и OpenDialog и назначить обрабтчики событий OnClick и OnShow cooтветственно. Однако у данного примера есть существенный недостаток: при первом появлении на экране, или после того как пользователь перетащит диалого на экране, диалог сначала появиться на старом месте, после чего "прыгнет" на новое.

unit Unit1;

interface

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


const
WM_OpenDialogShow = $AAAA;

type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
procedure OpenDialog1Show(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
procedure WMOpenDialogShow(var Message: TMessage); message WM_OpenDialogShow;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.OpenDialog1Show(Sender: TObject);
var
Left, Top: Integer;
begin
Left:=50; Top:=60;
PostMessage(Handle, WM_OpenDialogShow, Left, Top);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
end;

procedure TForm1.WMOpenDialogShow(var Message: TMessage);
var
Rect: TRect;
Handle: HWND;
Width, Height: Integer;
begin
Handle:=GetParent(OpenDialog1.Handle);
GetWindowRect(Handle, Rect);
Width:=Rect.Right-Rect.Left;
Height:=Rect.Bottom-Rect.Top;
MoveWindow(Handle, Message.wParam, Message.lParam, Width, Height, True);
end;

end.



 
dim2001   (2002-02-15 17:56) [5]

ДЛЯ Serghei
Если Вам не трудно, опишите,пожалуйста, параметры SetWindowPos и как этой процедурой пользоваться например для диалога открытия файла


 
Serghei   (2002-02-15 18:04) [6]

2 dim2001
К сожалению ухожу домой - дела!
Данную фукцию найдете в Win32.hlp или еще проще нажав F1 ili Ctrl+F1 когда на ней (на функции) находится курсор!
Для справки - сам пробовал сделать, на лету, получилось то что менялся только размер самого диалога а позиция оставалась неизменной! :0( Попробуйте поработать с нею и с MoveWindow!
Udaci!



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
7-9311
Никто
2001-11-30 04:20
2002.03.04
Системный таймер в XP (55 or 10 ms)


14-9292
Nest
2002-01-15 14:43
2002.03.04
Встала задача сделать презентацию софта. Кто делал что-нить подобное- посоветуйте. Не могу найти доку по PowerPoint. Ещё нужна прога чтоб записать AVI-скриншот-мультик.


1-9131
Димка777
2002-02-17 01:08
2002.03.04
Посоветуйте TreeView, у которого бы TreeNode содержали какой-то control (edit, button...)


6-9263
Leviathan
2001-12-10 22:29
2002.03.04
Ошибка на сокете


4-9327
Fellomena
2002-01-04 12:29
2002.03.04
RichEdit1.SelAttributes.Color := $000FFF; - есть альтернативы для одного символа в строке ?




   Наверх