PDA

Просмотр полной версии : Вопросы по делфи!


zl0y
13.04.2007, 00:54
Вот возник вопрос .есть прога в делфи переписываю под вин апи... в обычном VCL коде ListBox1.DeleteSelected;
А под вин апи акк это зделать ?
Так не пашет :confused: :(
if (lParam = Button3) and (HiWord(wParam) = BN_CLICKED) then
begin
ListBox1.DeleteSelected;
end

taha
13.04.2007, 09:14
zl0y, на винапи с листбоксом работают через сообщения, SendMessage
Создаёшь окно получаешь хэндл и шлёшь ему message. Ну ещё листбокс можно прописать в ресурсах.

http://wasm.ru/article.php?article=1001031

гемор вобщем)))

hidden
13.04.2007, 09:38
Зажимаешь Ctrl, кликаешь на нужную функцию, смотришь как Делфи сам это делает и выделяешь полезную часть и остального мусора.

KEZ
13.04.2007, 10:34
Send an LB_GETCURSEL message to retrieve the index of the currently selected item, if any, in a single-selection list box.

LB_GETCURSEL
wParam = 0; // not used; must be zero
lParam = 0; // not used; must be zero

Parameters

This message has no parameters.

Return Values

In a single-selection list box, the return value is the zero-based index of the currently selected item. If there is no selection, the return value is LB_ERR.



An application sends an LB_DELETESTRING message to delete a string in a list box.

LB_DELETESTRING
wParam = (WPARAM) index; // index of string to delete
lParam = 0; // not used; must be zero

Parameters

index

Value of wParam. Specifies the zero-based index of the string to be deleted.
Windows 95: The wParam parameter is limited to 16-bit values. This means list boxes cannot contain more than 32,767 items. Although the number of items is restricted, the total size in bytes of the items in a listbox is limited only by available memory.

Return Values

The return value is a count of the strings remaining in the list. The return value is LB_ERR if the index parameter specifies an index greater than the number of items in the list.


HANDLE hListBox; // handle of listbox

SendMessage( hListBox, LB_DELETESTRING, SendMessage( hListBox, LB_GETCURSEL, 0, 0 ), 0 );