Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.10.28;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.47 c
1-1186743437
Dash Rendar
2007-08-10 14:57
2007.10.28
Можно ли добавить контекстное меню в ShellListView?


15-1190881952
Vlad Oshin
2007-09-27 12:32
2007.10.28
Как забросить Cookie на определенное время? Не получается


3-1182679985
Ulugbek
2007-06-24 14:13
2007.10.28
Помогите DBGRID без вертикал скролла


15-1190882465
новЫчек
2007-09-27 12:41
2007.10.28
загрузка своего приложения в авторане


2-1191402557
Washington
2007-10-03 13:09
2007.10.28
Выбор принтера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский