Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.08.2014, 21:36
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
По умолчанию Как обработать Click и DblClick по ListView (WinAPi)

Здравствуйте.
Как обработать Click и DblClick по ListView(WinAPi). как и куда писать и как изенить цвет текста выделенной строки? Если не затруднит, дайте рабочий пример. Спасибо.

Последний раз редактировалось Stalker2-42, 16.08.2014 в 21:44.
Ответить с цитированием
  #2  
Старый 17.08.2014, 15:58
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

А что значит ListView(WinAPi), на чистом что-ли? Тогда покажите, как вы его создете - если окажется что примерно вот так
Код:
...
with TListView.Create(self) do
begin
parent:= Form1;
Items.Add.Caption:= 'Item 1';
items.Add.Caption:= 'Item 2';
// etc.
end;
...
то тогда пишете свои обработчики (напр. lvClick(Sender: TObject)) и при создании подключаете их к ЛВ (OnClick:= lvClick) , а насчёт покраски: DRKB - 00635

З.Ы. Другими словами - для ответа маловато исходной инфы
Ответить с цитированием
  #3  
Старый 17.08.2014, 16:39
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
По умолчанию

Приветствую!!!
Вот так:

Код:
var
   WndClassEx : TWndClassEx; // Класс окна - несёт инфу об окне (запись)
   Form, LV, {AddForm, }button, Btn2 : hwnd; //переменные для хендлов созданных объектов
   MMsg: Msg; // Входящие мессаги
.....

