Вопрос № 41588: Как получить имя каталога на который наведена мышка ShellTreeView1?...Вопрос № 41647: Здравствуйте. Есть, например, кнопка на форме. Если щелкнуть по ней мышью, то она будет обработана (исполнен её код). А как вызвать программно нажатие мыши при наведении на кнопку (как будто щелкнули мышью)?...Вопрос № 41650: У компонента SellTeeVew1 если в событие MouseMove добавить код:
Edit1.Text:=shelltreeview1.SelectedFolder.PathName;
То выводиться путь ВЫДЕЛЕННОГО каталога. Куда бы не наводили мышь.
А как можно получить полный путь каталога (любого,...
Вопрос № 41.588
Как получить имя каталога на который наведена мышка ShellTreeView1?
Здравствуйте. Есть, например, кнопка на форме. Если щелкнуть по ней мышью, то она будет обработана (исполнен её код). А как вызвать программно нажатие мыши при наведении на кнопку (как будто щелкнули мышью)?
Отвечает: Ерёмин Андрей
Здравствуйте, Иванов Михаил Викторович!
Наверное, вы имеете ввиду, как из программы выполнить код обработчика кнопки? Это делается очень просто: Button1.Click; --------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Николай Б.
Здравствуйте, Иванов Михаил Викторович!
Создаёте у кнопки (Button1) обработчики событий:
1. OnClick
2. OnMouseMove
В первом (OnClick) пишите нужный Вам код, а во втором: "Button1Click(Button1);". Это вызовет обработчик события OnClick у кнопки.
Приложение:
Ответ отправил: Николай Б. (статус: 4-ый класс)
Ответ отправлен: 29.04.2006, 19:51
Отвечает: Дмитриев Алексей Иванович
Здравствуйте, Иванов Михаил Викторович!
Ну есть такой метод у кнопки типа "меня кликнули": TButton.Click
А код, предложенный Николаем Б. не рекомендую использывать в принципе, ибо пока вы водите указателем мыши по кнопке, постоянно будет вызываться обработчик события OnClick, если конечно именно это не требуется.
У компонента SellTeeVew1 если в событие MouseMove добавить код:
Edit1.Text:=shelltreeview1.SelectedFolder.PathName;
То выводиться путь ВЫДЕЛЕННОГО каталога. Куда бы не наводили мышь.
А как можно получить полный путь каталога (любого, не только выделенного) наводя на него мышь.
Отвечает: Ерёмин Андрей
Здравствуйте, Иванов Михаил Викторович!
Вполне реализуемо и очень легко:
procedure TForm1.ShellTreeView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if (Shift = [ssCtrl]) then Edit1.Text:=ShellTreeView1.GetNodeAt(X,Y).Text; end;
Зачем я добавил условие на нажатый Ctrl? Дело в том, что если запустить программу, когда такого условия нет, то сразу же при запуске возникнет ошибка. Видимо, при создании компонента возникает это событие и что-то с чем-то не совпадает. В подробности не углублялся. Если же, как в данном примере, то всё работает замечательно - зажмите Ctrl и водите мышью - пути будут моментально появляться в TEdit. Чтобы избавиться от ошибки без участия дополнительных клавиш, просто в какой-нибудь переменной храните значение
и после того, как форма загружена, изменяйте её значение, а в этом событии и делайте проверку на это значение.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Есть вот такой вариант: procedure TForm1.ShellTreeView1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); begin
ShellTreeView1.Selected:= ShellTreeView1.GetNodeAt(X, Y);
Edit1.Text:= Shelltreeview1.SelectedFolder.PathName; end;
Удачи!
Ответ отправил: Denisss (статус: Специалист)
Ответ отправлен: 01.05.2006, 00:35