Вниз
Скачать: CL | DM;

Вопросы по ListView1   Найти похожие ветки 

← →
Trubis   (2005-06-23 00:06) [0]

Как запретить изменение ширины столбцов?
Ну всё облазил :((
Если клик мышой вне списка (н-р в списке 5 пунктов, а клик на 7), то почему пропадает выделение предыдуще-выделенного пункта. Как оставить?


← →
ECM ©   (2005-06-25 16:40) [1]

Как запретить изменение ширины столбцов?
На KOL? Легко!... :)
type
 TWndProc = function (hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;

var
 HdrDefWndProc: TWndProc = nil;

function HdrWndFunc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
 Case Msg of
   WM_SETCURSOR,WM_MOUSEMOVE: Result := 0;
 else
   Result := CallWindowProc(@HdrDefWndProc,hWnd,Msg,wParam,lParam);
 end;
end;

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
var
 Header: THandle;
begin
 Header := ListView1.Perform(LVM_GETHEADER,0,0);
 HdrDefWndProc := Pointer(GetWindowLong(Header,GWL_WNDPROC));
 if Assigned(HdrDefWndProc) then
   SetWindowLong(Header,GWL_WNDPROC,Integer(@HdrWndFunc));
end;


Если клик мышой вне списка (н-р в списке 5 пунктов, а клик на 7), то почему пропадает выделение предыдуще-выделенного пункта. Как оставить?

На KOL? ... еще легче...:)

function TForm1.ListView1Message(var Msg: tagMSG;
 var Rslt: Integer): Boolean;
var
hti: TLVHitTestInfo;
begin
 Result := FALSE;
 if Msg.message = WM_LBUTTONDOWN then begin
   hti.pt.X := LoWord( Msg.lParam );
   hti.pt.Y := HiWord( Msg.lParam );
   Result := ListView1.Perform(LVM_HITTEST,0,Integer(@hti)) = -1;
 end;
end;


← →
ECM ©   (2005-06-25 17:40) [2]

з.ы. увидел неточность:

function TForm1.ListView1Message(var Msg: tagMSG;
var Rslt: Integer): Boolean;
var
hti: TLVHitTestInfo;
begin
Result := FALSE;
if (Msg.message = WM_LBUTTONDOWN) or (Msg.message = WM_RBUTTONDOWN) then begin
  hti.pt.X := LoWord( Msg.lParam );
  hti.pt.Y := HiWord( Msg.lParam );
  Result := ListView1.Perform(LVM_HITTEST,0,Integer(@hti)) = -1;
end;
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.071 c
2-1138978461
Дмитрий_177
2006-02-03 17:54
2006.02.19
Повторить какуюнибудь процедуру или функцию несколько раз


3-1135080293
wild_arg
2005-12-20 15:04
2006.02.19
Спонтанные округления


15-1138284048
DelphiMangler
2006-01-26 17:00
2006.02.19
Откомпилировать C-файлы и H-файлы


2-1138766232
mss
2006-02-01 06:57
2006.02.19
Как сделать


1-1137584674
UnDISCOvery
2006-01-18 14:44
2006.02.19
Каким образом будут располагаться файлы на диске?




   Наверх