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

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


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

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

Выпуск № 912
от 01.09.2007, 21:05

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


Вопрос № 99770: Уважаемые Эксперты! У меня к вам вопрос, как мне экспортировать функции из DLL, если я не знаю параметров этих функций? Если такое невозможно, то есть ли такая программа, которая показала бы функции и их параметры из заданных (или любых) Dll-файлов? ...
Вопрос № 99875: Добрый вечер эксперты! Есть программа, в неё заносим параметры, программа делает расчёт и должна занести полученные результаты в шаблон «ОТЧЁТ» . 1.Как сделать, что бы шаблон «ОТЧЁТ» сделанный в Экселе устанавливался в папку вместе с программой ...
Вопрос № 99883: Уважаемые эксперты такой вот вопросик возник, у меня есть вариант как его сделать, но хотел посоветоваться может кто знает какие нибудь методы получше у меня есть три компонента расположенные по горизонтали, например 3 ComboBox нужн...
Вопрос № 99886: Здравствуйте, уважаемые эксперты Как в Delphi можно обработать событие поворота колеса мыши на компоненте, у которого такого события нет (например TPaintBox)? Спасибо...
Вопрос № 99894: Здравствуйте! Есть вот такой код(см. приложение) для воспроизведения списка файлов. Скажите, пожалуйста, что нужно изменить, чтобы он нормально заработал? Или это можно сделать вообще по-другому?...
Вопрос № 99897: Здравствуйте уважаемые эксперты!У меня к Вам вопрос по SaveDialog,у меня в нём находятся несколько фильтров,допустим FilterIndex = 1 содержит расширения *txt, FilterIndex = 2 - *xls ну и FilterIndex = 3 - *prn.Возможно ли в этом компоненте сделать та...