Case Msg Of
    WM_CREATE:
      begin
        DragAcceptFiles(Forma, True);
        GetClientRect(Forma, Rect);

        button :=  CreateWindowEx (0, 'BUTTON', 'Изменить путь', WS_CHILD or WS_VISIBLE or BS_PUSHBUTTON, 5, Rect.Bottom - 35,
        Rect.Right div 2 - 2, 35, Forma, ButtonID, HInstance, NIL);

        Btn2 :=  CreateWindowEx (0, 'BUTTON', 'Изменить путь2', WS_CHILD or WS_VISIBLE or BS_PUSHBUTTON, Rect.Right div 2 + 5, Rect.Bottom - 35,
        Rect.Right div 2 - 10, 35, Forma, BtnID, HInstance, NIL);

        LV :=CreateWindowEx(WS_EX_CLIENTEDGE,'SysListView32', '1', WS_CHILD or WS_VISIBLE or LVS_REPORT  or WS_BORDER or
          WS_TABSTOP or LVS_SINGLESEL or LVS_SHOWSELALWAYS, 5, 5, Rect.Right-10 ,Rect.Bottom - 40,Forma, LVID, HInstance,nil);
      //  SendMessage(LV, WM_SETFONT, GetStockObject(DEFAULT_GUI_FONT), 1);
        SendMessage(lv, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT or LVS_EX_GRIDLINES or LVS_EX_INFOTIP);
         // SendMessage(LV, LB_ADDSTRING, 1 , 0)

         lvc.fmt := LVCFMT_CENTER;
        lvc.mask := LVCF_TEXT + LVCF_WIDTH;
          lvc.pszText := 'Имя';
          lvc.cx := 250;
          ListView_InsertColumn(lv, 0, lvc);


          lvc.mask := lvc.mask or LVCF_FMT or LVCF_SUBITEM;
          lvc.pszText := 'ууу';
          lvc.cx := 60;
          lvc.iSubItem := 1;
          ListView_InsertColumn(LV, 1, lvc);

        //  lvc.mask := lvc.mask or LVCF_FMT or LVCF_SUBITEM;
          lvc.pszText := 'ааа';
          lvc.cx := 50;
          lvc.iSubItem := 1;
          ListView_InsertColumn(LV, 2, lvc);

        
          lvc.fmt := LVCFMT_LEFT;
          //lvc.mask := lvc.mask or LVCF_FMT or LVCF_SUBITEM;
          lvc.pszText := 'Путь к файлу';
          lvc.cx := LVSCW_AUTOSIZE_USEHEADER;//250;
          lvc.iSubItem := 1;
          ListView_InsertColumn(LV, 3, lvc);
       
      end;

  //  WM_SHOWWINDOW:  ShowWindow (AddForm, SW_SHOW{NORMAL}); // Показывем окно
    WM_LBUTTONDBLCLK:
     // if HWND(WPARAM) = LVid then
        MessageBox(0,'','',0);
      WM_DROPFILES:
        WMDropFiles( MMsg);

  WM_COMMAND: // Через это сообщение определяем нажатие на кнопку
    begin
     //Если мессага пришла от кнопки
   //   If LoWord (WParam) = ButtonID Then
        //И если это было нажатие

        If HiWord (WParam) = BN_CLICKED then
        case hwnd(WParam) of//
          Buttonid:
          begin       //  ListView_SetSelectionMark(LV,1);

         //   ListView_SetItemState(LV, 11 , LVIS_SELECTED or LVIS_FOCUSED, LVIS_SELECTED or LVIS_FOCUSED);   // я выделяю строку

     i :=  ListView_getSelectionMark(LV);    //выделенная строка

           // ListView_GetItemText(LV, 0, 7, filename, SizeOf(filename)) ;  //получение содержимого колонки путь
          SetWindowText(Form, {filename} PChar(IntToStr(i)) );
           // ListView_SetItemCountEx(LV, 1, lv);
          end;
          BtnID: MessageBox(0, '','',0);
        end;
    end;

    WM_SIZE: // Посылается после изменения размеров окна (формы)
    Begin
      GetClientRect(Form, Rect);
      SetWindowPos(LV, 0, 5, 5, Rect.Right-10, Rect.Bottom - 40, SWP_NOZORDER);
      SendMessage(LV,LVM_SETCOLUMNWIDTH, 3, LVSCW_AUTOSIZE_USEHEADER);
      SetWindowPos(button, 0, 5, Rect.Bottom - 35, Rect.Right div 2 - 2, 35, SWP_NOZORDER);
      SetWindowPos(Btn2, 0, Rect.Right div 2 + 5, Rect.Bottom - 35, Rect.Right div 2 - 10, 35, SWP_NOZORDER);
     // setwindowpos
    End;

    WM_DESTROY:
      begin
        DragAcceptFiles(Forma, False);
        PostQuitMessage(0);
      end;
    Else // Если пришедщее сообщение мы не определили:
      Result := DefWindowProc(Forma, Msg, WParam, LParam); // Эта функция обрабатывает ВСЕ ОСТАЛЬНЫЕ сообщения по умолчанию
  End; // Конец блока Case


Умудрилс DragNDrop воткнут--работает.
А вот клик и двоной клик ну ни как.

Последний раз редактировалось Stalker2-42, 17.08.2014 в 16:54.
Ответить с цитированием
  #4  
Старый 17.08.2014, 17:21
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

И вам не хворать!

Похоже тогда придётся вам ещё свою калбек-функцию подключать типа
Код:
function NewListProc(wnd:HWND; uMsg:UINT; wParam:WPARAM; 
                    lParam:LPARAM):integer; stdcall;
begin
 result:=CallWindowProc(Pointer(GetWindowLong(wnd,GWL_USERDATA)),wnd,
                         uMsg,wParam,lParam);

  if uMsg=WM_NOTIFY then
   if lParam^.hdr.code=WM_NCLBUTTONDBLCLK then
    begin
 // вот здесь обработка события
    end;
end;
с подобной заменной регистрацией
Код:
SetWindowLong(LV,GWL_USERDATA,SetWindowLong(LV, GWL_WNDPROC, LPARAM(@NewListProc)));
подсмотрел в БазеЗнаний, может чё и не так слямзил
Ответить с цитированием
  #5  
