![]() |
![]() ![]() ![]() ![]() |
|
Определить нажатие на CheckBoxe TListViewDelphi , Компоненты и Классы , TListViewОпределить нажатие на CheckBoxe TListView
Оформил: DeeCo
procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Item: TListItem;
HitTest: THitTests;
begin
// Welchem Item gehцrt die CheckBox
// Which item belongs to the checkbox
Item := ListView1.GetItemAt(x, y);
// Was wurde vom Item genau angeklickt
// What kind of thing was hit on the item
HitTest := ListView1.GetHitTestInfoAt(x, y);
// Falls ein Item angeklickt wurde und davon die Checkbox
// If an Item was hit and exactly his checkbox
if (Item <> nil) and (HitTest = [htOnStateIcon]) then
begin
////////////////////////////////
// Hier das OnCheck behandeln //
// Handle OnCheck here //
////////////////////////////////
// Beispiel
// Example
//
// if Item.Checked = False then
// begin
// if (Item.Index = 0) or (ListView1.Items.Item[Item.Index - 1].Checked = True) then
// Item.Checked := True else Item.Checked := False;
// end else
// begin
// if (Item.Index = ListView1.Items.Count - 1) or (ListView1.Items.Item[Item.Index + 1].Checked = False) then Item.Checked := False else
// Item.Checked := True;
// end;
end;
end;
Код, предоставленный ниже, является процедурой в Delphi, которая обрабатывает событие Вот шаг за шагом, что код делает:
В целом, этот код позволяет обнаруживать, когда чекбокс на элементе списка был кликнут, и обрабатывать его состояние соответствующим образом. Альтернативное решение: Вместо переопределения события Вот, как это сделать:
Эта подход более элегантен и легче поддерживать, чем переопределение события Определить нажатие на чекбокс в TListView с помощью процедуры TForm1.ListView1MouseUp, которая проверяет, был ли нажат чекбокс конкретного элемента списка. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||