Вопрос № 99.770
Уважаемые Эксперты! У меня к вам вопрос, как мне экспортировать функции из DLL, если я не знаю параметров этих функций? Если такое невозможно, то есть ли такая программа, которая показала бы функции и их параметры из заданных (или любых) Dll-файлов? Я хотел написать программу, которая использует lame-enc.dll (Lame Encoder). Только вот, параметы функции мне неизвестны. Заранее благодарю!
Отправлен: 26.08.2007, 22:38
Вопрос задал: Айтуган (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Уваров Андрей Александрович
Здравствуйте, Айтуган!
Вообще насколько я знаю не существует программы которая выдала бы функции...
Но в случае с lame-enc.dll можно поступить иначе. Скачать исходный код библиотеки и разобраться! http://lame.sourceforge.net/ Там же есть документация и т.п. нужные вам вещи.
Удачи!
---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: AvePassion@GMail.Com
Ответ отправил: Уваров Андрей Александрович (статус: Студент)
Ответ отправлен: 27.08.2007, 00:02


Вопрос № 99.875
Добрый вечер эксперты! Есть программа, в неё заносим параметры, программа делает расчёт и должна занести полученные результаты в шаблон «ОТЧЁТ» .
1.Как сделать, что бы шаблон «ОТЧЁТ» сделанный в Экселе устанавливался в папку вместе с программой и вызывался из этой папки?
2. Как сделать, что бы после занесения параметров из программы в шаблон, запретить редактирование в шаблоне?
3. Шаблон имеет 2 листа. Нужно что бы при нажатие 1 кнопки параметры заносились в 1 лист, при нажатие 2 кнопки заносились во 2 лист? У меня каждыё раз открывается новый «ОТЧЁТ».
Отправлен: 27.08.2007, 18:02
Вопрос задал: SIR (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Виктор Пырлик
Здравствуйте, SIR!

Вы не сказали каким образом вы подключаетесь к Excel. Но, шаблон можно хранить там, где вы хотите. и загружать, например так:

path:=GetCurrentDir +'Report.xlt';

ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Application.EnableEvents := false;
try
Workbook := ExcelApp.WorkBooks.Add(path);// грузим наш шаблон
except
Workbook := ExcelApp.WorkBooks.Add; //иначе - открываем книгу по умолчанию
end;

WorkBook.WorkSheets[1].Cells[2,6].Value:=Now; // пишем в первый лист
WorkBook.WorkSheets[2].Cells[2,6].Value:=Now; // пишем во второй лист


Поэтому, можите создать класс по работе с отчетом, и в нем определить все методы и свойства.

Если есть вопросы - спрашивайте.
---------
Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Студент)
Ответ отправлен: 27.08.2007, 18:25


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

такой вот вопросик возник, у меня есть вариант как его сделать, но хотел посоветоваться может кто знает какие нибудь методы получше

у меня есть три компонента расположенные по горизонтали, например 3 ComboBox нужно чтобы OnResize формы эти компоненты тоже растягивались пропорционально, т.е. не один растягивается а все растягиваются и соответственно сжимаются
Отправлен: 27.08.2007, 18:50
Вопрос задал: Кэр Лаэда (статус: Студент)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Gladiator
Здравствуйте, Кэр Лаэда!
В простейшем случае, следующим образом.

Приложение:

Ответ отправил: Gladiator (статус: 10-ый класс)
Ответ отправлен: 28.08.2007, 08:27
Оценка за ответ: 5
Комментарий оценки:
спасибо, мой способ был чем то похож, я думал делать панели на них якоря и менять размеры панелей

Отвечает: Mishell
Здравствуйте, Кэр Лаэда!
>такой вот вопросик возник, у меня есть вариант как его сделать, ...
что-то вопрос не понятен, скорее-всего он неполный

по поводу растягивания ComboBox'ов - см. приложение

Приложение:

Ответ отправил: Mishell (статус: 5-ый класс)
Ответ отправлен: 28.08.2007, 11:53
Оценка за ответ: 4
Комментарий оценки:
Спасибо, но ваш способ мало чем отличился о предыдущего ответа

Отвечает: Denisss

Здравствуйте, Кэр Лаэда!

Может Вам мой способ покажется слишком простым, но я бы рекомендовал воспользоваться компонентом AutoPanel (autopnl.zip [6 K]).
У данного компонента есть свойства:
AutoChildPosLeft - Автоматически выставляет позицию "слева" размещенных на панели компонентов.
AutoChildPosTop - аналогично, но выставляет позицию "сверху".
AutoChildWidth - выставляет (пропорционально) ширину.
AutoChildHeight - высоту.

Если же Вам не интересно использовать сторонние компоненты, то можете подсмотреть реализацию пропорционального масштабирования всех элементов, размещенных на панели и использовать ее в своем проекте.

Удачи!
Ответ отправил: Denisss (статус: Профессионал)
Россия, Москва
----
Ответ отправлен: 29.08.2007, 12:37
Оценка за ответ: 5
Комментарий оценки:
Спасибо, обязательно подсмотрю )))


Вопрос № 99.886
Здравствуйте, уважаемые эксперты
Как в Delphi можно обработать событие поворота колеса мыши на компоненте, у которого такого события нет (например TPaintBox)?
Спасибо
Отправлен: 27.08.2007, 18:57
Вопрос задал: Alexander L. (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 10)

Отвечает: Gladiator
Здравствуйте, Alexander L.!
Вот реализация для Вас.

Приложение:

Ответ отправил: Gladiator (статус: 10-ый класс)
Ответ отправлен: 28.08.2007, 08:46
Оценка за ответ: 3
Комментарий оценки:
Обрабатывается событие поворота колеса мыши над всей формой, независимо от компонента под ней. Не выполняется if
if Self.Name <> 'PaintBox1' then
begin
inherited;
Exit;
end;
поскольку Self.Name всегда равно 'PaintBox1'. А мне нужно чтобы событие обрабатывалось только над PaintBox'ом.

Отвечает: Denisss

Здравствуйте, Alexander L.!

