Читаем Delphi. Трюки и эффекты полностью

Листинг 2.17.

Управление раскрывающимся списком

//Добавление строки в список

procedure AddToCombo(id: Integer; str: String);

begin

SendDlgItemMessage(hParentWnd, id, CB_ADDSTRING, 0,

Integer(PAnsiChar(str)));

end;

//Удаление строки из списка

procedure DeleteFromCombo(id: Integer; index: Integer);

begin

SendDlgItemMessage(hParentWnd, id, CB_DELETESTRING, index, 0);

end;

//Выделение строки с заданным номером

procedure SetComboSel(id: Integer; index: Integer);

begin

SendDlgItemMessage(hParentWnd, id, CB_SETCURSEL, index, 0);

end;

//Получение номера выделенной строки (CB_ERR, если нет выделения)

function GetComboSel(id: Integer): Integer;

begin

GetComboSel := SendDlgItemMessage(hParentWnd, id,

CB_GETCURSEL, 0, 0);

end;

//Получение количества строк

function GetComboCount(id: Integer): Integer;

begin

GetComboCount := SendDlgItemMessage(hParentWnd, id,

CB_GETCOUNT, 0, 0);

end;

//Получение текста строки по ее индексу

function GetComboItemText(id: Integer; index: Integer):String;

var buffer: String;

begin

SetLength(buffer,

SendDlgItemMessage(hParentWnd, id, CB_GETLBTEXTLEN,

index, 0)

);

SendDlgItemMessage(hParentWnd, id, CB_GETLBTEXT, index,

Integer(Addr(buffer)));

GetComboItemText := buffer;

end;

Сходные функции и процедуры в листинге 2.18 предназначены для управления элементом ListBox.

...

Листинг 2.18.

Управление списком

//Добавление строки в список

procedure AddToList(id: Integer; str: String);

begin

SendDlgItemMessage(hParentWnd, id, LB_ADDSTRING, 0,

Integer(PAnsiChar(str)));

end;

//Удаление строки из списка

procedure DeleteFromList(id: Integer; index: Integer);

begin

SendDlgItemMessage(hParentWnd, id, LB_DELETESTRING, index, 0);

end;

//Выделение строки с заданным номером

procedure SetListSel(id: Integer; index: Integer);

begin

SendDlgItemMessage(hParentWnd, id, LB_SETCURSEL, index, 0);

end;

//Получение номера выделенной строки (LB_ERR, если нет выделения)

function GetListSel(id: Integer): Integer;

begin

GetListSel := SendDlgItemMessage(hParentWnd, id,

LB_GETCURSEL, 0, 0);

end;

//Получение количества строк

function GetListCount(id: Integer): Integer;

begin

GetListCount := SendDlgItemMessage(hParentWnd, id,

LB_GETCOUNT, 0, 0);

end;

//Получение текста строки по ее индексу

function GetListItemText(id: Integer; index: Integer):String;

var buffer: String;

begin

SetLength(buffer,

SendDlgItemMessage(hParentWnd, id, LB_GETTEXTLEN,

index, 0)

);

SendDlgItemMessage(hParentWnd, id, LB_GETTEXT, index,

Integer(Addr(buffer)));

GetListItemText := buffer;

end;

Функции и процедуры листинга 2.19 дадут возможность управлять текстовыми полями ( Edit и Memo).

...

Перейти на страницу:

Похожие книги

Забытое
Забытое

Захватывающая история Сиенны Престон продолжается во второй части головокружительной серии «Игра обмана».Семнадцатилетняя Сиенна не понаслышке знает о душевной боли и потерях. Но на этот раз всё по-другому: кто-то вмешался в воспоминания её возлюбленного, и теперь ей предстоит найти ответы.След ведёт её к сверкающим небоскрёбам и роскоши Рубекса, столицы Пасифики, где она проникает в правительственное Ведомство интеллекта и генетики. Но ответы получить не так-то просто, особенно когда её собственные воспоминания могут быть искажены. К счастью, рядом есть Зейн Райдер, готовый помочь ей сложить вместе кусочки головоломки. Его преданность и забота размывают границу между дружбой и чем-то большим.Когда Сиенна подбирается слишком близко к тёмным секретам Ведомства, её обвиняют в убийстве видного государственного деятеля, и ей приходится пуститься в бега. Как бы ни разрывалось сердце Сиенны в попытке понять, кого она любит, это всё вскоре перестаёт иметь значение — потому что единственное, что её сейчас ждёт, это смертный приговор.

Марина Козикова , Александр Степанович Грин , Марина Суржевская , Кристин Смит

Любовное фэнтези, любовно-фантастические романы / Проза / Классическая проза / Самиздат, сетевая литература / Технические науки / Любовно-фантастические романы