Старый 17.08.2014, 17:28
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
По умолчанию

Ругается на if lParam^.hdr.code.

А проще нельзя сделать?

Уже руки к низу.

По моей логике, если прошел dbclick, то по какому HWND:

Код:
WM_LBUTTONDBLCLK:
     if HWND = LV then
        begin
          //чтото делаем
        end;
А, получается что нет.

Последний раз редактировалось Stalker2-42, 17.08.2014 в 17:37.
Ответить с цитированием
  #6  
Старый 17.08.2014, 18:26
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
По умолчанию

Неужели нкто незнает не работал с ListView ?
Ответить с цитированием
  #7  
Старый 17.08.2014, 18:30
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

А сообщения отлавливаются, на WM_LBUTTONDBLCLK есть реагизм? Просто и правда, у вас и так уже организована "ловля", только не видно от кого пришла мессага
Ответить с цитированием
  #8  
Старый 17.08.2014, 18:49
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
По умолчанию

Скажем так. я нигде не видел примеров с Listbox и Listviev(инет и книги).
Следовательно я мало что понимаю.
Клик по самому окну проходит(MessageBox).
А как отловить сообщение от LV,ума не приложу.

Последний раз редактировалось Stalker2-42, 17.08.2014 в 20:42.
Ответить с цитированием
  #9  
Старый 17.08.2014, 18:51
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
А сообщения отлавливаются, на WM_LBUTTONDBLCLK есть реагизм? Просто и правда, у вас и так уже организована "ловля", только не видно от кого пришла мессага
Это я пробовал разные варианты.
фА если делать так==
Код:
 WM_LBUTTONDBLCLK:
      if HWND(WPARAM) = LVid then
        MessageBox(0,'','',0);
то, полная тишина.


Может надо еще что-то и где-то было указать?

ЕСТЬ КТО ЖИВОЙ?

Последний раз редактировалось Stalker2-42, 17.08.2014 в 20:44.
Ответить с цитированием
  #10  
Старый 17.08.2014, 21:37
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Оффтоп:
Цитата:
Сообщение от Stalker2-42
юююЕСТЬ КТО ЖИВОЙ?
Есть, но только слегка сильно пьяные

Вообще ифзен на время уберите (два слеша на вторую строчку) - будет ли реагировать на даблклик? В смысле ловится ли он
Ответить с цитированием
  #11  
Старый 17.08.2014, 21:52
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
По умолчанию

пьяные - счастливые

Код:
WM_LBUTTONDBLCLK:
     //if HWND(WPARAM) = LVid then
       MessageBox(0,'','',0);
если комент второй строки -- ничего.

Код:
WM_LBUTTONUP://WM_LBUTTONDOWN
    // if HWND(WPARAM) = LVid then
       MessageBox(0,'','',0);
здесь есть реакция только от самой форточки(родителя) если по ней клацать(просто клик), ListView молчит.
Может мне весь код выложить? он не большой.



хаааа. 143 просмотра темы - реакция......

Последний раз редактировалось Stalker2-42, 17.08.2014 в 22:11.
Ответить с цитированием
  #12  
Старый 17.08.2014, 22:14
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Значит нет посылки - необходимо смотреть что приходит, вероятно нужно другие константы использовать, всё может быть

З.Ы. и Оффтоп в одном флаконе (забыл как яркость у шрифта убрать без явы, шоб в глаза это не кидалось, простите): Выкладывайте на-здоровье, может кто подскажет, лично я доберусь до нормального компа лишь в сентябре, не раньше, извнт, хороший вы человек
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Stalker2-42 (17.08.2014)
  #13  
Старый 17.08.2014, 22:32
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
По умолчанию

Alegun - в отпуке?
Вот мое творение. Выкладываю как есть,с моими эксперементами.

Код:
program Project1;

uses
  Windows,
  Messages, CommCtrl, SysUtils, ShellAPI, Classes;