См. пример в приложении.
В примере производится обработчик события OnMouseWheel формы Form1, в котором проверяется какой компонент лежит под курсором мыши в момент, когда крутится скролл.

Прим.:
1. Если нужный Вам компонент лежит не на форме, а, например, на TPanel, то обработчик следует несколько подправить:
вместо
aControl:= ControlAtPos(ScreenToClient(MousePos), True, True);

нужно написать
with Panel1 do // Подразумевается, что PaintBox1 лежит на панели Panel1 (class TPanel)
aControl:= ControlAtPos(ScreenToClient(MousePos), True, True);


2. В примере используется переменная iCount и компонент Label1 (class TLabel). Label1 я разместил как обычно. iCount объявил в private разделе формы, а в OnCreate формы задал значение 0. Вы же можете здесь поступать так, как Вам удобно. Основная цель примера - показать как можно обрабатывать события OnWheelMouse компонентов, не имеющих такого события.

Удачи!

Приложение:

Ответ отправил: Denisss (статус: Профессионал)
Россия, Москва
----
Ответ отправлен: 29.08.2007, 12:17


Вопрос № 99.894
Здравствуйте!
Есть вот такой код(см. приложение) для воспроизведения списка файлов.
Скажите, пожалуйста, что нужно изменить, чтобы он нормально заработал?
Или это можно сделать вообще по-другому?

Приложение:

Отправлен: 27.08.2007, 20:02
Вопрос задал: Skvitek (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PGM
Здравствуйте, Skvitek!

Можно вот так, например.

For i:=0 To JvPlaylist1.Count-1 do begin
MediaPlayer1.FileName:=Playlist1.Items[i];
MediaPlayer1.Open;
MediaPlayer1.play;

while MediaPlayer1.Mode <> mpStopped do begin
TrackBar.Position:=MediaPlayer1.Position;
Application.ProcessMessages; // Это чтобы перерисовывался TrackBar нормально
Sleep(100); // А это чтобы не грузить процессор, можно и больше
end;
end;

Но стоило бы еще добавить условие для выхода (например, по кнопке Стоп) или переход к следующему/предыдущему в списке.

P.S. Лично я предпочитаю работать непосредственно с DirectShow и отслеживать его события, там и контроль за кодеками, и информация о потоке и все остальное.
Ответ отправил: PGM (статус: 9-ый класс)
Ответ отправлен: 27.08.2007, 20:26
Оценка за ответ: 3


Вопрос № 99.897
Здравствуйте уважаемые эксперты!У меня к Вам вопрос по SaveDialog,у меня в нём находятся несколько фильтров,допустим FilterIndex = 1 содержит расширения *txt, FilterIndex = 2 - *xls ну и FilterIndex = 3 - *prn.Возможно ли в этом компоненте сделать так,что бы по нажатию на разные кнопки,появлялся диалог с нужным мне расширением,а остальные расширения были бы недоступны(не активны)или надо использовать 3 разных компонента.
Отправлен: 27.08.2007, 20:14
Вопрос задал: Зотов Геннадий Александрович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Виктор Пырлик
Здравствуйте, Зотов Геннадий Александрович!

Всё просто, если делать ручками... Вы можете использовать этот компонент как вам заблагорассудится. В приложении дан пример.

На форме имеется три кнопки (TButton) , и один компонент (ТOpenDialog). У кнопок в свойстве Tag записано 0 - для первой кнопки, 1- для второй кнопки, 2 - для третей.
Для кнопки Button1 назначено событие OnClick и написан обработчик этого события (в приложении) у остальных кнопок просто событие OnClick выбрано событие для Button1.

Приложение:

---------
Если ничего не помогло - надо читать инструкцию

Ответ отправил: Виктор Пырлик (статус: Студент)
Ответ отправлен: 27.08.2007, 20:33
Оценка за ответ: 5
Комментарий оценки:
Вообще то у меня SaveDialog,но смысл был понятен,проверил,спасибо работает


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.58 от 30.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное