Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / API - GetTitleBarInfo / 13 сообщений из 13, страница 1 из 1
19.12.2002, 18:58
    #32082129
_Timur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
Не могу грамотно заюзать эту API - функцию на Delphi.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
......
function GetTitleBarInfo(hwnd: HWND; var pti: TTitleBarInfo): BOOL; external user32 name 'GetTitleBarInfo'; //Для верности ...
......

procedure TForm1.Button1Click(Sender: TObject);
var pti: TTitleBarInfo;
begin
GetTitleBarInfo(handle,pti);
end;
... 


Функция дергается, но в pti такая чушь попадает...
подозреваю, что либо структура pti кривая, либо соглашение о передаче параметров не то ...
Как правильно заюзать эту API-ку
...
Рейтинг: 0 / 0
19.12.2002, 19:26
    #32082139
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
Parameters

hwnd
[in] Handle to the title bar whose information is to be retrieved.
pti
[out] Pointer to a TITLEBARINFO structure to receive the information. Note that you must set TITLEBARINFO.cbSize to sizeof(TITLEBARINFO) before calling this function.
...
Рейтинг: 0 / 0
20.12.2002, 08:51
    #32082212
_Timur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
Это я читал...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  function GetTitleBarInfo(hwnd: HWND; var pti: TTitleBarInfo): BOOL; external user32 name 'GetTitleBarInfo';
var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var   pti: TTitleBarInfo;
begin
  pti.cbSize := sizeof(TTitleBarInfo);
  GetTitleBarInfo(handle,pti);
  pti.cbSize :=  0 ;
end;

end.

И ничего не вышло...
...
Рейтинг: 0 / 0
20.12.2002, 09:50
    #32082234
Тимур
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
Может кто-нибудь всё - таки ответит?
...
Рейтинг: 0 / 0
20.12.2002, 11:21
    #32082290
Тимур
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
Господа, помогите, please!!!
...
Рейтинг: 0 / 0
20.12.2002, 12:10
    #32082323
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
так что не вышло конкретно?
...
Рейтинг: 0 / 0
20.12.2002, 12:50
    #32082353
Тимур
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
Вот что вижу в отладчике
Код: plaintext
1.
pti=(cbSize: 49 ; rcTitleBar:(Left: 1242820 ; Top: 4345812 ; Right: 1242592 ; Bottom: 309 ; TopLeft:(x: 1242820 ;y: 4345812 ); BottomRight(x: 1242592 ; y: 309 ));rgstate:( 13504469 , 1 , 12459240 , 12426 , 4336860 ))

Что за мусор?

От функции я ожидаю получения информации о заголовке окна (какие канапульки, размеры, координаты).

Если я правильно мыслю, то координаты должны быть "пореальнее"

Или я чего-то недопонял?
...
Рейтинг: 0 / 0
20.12.2002, 13:41
    #32082386
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
похоже что ты это видишь до исполнения функции.
а получишь ты только вот что:

tagTITLEBARINFO = packed record
cbSize: DWORD;
rcTitleBar: TRect;
rgstate: array [0..CCHILDREN_TITLEBAR] of DWORD;
end;

TRect = packed record
case Integer of
0: (Left, Top, Right, Bottom: Longint);
1: (TopLeft, BottomRight: TPoint);
end;

у меня (Д6) всё ОК и работает....

debug inspector:

cbSize :44
rcTitleBar: (70,5,1,15,(70,5),(1,15))
rgState: (17825910, 1, 1, 17, 4208751, 4410204)
...
Рейтинг: 0 / 0
20.12.2002, 14:31
    #32082419
Тимур
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
В том то и дело, что смотрю я на эту структуру после выполнения функции...
...
Рейтинг: 0 / 0
20.12.2002, 15:03
    #32082442
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
вывод: код верен, что-то у тебя не так или с Делфи или с Виндой...
...
Рейтинг: 0 / 0
20.12.2002, 16:55
    #32082523
Тимур
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
Понял, спасибо!
...
Рейтинг: 0 / 0
20.12.2002, 23:46
    #32082652
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
У делфей бывает трабла иногда - замечал - экспортированные процедуры и с заюзанными параметрами рекордов (особенно packed) - dword - наиболее часто - у меня - не знаю как у других - частенько фигню в отладке показывает....
я на это внимание не обращаю - на крайняк стрингу присобачить - слить параметр и поглядеть - или на Application.MainForm.Caption := IntToStr (pti.rcTitleBar:Left)
имхо.
...
Рейтинг: 0 / 0
23.12.2002, 17:18
    #32083252
Тимур
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API - GetTitleBarInfo
2 KirillovA
В моем случае указанный Вами способ не помог.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / API - GetTitleBarInfo / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]