Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 463
от 04.05.2006, 21:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 323, Экспертов: 59
В номере:Вопросов: 3, Ответов: 6


Вопрос № 41588: Как получить имя каталога на который наведена мышка ShellTreeView1?...
Вопрос № 41647: Здравствуйте. Есть, например, кнопка на форме. Если щелкнуть по ней мышью, то она будет обработана (исполнен её код). А как вызвать программно нажатие мыши при наведении на кнопку (как будто щелкнули мышью)?...
Вопрос № 41650: У компонента SellTeeVew1 если в событие MouseMove добавить код: Edit1.Text:=shelltreeview1.SelectedFolder.PathName; То выводиться путь ВЫДЕЛЕННОГО каталога. Куда бы не наводили мышь. А как можно получить полный путь каталога (любого,...

Вопрос № 41.588
Как получить имя каталога на который наведена мышка ShellTreeView1?
Отправлен: 28.04.2006, 22:14
Вопрос задал: Иванов Михаил Викторович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Иванов Михаил Викторович!
Я делал для RZShellTree, пример в приложении - надеюсь, помог.

Приложение:

---------
Ответы на все вопросы - на сайте www.ya.ru :)

Ответ отправил: Устинов Сергей Евгеньевич (статус: 6-ой класс)
Ответ отправлен: 28.04.2006, 22:25


Вопрос № 41.647
Здравствуйте. Есть, например, кнопка на форме. Если щелкнуть по ней мышью, то она будет обработана (исполнен её код). А как вызвать программно нажатие мыши при наведении на кнопку (как будто щелкнули мышью)?
Отправлен: 29.04.2006, 19:19
Вопрос задал: Иванов Михаил Викторович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Иванов Михаил Викторович!
Наверное, вы имеете ввиду, как из программы выполнить код обработчика кнопки? Это делается очень просто: Button1.Click;
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 29.04.2006, 19:25

Отвечает: Николай Б.
Здравствуйте, Иванов Михаил Викторович!

Создаёте у кнопки (Button1) обработчики событий:
1. OnClick
2. OnMouseMove

В первом (OnClick) пишите нужный Вам код, а во втором: "Button1Click(Button1);". Это вызовет обработчик события OnClick у кнопки.

Приложение:

Ответ отправил: Николай Б. (статус: 4-ый класс)
Ответ отправлен: 29.04.2006, 19:51

Отвечает: Дмитриев Алексей Иванович
Здравствуйте, Иванов Михаил Викторович!
Ну есть такой метод у кнопки типа "меня кликнули": TButton.Click
А код, предложенный Николаем Б. не рекомендую использывать в принципе, ибо пока вы водите указателем мыши по кнопке, постоянно будет вызываться обработчик события OnClick, если конечно именно это не требуется.
Ответ отправил: Дмитриев Алексей Иванович (статус: 1-ый класс)
Ответ отправлен: 29.04.2006, 23:55


Вопрос № 41.650
У компонента SellTeeVew1 если в событие MouseMove добавить код:
Edit1.Text:=shelltreeview1.SelectedFolder.PathName;

То выводиться путь ВЫДЕЛЕННОГО каталога. Куда бы не наводили мышь.
А как можно получить полный путь каталога (любого, не только выделенного) наводя на него мышь.
Отправлен: 29.04.2006, 20:20
Вопрос задал: Иванов Михаил Викторович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Ерёмин Андрей
Здравствуйте, Иванов Михаил Викторович!
Вполне реализуемо и очень легко:

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. Чтобы избавиться от ошибки без участия дополнительных клавиш, просто в какой-нибудь переменной храните значение и после того, как форма загружена, изменяйте её значение, а в этом событии и делайте проверку на это значение.
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 30.04.2006, 09:42

Отвечает: Denisss

Здравствуйте, Иванов Михаил Викторович!

Есть вот такой вариант:

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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.32 от 03.05.2006
Яндекс Rambler's Top100

В избранное