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

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


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

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

Выпуск № 926
от 16.09.2007, 12:05

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


Вопрос № 101541: Здравствуйте Уважаемые!После ответа мне на вопрос № 101217 у меня возник следующий вопрос.Если я не размещаю объекта StringGrid на форме,а создаю его из кода: st:=TStringGrid.Create(Self); //создаем объект Как мне вызвать его события ,ну нап...
Вопрос № 101550: Доброго времени суток уважаемые эксперты! Как можно, используя Delphi открыть стандартный редактор реестра(regedit) и перейти в редакторе реестра к нужному ключу? Заранее спасибо! ..
Вопрос № 101577: Есть 2 программы. Одна всегда запущена и невидима(№1), другая визуальная(№2). Нужно чтобы прога №1 проверяла запущена ли прога №2 и если нет, то запускала ее. Можно какнибудь сделать такое общение через TEvent ?...

Вопрос № 101.541
Здравствуйте Уважаемые!После ответа мне на вопрос № 101217 у меня возник следующий вопрос.Если я не размещаю объекта StringGrid на форме,а создаю его из кода:
st:=TStringGrid.Create(Self); //создаем объект
Как мне вызвать его события ,ну например DrawCell?

Отправлен: 10.09.2007, 17:19
Вопрос задал: Зотов Геннадий Александрович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Coupler
Подобный вопрос уже задавался (см. приложение) - надо самому создать процедуру, а потом назначить ее обработчиком события OnDrawCell.

Приложение:

Ответ отправил: Coupler (статус: Практикант)
Ответ отправлен: 10.09.2007, 17:27
Оценка за ответ: 5
Комментарий оценки:
Спасибо я подписывался гораздо позже № 35180 и не читал поэтому его

Отвечает: Mishell
Здравствуйте, Зотов Геннадий Александрович!
создайте свою процедуру отрисовки ячеек и после создания компонента назначьте ее на соотв. событие - см. пример в приложении

Приложение:

Ответ отправил: Mishell (статус: 6-ой класс)
Ответ отправлен: 10.09.2007, 17:31
Оценка за ответ: 5
Комментарий оценки:
Спасибо за быстрый ответ

Отвечает: Alexey Bednov
Здравствуйте, Зотов Геннадий Александрович!
Может быть, имелось ввиду не "вызвать событие", а обработка события?
Необходимо в программе создать процедуру
procedure .StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

А после создания объекта назначить обработчик:
ST.OnDrawCell := StringGrid1DrawCell;
Ответ отправил: Alexey Bednov (статус: 1-ый класс)
Ответ отправлен: 11.09.2007, 10:15
Оценка за ответ: 3
Комментарий оценки:
А чем твой ответ отличается от предидущих,только названием процедуры не MyGridDrawCell а StringGrid1DrawCell или ...


Вопрос № 101.550
Доброго времени суток уважаемые эксперты!
Как можно, используя Delphi открыть стандартный редактор реестра(regedit) и перейти в редакторе реестра к нужному ключу? Заранее спасибо!
Отправлен: 10.09.2007, 18:10
Вопрос задал: Falameezar (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Denisss

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

В приложении приведена функция JumpToKey (взята из DRKB). Для работы функции, требуется прописать в uses модуль ShellAPI.

Пример использования функции:
JumpToKey(Edit1.Text);

(в Edit следует прописывать полный путь к ключу, так, как это отображается в Regedit. Например: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrent VersionRun).

Принцип работы функции такой:
1. Находим Regedit (если не найден, то запускаем и находим).
2. Сворачиваем все ветки реестра (30 раз повторяем нажатие кнопки влево).
3. Отправляем по буквам весь путь, указанный в параметре Key. Вместо символа '' отправляем нажатие кнопки вправо.

Удачи!

Приложение:

Ответ отправил: Denisss (статус: Профессионал)
Россия, Москва
----
Ответ отправлен: 10.09.2007, 19:02
Оценка за ответ: 5

Отвечает: Coupler
Здравствуйте, Falameezar!
Regedit хранит ветвь реестра, к которой обращались в последний раз, в HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionAppletsRegedit (параметр LastKey). Можно самим записать в этот параметр нужное значение (оно выглядит как 'Мой компьютер'+нужный ключ, запустить regedit, и он откроется на нужном ключе. Реализация в приложении (в edit1 - нужный ключ реестра, например HKEY_CURRENT_USERSoftwareAlcohol Soft).

Приложение:

Ответ отправил: Coupler (статус: Практикант)
Ответ отправлен: 11.09.2007, 12:29


Вопрос № 101.577
Есть 2 программы. Одна всегда запущена и невидима(№1), другая визуальная(№2). Нужно чтобы прога №1 проверяла запущена ли прога №2 и если нет, то запускала ее. Можно какнибудь сделать такое общение через TEvent ?
Отправлен: 10.09.2007, 20:47
Вопрос задал: Зощенко Алексей (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: din
Здравствуйте, Зощенко Алексей!
Во второй программе при запуске создаем семафор
CreateSemaphore(nil, 0, 1, 'Program2');
Впервой программе тоже самое и тогда, когда хотим проверить работает вторая или нет, например через таймер.
CreateSemaphore(nil, 0, 1, 'Program2');
if GetLastError = ERROR_ALREADY_EXISTS then
// здесь действия, которые нужно сделать при уже запущенной программе
else
// программа не запущена, запускаем
Можно по другому, считывать список процессов и искать в нем имя нашей программы, как получить список процессов написано в ответе на вопрос 73980.
Запуск программы можно сделать несколькими методами, не буду заниматься плагиатом, вот здесь то что Вам нужно.
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: din (статус: Специалист)
Ответ отправлен: 11.09.2007, 04:56
Оценка за ответ: 4


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

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

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

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

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


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


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

В избранное