:: MVP ::
|
|
:: RSS ::
|
|
|
Как изменить цвет текста TListView?
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
ListView1.Canvas.Font.Color := clRed;
end;
|
Как изменить цвет текста выделенной строки TListView?
// Способ первый
uses
{...,} CommCtrl;
procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Item: TListItem;
begin
Item := (Sender as TListView).GetItemAt(X, Y);
if Item = nil then
Exit;
SendMessage(Item.Handle, LVM_SETTEXTCOLOR, 0, RGB(255, 0, 0));
end;
// Способ второй
uses
{...,} CommCtrl;
procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Item: TListItem;
begin
Item := (Sender as TListView).GetItemAt(X, Y);
if Item = nil then
Exit;
ListView_SetTextColor(Item.Handle, RGB(255, 0, 0));
end;
|
Как реализовать подчеркивание элемента TListView при наведении на него мыши?
uses
{...,} CommCtrl;
type
TForm1 = class(TForm)
ListView1: TListView;
procedure ListView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);
private
public
end;
{...}
implementation
procedure TForm1.FormCreate(Sender: TObject);
const
LVS_EX_UNDERLINEHOT = $00000800;
var
Styles : DWord;
begin
Styles := ListView_GetExtendedListViewStyle(ListView1.Handle);
Styles := Trunc(Styles + LVS_EX_UNDERLINEHOT - LVS_EX_FULLROWSELECT);
ListView_SetExtendedListViewStyle(ListView1.Handle, Styles);
end;
procedure TForm1.ListView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
AItem : TListItem;
begin
AItem := ListView1.GetItemAt(X, Y);
if not Assigned(AItem) then
ListView1.Cursor := crArrow
else
ListView1.Cursor := crHandPoint;
end;
|
Как выбрать строку списка средней кнопкой мыши?
procedure TMainForm.lvKeyboardLayoutsMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Item: TListItem;
begin
if Button = mbMiddle then
begin
Item := (Sender as TListView).GetItemAt(X, Y);
if Assigned(Item) then
Item.Selected := True;
end;
end;
|
Как назначить заголовку TListView отдельный ImageList?
uses
{...,} CommCtrl;
procedure SetHeaderImages(ListView: TCustomListView; Images: TCustomImageList);
var
Wnd: HWND;
begin
Wnd := FindWindowEx(ListView.Handle, 0, 'SysHeader32', nil);
if Wnd <> 0 then
Header_SetImageList(Wnd, Images.Handle);
end;
|
Как прокрутить ListView к выделенному элементу?
procedure TForm1.Button1Click(Sender: TObject);
var
li: TListItem;
begin
// Запоминаем выделенный элемент
li := ListView1.Selected;
// что-то делаем со списком
// (например, обновляем)
// Возвращаемся к ранее запомненному элементу
ListView1.Selected := li;
ListView1.ItemFocused := ListView1.Selected;
ListView1.Selected.MakeVisible(True);
end;
|
Как в ListView отображать записи разным шрифтом?
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Item.Index mod 2 = 0 then
Sender.Canvas.Font.Style := [fsStrikeOut];
end;
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
if Item.Index mod 2 = 0 then
Sender.Canvas.Font.Style := [fsStrikeOut];
end;
|
Как обработать щелчок мыши в пустой области TListView?
// Способ первый
procedure TForm1.FiltersListDblClick(Sender: TObject);
begin
if FiltersList.SelCount = 0 then
ShowMessage('Щелчок в пустой области ListView');
end;
// Способ второй
procedure TForm1.FiltersListDblClick(Sender: TObject);
begin
if not Assigned(FiltersList.Selected) then
ShowMessage('Щелчок в пустой области ListView');
end;
|
При использовании материала - ссылка на сайт обязательна
|
|