Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Размеры и положение окна в OpenDialog и т.п.   Найти похожие ветки 

 
Jenyok   (2012-04-09 10:29) [0]

Delphi 7
Вот такой пример, взятый из архива форума.
.

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   OpenDialog1: TOpenDialog;

   procedure OpenDialog1Show(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
   FDlgHandle : THandle;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

function Mover(var H: THandle): LongInt; stdcall;
begin
 repeat
   if H <> 0 then
   begin
     MoveWindow(H, 1, 1, 500, 500, true);
     ExitThread(0);
   end;
  sleep(1);
 until false;
end;

procedure TForm1.OpenDialog1Show(Sender: TObject);
begin
 FDlgHandle:=GetParent((Sender as TOpenDialog).Handle);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 ID: LongInt;
begin
 FDlgHandle:=0;
 CreateThread(nil, 0, @Mover, @FDlgHandle, 0, ID);
 OpenDialog1.Execute;
end;

end.

.
Выдает следующую ошибку при трансляции.
[Error] Unit1.pas(52): Types of actual and formal var parameters must be identical
.
Перечитал много раз Help по функции CreateThread, попробовал разные параметры поменять, ничего не помогает.
.
У кого какие соображения есть на этот счет ?


 
begin...end ©   (2012-04-09 10:54) [1]

> ID: LongInt
ID: Cardinal

В целом же код оставляет тягостное впечатление.


 
Jenyok   (2012-04-09 11:03) [2]

begin...end ©
.
Спасибо за подсказку.
.
А Вы бы как сделали ?
Что в коде не так то или плохо ?


 
Jenyok   (2012-04-09 11:06) [3]

begin...end ©
.
Что необходимо.
1. Изменить положение окна TOpenDialog и т.п.
2. Изменить размеры окна TOpenDialog и т.п.


 
begin...end ©   (2012-04-09 11:55) [4]

> Jenyok   (09.04.12 11:03) [2]
> А Вы бы как сделали ?

Возможно, попробовал бы поменять оконную процедуру диалога. Пример:
http://forum.sources.ru/index.php?showtopic=341847
Только в Вашем случае флаг SWP_NOSIZE в SetWindowPos не нужен.


 
Anatoly Podgoretsky ©   (2012-04-09 12:04) [5]

SetWindowPos


 
Jenyok   (2012-04-09 12:34) [6]

Спасибо большое...


 
Jenyok   (2012-04-09 19:10) [7]

Вот еще пример...
.
unit Unit2;

interface

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

const
 WMCDP = WM_User + 301;

type
 TForm1 = class(TForm)
   Button1: TButton;
   OpenDialog1: TOpenDialog;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
   procedure CDP(var Msg: TMessage); message WMCDP;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 PostMessage(handle, WMCDP, 0, 0);
 OPenDialog1.Execute;
end;

procedure TForm1.CDP(var Msg: TMessage);
var
 r: TRect;
begin
 GetWindowRect(GetParent(OpenDialog1.Handle), r);

 SetWindowPos(GetParent(OpenDialog1.Handle), HWND_TOP,
              Form1.Left + (Form1.Width - (r.Right - r.Left)) div 2,
              Form1.Top + (Form1.Height - (r.Bottom - r.Top)) div 2, 0, 0,
              SWP_NOZORDER + SWP_NOACTIVATE);
end;

end.



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

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.087 c
2-1332313764
Erwik1900
2012-03-21 11:09
2013.03.22
Объединение SQL запросов


15-1338834689
alexdn
2012-06-04 22:31
2013.03.22
Вот что то мне не верится


15-1335956639
Vik
2012-05-02 15:03
2013.03.22
Delphi7 help


15-1346860652
Дмитрий С
2012-09-05 19:57
2013.03.22
Generic и неGeneric типы одинаковые в памяти?


2-1345366688
Наивный
2012-08-19 12:58
2013.03.22
Как избежать разрушения после TMyIoClass.Destroy.