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

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


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

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

Выпуск № 566
от 19.08.2006, 06:05

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


Вопрос № 51982: Уважаемый товарищи эксперты!Подскажите пожайлуста:как,что и с каким параметром нужно открыть, чтобы появился проводник, открывший попку в директории запускного файла. Заранее благодарен....
Вопрос № 52031: Здравствуйте, уважаемые эксперты! Скажите, что обычно описывается в разделе Protected и зачем вообще этот раздел нужен? И если процедура объявлена в этом разделе например так (см. приложение). Процедура WMPaint предназначена для перерисовки формы...
Вопрос № 52051: Здравствуйте, господа Эксперты! Огромное спасибо всем, кото отвечал на мой вопрос № 51910! Все получилось! Теперь у меня др. проблема: где можно подробно прочитать о TMemoryStream? Просто Мне некоторые операции (в частности, дешифрование) нужно делат...

Вопрос № 51.982
Уважаемый товарищи эксперты!Подскажите пожайлуста:как,что и с каким параметром нужно открыть, чтобы появился проводник, открывший попку в директории запускного файла.
Заранее благодарен.
Отправлен: 13.08.2006, 08:04
Вопрос задал: Ustas (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Physicist
Здравствуйте, Ustas!

Нужно просто запустить 'explorer.exe __путь_к_папке__' или 'explorer.exe .' для текущей папки. Путь к папке с программой вернет вызов ExtractFileDir(ParamStr(0)).
Запустить можно через:
1. WinExec
2. ShellExecute
3. CreateProcess

Например,
WinExec(PChar('explorer.exe "'+ExtractFileDir(ParamStr(0))+'"'),SW_SHOW);
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 13.08.2006, 08:25
Оценка за ответ: 5

Отвечает: Ерёмин Андрей
Здравствуйте, Ustas!
Да, такое легко выполняется с помощью команды shell:

uses ShellAPI;
...
ShellExecute(0,'explore',PChar(ExtractFilePath(Application.ExeName)),'','',SW_SHOWNORMAL);


---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 13.08.2006, 08:27
Оценка за ответ: 5


Вопрос № 52.031
Здравствуйте, уважаемые эксперты! Скажите, что обычно описывается в разделе Protected и зачем вообще этот раздел нужен? И если процедура объявлена в этом разделе например так (см. приложение).
Процедура WMPaint предназначена для перерисовки формы. Как я понимаю, эта процедура обрабатывает событие wm_Paint. В программе это событие вызывается только один раз. А как мне вызвать процедуру обработки этого события еще раз и что написать в качестве параметра? Можно ли где-нибудь посмотреть, что из себя представляет тип TWMPaint?

Приложение:

Отправлен: 13.08.2006, 21:04
Вопрос задала: KInika (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: din
Здравствуйте, KInika!
Это основы ООП. Все что объявлено в секции protected доступно только членам и типам-наследникам класса.
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: din (статус: Студент)
Ответ отправлен: 13.08.2006, 21:24

Отвечает: sir henry
Здравствуйте, KInika!
То, что описывается в разделе класса Protected может быть доступно только внутри методов того же класса или внутри методов класса-наследника.
В данном случае идет обработка сообщения Windows, направленое данному окну, чтобы оно само собой берерисовалось посли каких-то операций, влияющих на внешний вид окна.
В подобном типе процедур (т.е. где после процедуры указано служебное слово message - обработчик сообщений) всегда присутствует параметр типа сообщения, в данном случае это TWMPaint. Вот его структура:
TWMPaint = packed record
Msg: Cardinal;
DC: HDC;
Unused: Longint;
Result: Longint;
end;
В Msg записывается код сообщения,
В DC - это контекст устройства, в данном случае формы, который будет собственно перерисовываться,
Unused - ну это и так понятно :)
В Result - записывается результат выполнения операции, т.е. перерисовки.
Вы эту процедуру можете вызывать в любом месте внутри каких либо методов Вашего класса. После вызова этой процедуры, форма перерисуется.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 14.08.2006, 06:51
Оценка за ответ: 5


Вопрос № 52.051
Здравствуйте, господа Эксперты! Огромное спасибо всем, кото отвечал на мой вопрос № 51910! Все получилось! Теперь у меня др. проблема: где можно подробно прочитать о TMemoryStream? Просто Мне некоторые операции (в частности, дешифрование) нужно делать непосредственно в памяти, не изменяя файл. В хелпе по TMemoryStream очень мало. Нашел статью, точнее кусок кода, но он без комментариев. Что делают процедуры
ShowMemStr; MemStr1.Memory ? (var MemStr: TMemoryStream). Если можно, вкратце опишите методы и свойства TMemoryStream - их совсем мало. Заранее спасибо!
Отправлен: 14.08.2006, 02:14
Вопрос задал: Neiroman (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Савенко Вадим Иванович
Здравствуйте, Neiroman!
Смотрите здесь:

http://www.vitaliy.org/book/delphi/delphi_7_03.php

раздел 3.13.2 в частности
Ответ отправил: Савенко Вадим Иванович (статус: 7-ой класс)
Ответ отправлен: 14.08.2006, 15:13


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное