powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / API - GetTitleBarInfo
13 сообщений из 13, страница 1 из 1
API - GetTitleBarInfo
    #32082129
_Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу грамотно заюзать эту 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
API - GetTitleBarInfo
    #32082139
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
API - GetTitleBarInfo
    #32082212
_Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это я читал...
Код: 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
API - GetTitleBarInfo
    #32082234
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может кто-нибудь всё - таки ответит?
...
Рейтинг: 0 / 0
API - GetTitleBarInfo
    #32082290
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, помогите, please!!!
...
Рейтинг: 0 / 0
API - GetTitleBarInfo
    #32082323
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так что не вышло конкретно?
...
Рейтинг: 0 / 0
API - GetTitleBarInfo
    #32082353
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что вижу в отладчике
Код: 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
API - GetTitleBarInfo
    #32082386
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
похоже что ты это видишь до исполнения функции.
а получишь ты только вот что:

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
API - GetTitleBarInfo
    #32082419
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том то и дело, что смотрю я на эту структуру после выполнения функции...
...
Рейтинг: 0 / 0
API - GetTitleBarInfo
    #32082442
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вывод: код верен, что-то у тебя не так или с Делфи или с Виндой...
...
Рейтинг: 0 / 0
API - GetTitleBarInfo
    #32082523
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял, спасибо!
...
Рейтинг: 0 / 0
API - GetTitleBarInfo
    #32082652
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У делфей бывает трабла иногда - замечал - экспортированные процедуры и с заюзанными параметрами рекордов (особенно packed) - dword - наиболее часто - у меня - не знаю как у других - частенько фигню в отладке показывает....
я на это внимание не обращаю - на крайняк стрингу присобачить - слить параметр и поглядеть - или на Application.MainForm.Caption := IntToStr (pti.rcTitleBar:Left)
имхо.
...
Рейтинг: 0 / 0
API - GetTitleBarInfo
    #32083252
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 KirillovA
В моем случае указанный Вами способ не помог.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / API - GetTitleBarInfo
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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