Показать сообщение отдельно
  #29  
Старый 26.04.2009, 22:28
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Ааааааа!! Сколько вопросов! У меня сейчас взорвется голова!
Но поехали потихоньку...
Цитата:
Сообщение от одинадцатый
а как проверить чему равен checked у checkbox?
Код:
case SendMessage(CheckBoxHandle, BM_GETCHECK, 0, 0) of
  BST_CHECKED: ShowMessage('Флажок стоит');
  BST_UNCHECKED: ShowMessage('Флажок снят');
else ShowMessage('Флажок затенен');
end;
Цитата:
Сообщение от одинадцатый
скажите где и как вы всю эту информацию ищите
В Windows SDK и в книжечках.
Цитата:
Сообщение от одинадцатый
можно же как-то имея адрес ехе файла узнать запущен ли он
Можно. Раз, два, три и т.д. Перебираете все окна функцией EnumWindows и сравниваете для каждого путь к его файлу с тем путем, который имеется у вас. Если совпадают, то файл запущен.
Цитата:
Сообщение от одинадцатый
как выбрать в комбобокс один из элементов, и как прочесть тексто того который сейчас показан?
Код:
var
  CurTxt: PChar;
  CurSel: Integer;
  ElementToSelect: string;
begin
  ElementToSelect := 'qwerty'; // Впишите здесь текст элемента, который должен быть выбран
  GetMem(CurTxt, 255);
  try
    CurSel := SendMessage(ComboBoxHandle, CB_GETCURSEL, 0, 0); // индекс текущего элемента
    SendMessage(ComboBoxHandle, CB_GETLBTEXT, CurSel, Integer(CurTxt));
    ShowMessage('Текущий элемент: ' + StrPas(CurTxt));
    SendMessage(ComboBoxHandle, CB_SELECTSTRING, -1, Integer(@ElementToSelect[1]));
  finally
    FreeMem(CurTxt, 255);
  end;
end;
Если это не понятно, то ComboBoxHandle — это дескриптор ComboBox'а.
Цитата:
Сообщение от одинадцатый
как узнать чему равен enabled и visible разных элементов, в частности лабел и едит?
Есть функции IsWindowEnabled, IsWindowVisible, а также EnableWindow. Они требуют только знания дескриптора того окна, которое вы проверяете, и возвращают значения True или False. Функция EnableWindow меняет состояние и возвращает True, если окно было первоначально disabled. По поводу Label. По-моему, это вообще не окно, не может принимать фокуса и не имеет дескриптора, поэтому сильно сомневаюсь, что Win32 API тут хороший помощник. Но я могу ошибаться.

Про остальное подумаю тоже потом. Устала =) И еще не очень поняла, про развернутость окна... Это что значит — если окно развернуто на весь экран, то сообщение WM_KEYDOWN принимается, а если не развернуто, то нет?

Цитата:
Сообщение от одинадцатый
Я так понимаю она расположена на каком-то меню быстрых кнопок которе по моему имеет класс ToolbarWindows32
Посмотрите самостоятельно, имеет ли это "меню" дочерние окна:
Код:
if GetWindow(HandleOfToolbar, GW_CHILD) <> 0 then
  ShowMessage('Есть дети')
else ShowMessage('Нет детей');
HandleOfToolbar — дескриптор Toolbar'а с кнопками.
Если "дети" есть, то добраться до их дескрипторов можно с помощью функции EnumChildWindows. Хотя, вполне возможно, в Win32 API есть и специальные функции для работы с такими Toolbar.

Всё, не могу больше тыкать по кнопкам. Спокойной ночи.
Ответить с цитированием