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

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


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

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

Выпуск № 626
от 20.10.2006, 21:35

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


Вопрос № 58930: Здравствуйте, эксперты! Вопрос такой: Есть список(TList), состоящий из записей PME: ME = record MTime : DWord; MEvent : Pointer; end; PME = ^ME; С добавлением и извлечением элементов списка проблем нет.<b...
Вопрос № 58960: Здравствуйте! Создал я класс... Как можно создать переменную, чтобы при изменении ее значения сразу выполнялось какое-либо действие?...
Вопрос № 58976: Здравствуйте уважаемые эксперты. У меня имеется пара вопросов: 1) Как узнавать о нажатии каких либо клавиш в Windows если окно моего приложения не активно. Мне нужно зделать активацию моего приложения при нажатии определенных клавиш. ...
Вопрос № 58977: Возникла проблема в написании программы по файлам: Найти номер максимального элемента файла number1.txt. Вывести в файл number3.txt и на печать все числа, стоящие после максимального элемента. В конец файла number2.txt добавить слова "R...
Вопрос № 59021: Уважаемый господа, хоть я и чайник в этих вопросах, но очень хочеться научиться работать в этой программе. Подскажите, с чего начать,и как заставить её работать. Уже скачал всю Delphi6, а как запустить-не знаю. Зарание благодарен....

Вопрос № 58.930
Здравствуйте, эксперты!
Вопрос такой:
Есть список(TList), состоящий из записей PME:

ME = record
MTime : DWord;
MEvent : Pointer;
end;
PME = ^ME;

С добавлением и извлечением элементов списка проблем нет.

Необходимо записать в файл MTime и MEvent всех элементов списка последовательно.

Необходимо написать функцию
Отправлен: 15.10.2006, 00:08
Вопрос задал: Mo-skin (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Werewolf
Здравствуйте, Mo-skin!
вы уверены в том что есть смысл сохранять MEvent : Pointer?
это же указатель, соответсвенно, при загрузке вы не сможете получить нужный результат.
можно и процедуру написать (см. приложение)

Приложение:

Ответ отправил: Werewolf (статус: Студент)
Ответ отправлен: 16.10.2006, 10:56
Оценка за ответ: 5


Вопрос № 58.960
Здравствуйте!
Создал я класс... Как можно создать переменную, чтобы при изменении ее значения сразу выполнялось какое-либо действие?
Отправлен: 15.10.2006, 12:34
Вопрос задал: Томша Павел (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Melamed
Здравствуйте, Томша Павел!
В случае если дааная переменная является полем класса, то делай свойство класса (см. приложение)

Приложение:

Ответ отправил: Melamed (статус: 6-ой класс)
Ответ отправлен: 15.10.2006, 16:25


Вопрос № 58.976
Здравствуйте уважаемые эксперты.

У меня имеется пара вопросов:
1) Как узнавать о нажатии каких либо клавиш в Windows если окно моего приложения не активно. Мне нужно зделать активацию моего приложения при нажатии определенных клавиш.
2) Как отличить нажатие левого Ctrl от правого. Тоже самое с Shift и Alt.

