|
#1
|
|||
|
|||
SetWindowPos
1)Это же процедура её надо прописывать в интерфейсе и в имплементейшене?
2)procedure SetWindowPos(Wnd, WndInsertAfter: HWnd; X, Y, cx, cy: Integer; Flags: Word); Если некоторых параметров я не знаю, что вместо них писать? мне известно только X, Y, cx, cy Последний раз редактировалось bloomder, 09.01.2013 в 14:14. |
#2
|
||||
|
||||
добавь модуль Windows
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
Цитата:
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure SetWindowPos(nil, nil, 273, 181, 783, 410, nil); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin end; procedure SetWindowPos(nil, nil, 273, 181, 783, 410, nil); begin end; end. |
#4
|
|||
|
|||
Вот эта строка
Код:
SetWindowPos(nil, nil, 273, 181, 783, 410, nil); поэтому для начала выкиньте из этого кода строки 30,31,32 и 12. Во вторых, а нужна ли Вам именно эта процедура? Может быть использовать свойства формы Left,Top,Width,Height ? А если использовать именно эту процедуру, то первым параметром должен быть Handle того окна, положение которого хотим изменить, А последнего никак не nil, а в крайнем случае 0, а если нет, то смотреть в справке Microsoft, например здесь. |
#5
|
||||
|
||||
Видимо ТС не понимает, что пишет. Недавно он хотел получить окно по его размеру, потом написал, мол где-то нашел, что это якобы делается через SetWindowPos (хотя здравый смысл подсказывает, что функция с названием "установить позицию окна" делает что-то другое). Вместо того, чтобы разобраться с функцией и понять, что она тут никаким боком, стал пытаться ее подключить, даже особо не вникая в принципы синтаксиса Delphi.
Если все еще нужно получить окно по размеру - то это EnumWindows + GetWindowRect. Если надо установить размер окна - SetWindowPos является функцией WinAPI, то есть принадлежит интерфейсу Windows. Она уже написана, в самой винде. Как следствие, пытаться написать ее самому (что сделано в приведенном коде) является сущей глупостью, ее нужно импортировать, подключив модуль Windows, и использовать (о чем сказал NumLock). Никак не могу понять, ну неужели действительно так сложно набрать что-нибудь типа "SetWindowPos" в гугле, получить ссылку на тот самый msdn (которую дал icWasya) или vsokovikov.narod.ru (если с английским ну совсем никак) и прочитать описание, что зачем нужно и что эта функция делает? jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 09.01.2013 в 17:48. |
#6
|
|||
|
|||
Ну в Гугл человек наверно залезал, ибо откуда взялось вот это
SetWindowPos(Wnd, WndInsertAfter: HWnd; X, Y, cx, cy: Integer; Flags: Word); Только вопрос был "А чего с этим теперь делать?" |
#7
|
||||
|
||||
Если бы нормально пошарился по гуглу, попал бы на MSDN с наиподробнейшим описанием всех параметров, зачем что надо юзать. Понял бы, что это WinAPI, и посмотрел бы, как с ним работают, что такое хендлы, зачем они, как все это организовано.
jmp $ ; Happy End! The Cake Is A Lie. |