Главная страница
    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.46 MB
Время: 0.044 c
2-1191850673
webpauk
2007-10-08 17:37
2007.10.28
Преобразование типов


5-1162483418
--= Eagle =--
2006-11-02 19:03
2007.10.28
Предотвратить удаление сабкомпонента в дизайнтайме


2-1191309272
kukuikar
2007-10-02 11:14
2007.10.28
Монитор каталогов+поток+имяфайла


4-1177939597
Плиз_не_пинайте
2007-04-30 17:26
2007.10.28
Поиск окон с помощью FindWindow по маске


5-1161855063
DevilDevil
2006-10-26 13:31
2007.10.28
Parent = TPanel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский