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

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


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

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

Выпуск № 809
от 14.05.2007, 07:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 467, Экспертов: 88
В номере:Вопросов: 2, Ответов: 4


Вопрос № 85973: Уважаемые эксперты! У меня по двойному клику по dbgrid открывается pdf файл но открываются только последние 76 файлов из 1034 подскажите от чего это может зависеть? var b:string; begin b:=udm.Table1.FieldVal...
Вопрос № 86087: Здравствуйте! У меня есть собственный компонент - панель с двумя TShape-ами. Мне нужно обработать onMouseDown по всему компоненту. Когда я щелкаю по Моей панели, то onMouseDown срабатывает только тогда, когда я щелкаю по компоненту TPanel (родите...

Вопрос № 85.973
Уважаемые эксперты!

У меня по двойному клику по dbgrid открывается pdf файл
но открываются только последние 76 файлов из 1034 подскажите от чего это может зависеть?

var
b:string;

begin
b:=udm.Table1.FieldValues['file'];
Shellexecute(0,'open', pchar(trim('data'+ b +'.pdf')),NIL,nil, SW_SHOWnormal)
end;

Спасибо!
Отправлен: 08.05.2007, 10:13
Вопрос задал: Kakenov Daulet (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: LEXASOFT
Здравствуйте, Kakenov Daulet!

Может Вы фильтровали данные таблицы и забыли выключить фильтр?
udm.Table1.Filtered:=False;
Ответ отправил: LEXASOFT (статус: 4-ый класс)
Ответ отправлен: 09.05.2007, 01:25

Отвечает: Esi
Здравствуйте, Kakenov Daulet!
Может быть trim не там написали:
b:=trim(udm.Table1.FieldValues['file']);
Shellexecute(0,'open', pchar('data'+ b +'.pdf'),NIL,nil, SW_SHOWnormal)
Ответ отправил: Esi (статус: 1-ый класс)
Ответ отправлен: 09.05.2007, 06:49
Оценка за ответ: 4


Вопрос № 86.087
Здравствуйте!
У меня есть собственный компонент - панель с двумя TShape-ами. Мне нужно обработать onMouseDown по всему компоненту. Когда я щелкаю по Моей панели, то onMouseDown срабатывает только тогда, когда я щелкаю по компоненту TPanel (родительский компонент). Необходимо обрабатывать щелчок даже тогда, когда клик был сделан по TShape.
Заранее благодарен за оказанное внимание.
Отправлен: 08.05.2007, 23:22
Вопрос задал: Johnny Superb (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Denisss

Здравствуйте, Johnny Superb!

Сделайте следующее:

Создайте private функцию внутри класса Вашего компонента:

procedure ShapeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DoMouseDown;
end;


Вместо DoMouseDown сделайте обработчик нажатия кнопки мыши.
Как вариант, DoMouseDown можно заменить на Panel1.OnMouseDown(Sender, Button, Shift, X, Y);

В Create Вашего компонента сделайте следующее:

begin
...

Shape1.OnMouseDown:= ShapeMouseDown;
Shape2.OnMouseDown:= ShapeMouseDown;
...
end
;

Здесь Shape1 и Shape2 - компоненты TShape. Подставьте вместо них те названия, которые Вы приняли. Не забудьте, что прежде чем назначать OnMouseDown компонентам, их нужно создать.

Удачи!
Ответ отправил: Denisss (статус: Профессионал)
Россия, Москва
WWW: Хлама много, по сути ничего...
ICQ: 281599577
----
Ответ отправлен: 08.05.2007, 23:54
Оценка за ответ: 5

Отвечает: Louken
Здравствуйте, Johnny Superb!

В момент создания ваших шэйпов, их свойствам onMouseDown присвойте процедуру, в которой выполните преобразование координат шэйпов, в координаты панели и вызовите метод панели MouseDown, с указанием этих новых координат.
Теперь у Вас должно быть так как Вы хотите.
Удачи.

Приложение:

Ответ отправил: Louken (статус: 1-ый класс)
Ответ отправлен: 09.05.2007, 00:08
Оценка за ответ: 5
Комментарий оценки:
Предложение мне понравилоь. Спасибо!
Только преобразование координат лучше сделать так:
onMouseDown((Sender as TLabel).Parent, Button, Shift, X+(sender as TLabel).Left, Y+(sender as TLabel).Top);
Только вот с
procedure TYourControl.MouseDown
у меня пока проблема, но я сам разберусь.


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100

В избранное