Технический форум

Технический форум (http://www.tehnari.ru/)
-   Программы и программирование (http://www.tehnari.ru/f211/)
-   -   DELPHI (http://www.tehnari.ru/f211/t2583/)

V_Bond 20.03.2007 01:45

DELPHI
 
Горячие клавиши
Горячие клавиши - сочетания клавиш, которые регистрируются в системе и при их нажатии система посылает сообщение WM_HOTKEY тому окну, Handle которого было заявлено при регистрации горячей клавиши. При этом не важно, имеет ли окно- получатель фокус ввода и видимо ли оно на экране. Это особенно удобно при написании резидентных программ, т.е. приложений, которые активизируются при нажатии определенных сочетаний клавиш.
Регистрация производится при помощи вызова API RegisterHotKey
function RegisterHotKey(hWnd: HWND; id: Integer; fsModifiers, vk: UINT): BOOL;
hWnd - Handle окна, которое будет получать сообщения при нажатии горячей клавиши
id - идентификатор (просто число, передаваемое в сообщении WM_HOTKEY. id позволяет приложению работать с несколькими горячими клавишами, различая их по id). Нельзя определить две горячие клавиши с одинаковым id
fsModifiers - модификаторы. Определяют, какие клавиши должны быть нажаты совместно с указанной vk. Допустимы значения: MOD_ALT - ALT, MOD_CONTROL - CTRL, MOD_SHIFT - SHIFT
vk - виртуальный код клавиши
Если горячую клавишу удается зарегистрировать, то функция возвращает TRUE.
При завершении приложения необходимо отменить регистрацию горячей клавиши при помощи вызова UnregisterHotKey. При вызве ей передается Handle окна и id горячей клавиши.

TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
// Обработчик сообщения WM_HOTKEY
procedure WMHotKey(var Mess:TWMHotKey);message WM_HOTKEY;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMHotKey(var Mess: TWMHotKey);
begin
MessageBeep(0);
ShowMessage('Нажата горячая клавиша CTRL+F12');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Handle, 1 ,MOD_CONTROL, vk_F12);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle, 1);
end;

ORTODOX 07.12.2007 20:22

Короче такая фигня ,вопрос конечно ламерский =D . вот допустим надо сохранить текст ,(в делфе конечно) прописываем
Код:

memo1.Lines.SaveToFile(C........ путь здесь не важен)
И допустим
if memo1.Modified then begin

Теперь вопрос, как сделать чтобы можно было самому указывать путь ,а не этим способом?
Цитата:

memo1.Lines.SaveToFile(C........ и так далее)
Заранее спасибо!

ORTODOX 09.12.2007 19:42

:(

AlexZir 09.12.2007 20:23

в разделе переменных определяешь текстовый файл
...
var
F: TextFile;
...

затем в процедуре используешь операторы для работы с файлами:
AssignFile(F,'путь к файлу'); - ассоциировать файловую переменную с файлом
Reset(F); - инициализация файла по чтению
Rewrite(F); - инициализация файла по записи
Append(F); - инициализация файла по добавлению строк в конец файла.
WriteLine(F,'строка'); - запись строки в файл
ReadLine(F,S); - чтение строки из файла в переменную S
CloseFile(F); - закрыть файл.

Для того чтобы самому указывать путь, кидай на форму TEdit, в него пусть вводится путь, а EditText используй в AssignFile(F,'путь к файлу')

В цикле чтения используй признак конца файла EOF(F) или конца строки EOL(F) - это логические функции.

ORTODOX 09.12.2007 20:54

AlexZir
СПАСИБО! Все сделал, еще и до самого дошло =D !
ЗЫ Делфа рулит!!!

Aliev 03.05.2008 15:23

уважаемые делферы, подскажите пжлст, чем лучше правильность написания в делфе зачекать? это годится? http://www.softsoft.ru/development/delphi/11623.htm или дорого?

ho-o 05.02.2009 21:20

Помогите! Brothers in Arms - Hell's Highway - крутит камеру.
 
Как только начинаю играть, камера начинает крутится с большой скоростю и ничего нельзя понять . Уже все перепробувал, все настройки, DirectX, и многое другое, и ничего не изменилось! Форумчане помогите please.::(

Vormaloi 05.02.2009 23:50

Только в одной игре такая проблема?

Как вариант - посмотрите настройки чувствительности мыши.

Pavel 13 06.02.2009 07:19

Попробуй установить патч!

ho-o 06.02.2009 18:07

Я ИСКАЛ ПО ВСЕМУ НЕТУ. ЕТОТ ПАТЧ и НИЧЕГО НЕ НАШОЛ!!! ета пипец.
GTA4, Far cry2, Fallout3,NFS undercover, Cal:(l of Duty 5 - Все идет как по маслу! А ета хрень тупит!


Часовой пояс GMT +4, время: 21:00.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.