Форум: "Начинающим";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];
ВнизЗапретить TreeView раскрываться при двойном клике на item-ах Найти похожие ветки
← →
alex-drob © (2008-06-05 00:39) [0]структура примерно такая
+-item
| |-subitem
| | |-sub_subitem
| | |-sub_subitem
| |-subitem
| | |-sub_subitem
| | |-sub_subitem
|-item
| |-subitem
| | |-sub_subitem
| | |-sub_subitem
.....
хотелось бы так чтобы именно при дубльклике на subitem он не раскрывался
← →
Германн © (2008-06-05 01:40) [1]
> alex-drob © (05.06.08 00:39)
Да что ж ты всё "хочешь странного"? Нестандартная ориентация что-ли? :)
← →
alex-drob © (2008-06-05 01:47) [2]
> Германн © (05.06.08 01:40) [1]
ну почемуже, очень даже стандартная! просто подход нестандарный!
ну просто можно и отказаться от этого, я просто список кантактов делал, и хотел чтобы по двойному клику открывалось окно для написания сообщения, а при нажатии на крестик, информация в строчки, например, email и телефон, чтобы можно было сразу письмо отправить, ну или в мой мир на маиле зайти.
← →
Германн © (2008-06-05 01:53) [3]
> alex-drob © (05.06.08 01:47) [2]
>
>
> > Германн © (05.06.08 01:40) [1]
>
> ну почемуже, очень даже стандартная! просто подход нестандарный!
>
>
> ну просто можно и отказаться от этого, я просто список кантактов
> делал, и хотел чтобы по двойному клику открывалось окно
> для написания сообщения, а при нажатии на крестик, информация
> в строчки, например, email и телефон, чтобы можно было сразу
> письмо отправить, ну или в мой мир на маиле зайти.
>
Ты ж пойми. Если какой-либо компонент уже имеет стандартную реакцию, то изменить её, как правило, можно лишь в наследнике. И особо сложно, если данный компонент - лишь дельфийская оболочка для работы со стандартным "компонентом" Windows.
← →
alex-drob © (2008-06-05 02:05) [4]понятно. ну а если как нибудь в OnDblClick обрабатывать? у меня каждый subitem содержит в переменной Data указатель на облать с данными, а другие итемы несодержат, то есть если проверять типа
if subitem.data<>nil then
а вот что дальше...
или так не получиться
← →
Германн © (2008-06-05 02:36) [5]
> alex-drob © (05.06.08 02:05) [4]
>
> понятно. ну а если как нибудь в OnDblClick обрабатывать?
>
FOnDblClick вызывается после стандартной реакции, если компонент явно, через свои свойства, не предлагает другого варианта.
← →
{RASkov} © (2008-06-05 08:47) [6][4] - Можно попробывать так:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
procedure FormCreate(Sender: TObject);
private
OldWnd: TWndMethod;
procedure NewWnd (var Mes: TMessage);
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
OldWnd:=TreeView1.WindowProc;
TreeView1.WindowProc:=NewWnd;
TreeView1.ReadOnly:=True;
end;
procedure TForm1.NewWnd (var Mes: TMessage);
procedure MyAction;
begin
ShowMessage(N.Text);
end;
var N: TTreeNode;
begin
if Mes.Msg<>WM_LBUTTONDBLCLK then OldWnd(Mes) //Обрабатываем по умолчанию все кроме двойного клика левой кнопки мыши
else begin
N:=TreeView1.GetNodeAt(LoWord(Mes.LParam), HiWord(Mes.LParam)); //Получаем "даблкликнутый" итэм...
if (N<>nil) and (N.Level=1) then MyAction else OldWnd(Mes); //...проверяем его и при необходимости прерываем стандартные действия и делаем свои
end;
end;
end.
Не конечный вариант, но для раздумья....
← →
{RASkov} © (2008-06-05 08:51) [7]> procedure TForm1.NewWnd (var Mes: TMessage);
> procedure MyAction;
> begin
> ShowMessage(N.Text);
> end;
> var N: TTreeNode;
> begin
Т.е. так:procedure TForm1.NewWnd (var Mes: TMessage);
var N: TTreeNode;
procedure MyAction;
begin
ShowMessage(N.Text);
end;
begin
....
Ошибся с видимостью лок. переменной)
← →
oldman © (2008-06-05 09:23) [8]
> alex-drob © (05.06.08 01:47) [2]
> ну просто можно и отказаться от этого, я просто список кантактов
> делал, и хотел чтобы по двойному клику открывалось окно
> для написания сообщения, а при нажатии на крестик, информация
> в строчки, например, email и телефон, чтобы можно было сразу
> письмо отправить, ну или в мой мир на маиле зайти.
И откажись.
Возьми другой компонент и будет тебе щастье.
← →
{RASkov} © (2008-06-05 09:25) [9]> Возьми другой компонент и будет тебе щастье
Не в компонентах щастьё :)
← →
alex-drob © (2008-06-05 10:03) [10]
> {RASkov} © (05.06.08 08:47) [6]
Всё получилось!
Большое всем спасибо!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.045 c