Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.28;
Скачать: CL | DM;

Вниз

TCustomListBox -- OnDblClick   Найти похожие ветки 

 
мфтнф_й   (2007-10-07 11:47) [0]

Сделал свой наследник TCheckListBox (который в свою очередь является наследником TCustomListBox), в котором сделал свой обработчик     procedure DblClick; override;

И теперь в рабочем состоянии отправить OnDblClick произвольному элементу. (не производя этот двойной клик на элементе) ?


 
DVM ©   (2007-10-07 11:57) [1]


> И теперь в рабочем состоянии отправить OnDblClick произвольному
> элементу

Какому еще элементу?


 
мфтнф_й   (2007-10-07 12:00) [2]

Ну т.е. есть у меня заполненный котролл, щелкаю я по любому элементу два раза (dblclick) и у меня срабатыват мой обработчик. А как мне заставить срабатывать его без двойного клика, например у меня есть кнопка, я хочу что бы при нажатии на неё, у меня в пятом элементе контролла срабатывал OnDblClick как при двойном щелчке по нему.


 
DVM ©   (2007-10-07 12:05) [3]

Ну так вызови этот обработчик при нажатии кнопки и всего делов, не понимаю я проблемы че-то.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
   ListBox1: TListBox;
   Button1: TButton;
   procedure ListBox1DblClick(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
 //
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ListBox1DblClick(nil);
end;

end.



 
мфтнф_й   (2007-10-07 12:14) [4]

Проблема в том, что мой OnDblClick - задан в моем классе

procedure DblClick; override;

а не в конекретном OnDblClick экземпляра на форме.

Попытки заставить работать как по схеме выще - не получаются.


 
DVM ©   (2007-10-07 12:18) [5]


> Проблема в том, что мой OnDblClick - задан в моем классе

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


 
мфтнф_й   (2007-10-07 12:28) [6]

Ок, разобрался.

Но теперь не пойму, почему, не работает это в случае с

OnClick:

>
>
>      MyEditListBox1.Items.Insert(MyEditListBox1.ItemIndex,
>  "...");
>
>      MyEditListBox1.MultiSelect := False;
>      MyEditListBox1.Selected[MyEditListBox1.ItemIndex] :
> = True;
>      MyEditListBox1.DblClick;


Вот в этом случае не хочет срабатывать DblClick. Если делаю DblClick отдельно по щелчку кнопки, к примеру -- все работет. А так нет, хотя сам DblClick срабатывает.


 
мфтнф_й   (2007-10-07 13:09) [7]

Проблема у меня в другом наверное. Дело в том, что в своем классе я отрисовываю в DrawItem. А при обработке кода выше по OnClick как-то срабатываетп перевод фокуса(?) что просто изменения которые рисуются по DblClick - DrawItem просто не видно, т.к. фокус переводится с нужного элемента. (точнее они отрисовываются и тут же сбрасываются - т.к. фокус переводится на другой элемент) - а что и как не пойму.

Ну например идиотское решение для теста, сделел таймер с с interval = 1, который и вызывает отрисовку внутри обработки OnClick. Но это полностью идиотское решение.



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

Текущий архив: 2007.10.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
4-1177575482
capkoh
2007-04-26 12:18
2007.10.28
Повторное открытие диалога


2-1191432426
artkil
2007-10-03 21:27
2007.10.28
Строки TListView


2-1191912772
Scarllett
2007-10-09 10:52
2007.10.28
? OnClick event для страницы в MS EI


2-1191323650
Denis_
2007-10-02 15:14
2007.10.28
Смена даты открытия файла.


15-1191019788
Beks
2007-09-29 02:49
2007.10.28
Как вычислить значение..?