Как узнать информацию об окне?
Модератор: Модераторы
-
badaninslava
- постоялец
- Сообщения: 101
- Зарегистрирован: 12.12.2005 00:21:44
Как узнать информацию об окне?
Как узнать информацию об окне(положение и размер) по его Handle?
-
badaninslava
- постоялец
- Сообщения: 101
- Зарегистрирован: 12.12.2005 00:21:44
-
badaninslava
- постоялец
- Сообщения: 101
- Зарегистрирован: 12.12.2005 00:21:44
-
badaninslava
- постоялец
- Сообщения: 101
- Зарегистрирован: 12.12.2005 00:21:44
Вот http://www.sources.ru/pascal/graph/xwinfpc/index.htm посмотри. А вообще ж надо предупреждать что это вопрос про X Window
-
badaninslava
- постоялец
- Сообщения: 101
- Зарегистрирован: 12.12.2005 00:21:44
Статью "X WINDOW средствами Free Pascal" я читал, но там ведётся работа с окном, созданным с нуля, так сказать на API.
А меня интересует работа с уже созданным и "работающим" окном.
Поэтому я и задал вопрос в разделе "Lazarus".
IUnknown и SovNarKom спасибо, что откликнулись.
Я вообщето думал, что здесь тех кто под виндой сисдит меньшинство, а по ходу дела практически все...
А меня интересует работа с уже созданным и "работающим" окном.
Поэтому я и задал вопрос в разделе "Lazarus".
IUnknown и SovNarKom спасибо, что откликнулись.
Я вообщето думал, что здесь тех кто под виндой сисдит меньшинство, а по ходу дела практически все...
-
badaninslava
- постоялец
- Сообщения: 101
- Зарегистрирован: 12.12.2005 00:21:44
IUnknown писал(а):Как-то я существенной разницы не вижу как окно было создано, что мешает вызвать функцию XGetWindowAttributes ? display = XOpenDisplay(display_name) - оно? TWindow - это дескриптор, значит полагаю Handle в Lazarus, хотя не уверен, 3 года уже иксы в глаза не видел.
Ну мне это понятно, а как определить display_name?
У меня ведь кроме Form1.Handle никакой информации об окне нет.
Код: Выделить всё
XGetWindowAttributes(para1:PDisplay; para2:TWindow; para3:PXWindowAttributes):TStatus;Ето описание этой функции.
Код: Выделить всё
TXWindowAttributes = record
x, y : cint;
width, height : cint;
border_width : cint;
depth : cint;
visual : PVisual;
root : TWindow;
c_class : cint;
bit_gravity : cint;
win_gravity : cint;
backing_store : cint;
backing_planes : culong;
backing_pixel : culong;
save_under : TBool;
colormap : TColormap;
map_installed : TBool;
map_state : cint;
all_event_masks : clong;
your_event_mask : clong;
do_not_propagate_mask : clong;
override_redirect : TBool;
screen : PScreen;
end;Это описание переменной para3.
display_name:Pchar здесь вроде не встречается.
И опять же XGetWindowAttributes не вызвать, т.к. я не знаю display {para1}.
Замкнутый круг.
Чего я невтыкаю? Помогите пожалуйста.
Код: Выделить всё
var
display_name: array [0..30] of Char;
win: TWindow;
win_attr: TXWindowAttributes;
name := getenv('DISPLAY');
for i:=1 to byte(name[0]) do
display_name[i-1]:=name[i];
display_name[byte(name[0])]:=#0;
XGetWindowAttributes(display, win, @win_attr);
Скопипейстил из той самой статьи которую ты читал
-
badaninslava
- постоялец
- Сообщения: 101
- Зарегистрирован: 12.12.2005 00:21:44
-
badaninslava
- постоялец
- Сообщения: 101
- Зарегистрирован: 12.12.2005 00:21:44
-
badaninslava
- постоялец
- Сообщения: 101
- Зарегистрирован: 12.12.2005 00:21:44