Const
  ButtonID = 100;
  BtnID = 101;
    LVID = 13;


  var
   WndClassEx : TWndClassEx; 
   Form, LV, button, Btn2 : hwnd; 
   MMsg: Msg; 
   item : tLVITEM;

{$R *.res}

Function WinProc(Forma: hwnd; Msg: Cardinal;wparam: WParam;LParam: Cardinal): lresult; Stdcall; 
Var
  Rect: TRect; 
  lvc	: TLVCOLUMN;
  I	: Integer;
  filename : array [0..2000] of Char;
Begin
  Result := 0; // Чтобы в случае сбоя программы до последней строки функции Windows правильно определила ошибку
  Case Msg Of
    WM_CREATE:
      begin
        DragAcceptFiles(Forma, True);
        GetClientRect(Forma, Rect);

        button :=  CreateWindowEx (0, 'BUTTON', 'Изменить путь', WS_CHILD or WS_VISIBLE or BS_PUSHBUTTON, 5, Rect.Bottom - 35,
        Rect.Right div 2 - 2, 35, Forma, ButtonID, HInstance, nil);

        Btn2 :=  CreateWindowEx (0, 'BUTTON', 'Изменить путь2', WS_CHILD or WS_VISIBLE or BS_PUSHBUTTON, Rect.Right div 2 + 5, Rect.Bottom - 35,
        Rect.Right div 2 - 10, 35, Forma, BtnID, HInstance, NIL);

        LV :=CreateWindowEx(WS_EX_CLIENTEDGE,'SysListView32', '1', WS_CHILD or WS_VISIBLE or LVS_REPORT or LVS_SHOWSELALWAYS or
            LVS_EX_TWOCLICKACTIVATE or LVS_EX_ONECLICKACTIVATE or WM_LBUTTONDOWN , 5, 5, Rect.Right -10 ,Rect.Bottom - 40,Forma, LVID, HInstance,nil);

        SendMessage(lv, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT or LVS_EX_GRIDLINES or LVS_EX_INFOTIP);

         lvc.fmt := LVCFMT_CENTER;
        lvc.mask := LVCF_TEXT + LVCF_WIDTH;
          lvc.pszText := '0';
          lvc.cx := 250;
          ListView_InsertColumn(lv, 0, lvc);


          lvc.mask := lvc.mask or LVCF_FMT or LVCF_SUBITEM;
          lvc.pszText := '1';
          lvc.cx := 60;
          lvc.iSubItem := 1;
          ListView_InsertColumn(LV, 1, lvc);

          lvc.pszText := '2';
          lvc.cx := 50;
          lvc.iSubItem := 1;
          ListView_InsertColumn(LV, 2, lvc);

          lvc.pszText := '3';
          lvc.cx := 100;
          lvc.iSubItem := 1;
          ListView_InsertColumn(LV, 3, lvc);

          lvc.pszText := '4';
          lvc.cx := 100;
          lvc.iSubItem := 1;
          ListView_InsertColumn(LV, 4, lvc);

          lvc.pszText := '5';
          lvc.cx := 100;
          lvc.iSubItem := 1;
          ListView_InsertColumn(LV, 5, lvc);

          lvc.pszText := '6';
          lvc.cx := 100;
          lvc.iSubItem := 1;
          ListView_InsertColumn(LV, 6, lvc);

          lvc.fmt := LVCFMT_LEFT;
          lvc.pszText := 'Путь к файлу';
          lvc.cx := LVSCW_AUTOSIZE_USEHEADER;//250;
          lvc.iSubItem := 1;
          ListView_InsertColumn(LV, 7, lvc);

         // EnableWindow(button,False);
       //   FormAdd;
     {   //  for I := 0 to 10 do
       //    begin
          FillChar( item, sizeof(item), 0 );
          item.mask := LVIF_TEXT;
          //item.iItem := 0;
          item.pszText := ('СЕРГЕЙ СЕРГЕЕВ');
          ListView_InsertItem(LV, Item);
          // end;


        //  SendMessage(lv, LVM_INSERTCOLUMN, 2, LongInt(@Item));
          //LVM_INSERTITEM;

       //   item.mask     := LVIF_TEXT or LVIF_IMAGE;
        //  item.iItem    := Item;
          item.iSubItem := 1;
          item.pszText  := '123456789';   //   listview_seti

        ListView_SetItem(LV, item);    }

      end;

   {WM_NOTIFY:  If HiWord (WParam) =  WM_LBUTTONDOWN then
    //   if HWND(WPARAM) = LVID then

  //  SetWindowLong(LV,GWL_USERDATA,SetWindowLong(LV, GWL_WNDPROC, LPARAM(@NewListProc)));

        MessageBox(0,'','',0);   }
    WM_rBUTTONDOWN:
    // if HWND(WPARAM) = LVid then
       MessageBox(0,'','',0);



  WM_COMMAND:
    begin
     
   //   If LoWord (WParam) = ButtonID Then
        //И если это было нажатие

      {  If HiWord (wParam) =   WM_LBUTTONDOWN then
     //  if HWND(WPARAM) = LVID then
       case hwnd(WParam) of//

  //  SetWindowLong(LV,GWL_USERDATA,SetWindowLong(LV, GWL_WNDPROC, LPARAM(@NewListProc)));
        LVID:
        MessageBox(0,'','',0);
       end;      }

      //  If HiWord (WParam) = BN_CLICKED then
        case {hwnd(WParam)}LOWORD(wParam) of//
          Buttonid:
          begin
          //  ListView_SetSelectionMark(LV,1);
         //   ListView_SetItemState(LV, 11 , LVIS_SELECTED or LVIS_FOCUSED, LVIS_SELECTED or LVIS_FOCUSED);   // я выделяю строку
            i :=  ListView_getSelectionMark(LV);    //выделенная строка
            ListView_GetItemText(LV, {0}i, {7}1, filename, SizeOf(filename)) ;  //получение содержимого колонки путь
            SetWindowText(Form, PChar(IntToStr(i)+ ' - ' + filename) );
           // ListView_SetItemCountEx(LV, 1, lv);
          end;
          BtnID:// MessageBox(0, '','',0);
            begin
              FillChar( item, sizeof(item), 0 );
              item.mask := LVIF_TEXT;
              item.pszText := PChar('aaaa');
              ListView_InsertItem(LV, Item);
              item.iSubItem := 1;
              item.pszText  := PChar('fff');
              ListView_SetItem(LV, item);
              item.iSubItem := 2;
              item.pszText  := PChar('kkk');
              ListView_SetItem(LV, item);
            end;
         // LVID:     MessageBox(0,'yaaaa','Сообщение',MB_OK);
        end;

    end;

    WM_SIZE: // Посылается после изменения размеров окна (формы)
    Begin
      GetClientRect(Form, Rect);
      SetWindowPos(LV, 0, 5, 5, Rect.Right-10, Rect.Bottom - 40, SWP_NOZORDER);
      SendMessage(LV,LVM_SETCOLUMNWIDTH, 7, LVSCW_AUTOSIZE_USEHEADER);
      SetWindowPos(button, 0, 5, Rect.Bottom - 35, Rect.Right div 2 - 2, 35, SWP_NOZORDER);
      SetWindowPos(Btn2, 0, Rect.Right div 2 + 5, Rect.Bottom - 35, Rect.Right div 2 - 10, 35, SWP_NOZORDER);
     // setwindowpos
    End;

    WM_DESTROY:
      begin
        DragAcceptFiles(Forma, False);
        PostQuitMessage(0);
      end;
    Else // Если пришедщее сообщение мы не определили:
      Result := DefWindowProc(Forma, Msg, WParam, LParam); 
  End; 