Заранее большое спасибо.
Отправлен: 15.10.2006, 14:56
Вопрос задал: Александр Викторович Анкудинов (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Coupler
Здравствуйте, Александр Викторович Анкудинов!
Создание системных горячих клавиш (ctrl+alt+F12):
RegisterHotkey(Handle, 1, mod_alt or mod_control, vk_f12);
Их обработка:
procedure TForm1.WMHotkey( var msg: TWMHotkey );
begin
if msg.hotkey = 1 then
begin
close;
BringToFront;
end;
end;
Поместите код
procedure WMHotkey( var msg: TWMHotkey ); message WM_HOTKEY;
в секцию private.
Для того, чтобы отличить нажат левый или правый Ctrl, нужно перехватить событие WM_KEYDOWN. В зависимости от состояния 24-ого бита параметра LParam нажата правая или левая клавиша.

public
procedure WMKEYDOWN(var msg: TMessage); message WM_KEYDOWN;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMKEYDOWN(var msg: TMessage);
begin
if (msg.LParam and (255 shl 16)) shr 16 <> 29 then
Exit;
if msg.LParam and (1 shl 24) > 0 then
Form1.Caption := 'Right'
else
Form1.Caption := 'Left';
end;
С shift и alt аналогично, только коды у них другие (не 29).
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 15.10.2006, 15:17
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо. Все просто и понятно.


Вопрос № 58.977
Возникла проблема в написании программы по файлам:

Найти номер максимального элемента файла number1.txt. Вывести в файл number3.txt и на печать все числа, стоящие после максимального элемента. В конец файла number2.txt добавить слова "Result = " и полученные результаты - номер максимального элемента и его значение, вывести полученный результат на печать. Вывести все слова, встречающиеся в тексте файла text1.txt по одному разу. Результат записать в файл text2.txt

Получается совсем не то, что нужно.
Пожалуйста, помогите написать решение!

Отправлен: 15.10.2006, 14:56
Вопрос задала: MariaErohina (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: 3лоумышленник
Здравствуйте, MariaErohina!
С. Тейксейра, К. Пачеко "Delphi 5. Руководство разработчика. Том 1. Основные методы и технологии", Глава 12 Работа с файлами, стр. 505-569. Обратите внимание на раздел "Работа с текстовыми файлами". Вы не указали конкретно, что именно не получается, поэтому такой ответ.
Если собираетесь стать хорошим программистом, то вам это должно нравиться (программировать). В противном случае лучше займитесь другим чем-нибудь.
Удачи.

---------
"Люди неизбежно умирают", A. Schwarzenegger (Terminator 3: Rise of the Machines)
Ответ отправил: 3лоумышленник (статус: Студент)
Ответ отправлен: 15.10.2006, 17:07

Отвечает: Gladiator
Объявляешь файл как TextFile (Например, F: TextFile).

И работаешь с ним посредством следующих функций:

FileCreate
AssignFile
Append
Writeln
Readln
CloseFile

и т.д.
Как работать с этими функциями посмотри в справке.
Ответ отправил: Gladiator (статус: 3-ий класс)
Ответ отправлен: 16.10.2006, 08:09


Вопрос № 59.021
Уважаемый господа, хоть я и чайник в этих вопросах, но очень хочеться научиться работать в этой программе. Подскажите, с чего начать,и как заставить её работать. Уже скачал всю Delphi6, а как запустить-не знаю.
Зарание благодарен.
Отправлен: 15.10.2006, 21:34
Вопрос задал: Orxideia15 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Monah
Здравствуйте, Orxideia15!
На рабочем столе есть ярлык Delphi. Запускаешь, жмешь F9 и готово
Ответ отправил: Monah (статус: 4-ый класс)
Ответ отправлен: 15.10.2006, 21:38
Оценка за ответ: 4

Отвечает: sir henry
Здравствуйте, Orxideia15!
Для начала Delphi 6 Вам нужно установить. Для этого среди скачаных Вами файлов найдите setup.exe и запустите его. Можете оставить все настройки по умолчанию.
После завершения процедуры установки, найдите в меню "Старт - Программы" пункт Borland Delphi, зайдите в подменю и запустите пункт Delphi 6.
Перед Вами откроется серое окно, в которое Вы можете из закладок компонентов мышкой перетаскивать нужные Вам компоненты.
В обязательном порядке купите книжку по работе с Delphi и выполняйте все что там написано, с глубоким продумыванием, что означает та или иная строчка кода.
После этого поставьте себе задачу, которую Вы решите с помощью Delphi и постоянно сверяясь с книжкой начните разрабатывать решение.
Вот и все. Все очень просто.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 16.10.2006, 09:03
Оценка за ответ: 5
Комментарий оценки:
Спасибо, бум пробывать!


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

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

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

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

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

В избранное