Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как программно кликнуть по заголовку одной из колонок ListView? [D5, XP]


ListViewColumnHeader ©   (2014-12-09 12:10:00) 

TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
...
ListView1ColumnClick(self, TListColumn)
;

а что подставить в качестве TListColumn?
Ясно что не Column.Index, а что не знаю
Спасибо


Ega23   (2014-12-10 11:06:00) [1]


unit Unit18;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls;

type
 TForm18 = class(TForm)
   ListView1: TListView;
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   procedure ListView1ColumnClick(Sender: TObject; Column: TListColumn);
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form18: TForm18;

implementation

{$R *.dfm}

procedure TForm18.Button1Click(Sender: TObject);
begin
 ListView1ColumnClick(nil, ListView1.Column[0]);
end;

procedure TForm18.Button2Click(Sender: TObject);
begin
 ListView1ColumnClick(nil, ListView1.Column[1]);
end;

procedure TForm18.Button3Click(Sender: TObject);
begin
 ListView1ColumnClick(nil, ListView1.Column[2]);
end;

procedure TForm18.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
 ShowMessage(Column.Caption);
end;

end.


ListViewColumnHeader   (2014-12-09 17:56:00) [2]

Я вроде нигде не подставлял "русские буквы"
Подставил ListView2ColumnClick(self, ListView2.Columns[0]);

> ListView2ColumnClick(self, 0);

Здесь все просто:
Incompatible Types TListColumns and Integer
Это же почти очевидно

у меня обычный ShowMessage('Example'), то как мне "сымитировать вызов обработчика события"-junglecat ©   (09.12.14 12:26) [1]
Если не затруднит, подскажите как ...


Andy BitOff   (2014-12-09 17:44:00) [3]

Ega же тебе сказал. Поставь вместо русских букв в его коде 0 или 1 или 2


ListViewColumnHeader   (2014-12-09 17:38:00) [4]

> Ega23 ©   (09.12.14 16:06) [2]

Получаю Invalid class typecast
Программирую относительно недавно. Если предположить, что в
TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
у меня обычный ShowMessage('Example'), то как мне "сымитировать вызов обработчика события"- junglecat ©   (09.12.14 12:26) [1]
Если не затруднит, подскажите как ...


Ega23   (2014-12-09 16:06:00) [5]


> а что подставить в качестве TListColumn?


ListView1.Columns[Индекс_колонки_клик_на_которой_имитируется]

Но в целом - см. [1]


junglecat   (2014-12-09 12:26:00) [6]

> ListView1ColumnClick(self, TListColumn)

это не программно кликнуть, а сымитировать вызов обработчика события.
Лучше то, что в этом обработчике, вынести в отдельный метод и его вызывать.


Наверх

Титульная страница Поиск, карта сайта Написать письмо