End;

Procedure WinMain; 
Begin
  // Заполняем запись информацией:
  FillChar(WndClassEx, SizeOf(TWndClassEx), 0);
  WndClassEx.cbSize := SizeOf(TWndClassEx); // Размер структуры
  WndClassEx.lpszClassName := 'APIWindow'; // Имя класса окна (для примера - второй параметр функции FindWindow)
 // WndClassEx.hbrBackGround := GetSysColorBrush(COLOR_BTNFACE);
  WndClassEx.style := CS_HREDRAW Or CS_VREDRAW; // Стили окна - в данном случае окно будет перерисовываться при изменении как горизонтальных, так и вертикальных размеров
  WndClassEx.hInstance := HInstance; // Ищи описание выше
  WndClassEx.lpfnWndProc := @WinProc; // адрес окнной процедуры
  WndClassEx.cbClsExtra := 0;
  WndClassEx.cbWndExtra := 0;
  WndClassEx.hIcon := LoadIcon(HInstance, MakeIntResource('MAINICON')); // Икнока окна
  WndClassEx.hIconSm := LoadIcon(HInstance, MakeIntResource('MAINICON')); // Тоже иконка (но маленькая :)
  WndClassEx.hCursor := LoadCursor(0, IDC_ARROW); // Курсор мыши для окна (у нас - стрелка)
  WndClassEx.hbrBackground := COLOR_BTNFACE + 1; // Фон окна
  WndClassEx.lpszMenuName := NIL; // Указатель на меню (у нас меню нет)
  //registerclassex(WndClassEx);// регистрируем в системе новый класс окна

  // Теперь регистрируем класс окна в системе
  If RegisterClassEx(WndClassEx) = 0 Then
    MessageBox(0, 'Невозможно зарегистрировать класс окна1', 'Ошибка', MB_OK Or MB_ICONHAND)
  Else
  Begin
  // Создаём окно
    Form := CreateWindowEx( 0, WndClassEx.lpszClassName, 'mp3player',  WS_OVERLAPPEDWINDOW {or ws_ex_appwindow {or ws_ex_acceptfiles} {WS_SYSMENU} ,
     500,100, //CW_USEDEFAULT, 0, // Позиция относительно экрана (CW_USEDEFAULT означает, что размеры будут определяться Windows)
      420, 400,  0, 0, HInstance, NIL); // Дополнительные параметры
    If Form = 0 Then // Если окно не создалось:
      MessageBox (0, 'Окно1 не создалось!',
        'Ошибка', MB_OK Or MB_ICONHAND)
    Else
    Begin
      ShowWindow (Form, SW_SHOWNORMAL); // Показывем окно
      While GetMessage(MMsg, 0, 0, 0) Do // Эта функция извлекает очередное сообщение из очереди сообщений,
      Begin
        TranslateMessage(MMsg); // Переводит нажатия клавиш, чтобы их можно было обработать оконной процедуре
        DispatchMessage(MMsg); // Отправляем мессагу оконной процедуре
      End;
      Halt(MMsg.WParam); // Завершение работы при получении мессаги WM_QUIT (при выходе из цикла жизни программы)
    End;
  End;
End;

Begin
    WinMain;
End.

Почему не могу отловить клик по ListView, где ошибка?

Последний раз редактировалось Stalker2-42, 17.08.2014 в 23:49.
Ответить с цитированием
  #14  
Старый 18.08.2014, 19:21
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
По умолчанию

Стоит ли мне ждать помощь здесь?
Ответить с цитированием
  #15  
Старый 18.08.2014, 19:22
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Оффтоп:
Цитата:
Сообщение от Stalker2-42
Alegun - в отпуке?
Нет, я в очередном отпуске

Как понимаю, все ухищрения для снижения веса сборки, кстати, а вы не пробовали задействовать готовый "лёгонький" компонент KOLListView: у него вроде всё такое же как и обычного ЛВ, т.е. сохранены все свойства и процедуры, а кода будет меньше
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:16.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter