Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2007, 12:51   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
по этому хоткею чтото выполнялось , а по другому хоткею выполнялось чтото другое...?
Присмотрись к примеру Квэнди, там msg.hotkey вернет номер хоткея зарегиного для твоей проги.
ТЫ ведь можеш зарегить несколько хоткеев под своими номерами:
RegisterHotkey(Handle, 1, MOD_win, VK_space);
RegisterHotkey(Handle, 2, MOD_CTRL, VK_space);

и соответственно проверять елси msg.hotkey= томуто, то тото...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.11.2007, 13:04   #12
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
Счастье

Точняк а я незаметил...
А можно вот так ?
RegisterHotkey(Handle, 1, HotKey1.hotkey);
Да , и обизательно анрегить хоткеи после того как я назначил другой ?если я назначю два разных хоткея с одинаковыми номерами старый 'затрётся' ???
------------------------------------------------------------------------
если я буду назначать например 5 хоткеев , то таким способом можно их различать только по номеру да ?
так можно ? :RegisterHotkey(Handle, 999, MOD_CTRL, VK_space);
------------------------------------------------------------------------
Вопрос всёещё важный для меня : как в реестр записывачь считывать значение хоткеев ??? если можно примерчик непомешалбы....
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 01.11.2007, 13:17   #13
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Цитата:
RegisterHotkey(Handle, 1, HotKey1.hotkey);
Неполучилось ((( говорит что нехватает параметров ((( как сделать чтобы получилось зарегить хоткей выбранный в HotKey1 ???
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 01.11.2007, 13:36   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как в реестр записывачь считывать значение хоткеев ?
Лана уж, лови...

Код:
unit Unit1;

interface

uses       registry,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    HotKey1: THotKey;
    HotKey2: THotKey;
    HotKey3: THotKey;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var  r:TRegistry;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var k,e:integer; s:TStringList;  tc:TComponent;
begin
r:=TRegistry.Create;
r.RootKey:=HKEY_CURRENT_USER;
r.OpenKey('__HOTkeys___',true);
s:=TStringList.Create;
 //********* FOR ******************
 r.GetvalueNames(s);
for k :=0  to s.Count-1  do
begin
 e:=r.ReadInteger(s[k]);
 tc:=form1.FindComponent(s[k]);
 if tc<>nil then ThotKey(tc).HotKey:=e;
end;
//******* END FOR ****************{}
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var k,e:integer;
begin
r.RootKey:=HKEY_CURRENT_USER;
//r.OpenKey('__HOTkeys___',true);
 //********* FOR ******************
for k :=0  to form1.ComponentCount-1  do
begin
 //caption:=Application.Components[k].Name;
 if form1.Components[k] is THotKey then begin
 e:=integer(THotKey(form1.Components[k]).HotKey);
 r.WriteInteger (form1.Components[k].Name,e);
 end;
end;
r.Free;
//******* END FOR ****************{}
end;

end.
Цитата:
говорит что нехватает параметров
Естесственно. А вот поиск однозначно отвечает на твой вопрос: http://programmersforum.ru/showthrea...ghlight=HotKey
Давай не ленись...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.11.2007, 13:50   #15
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Цитата:
Если в свойствах HotKey нет нужных клавиш, напиши код при создании формы, например
HotKey1.HotKey:=49217; //ctrl+alt+a
вот это я и прочетал когда сказал что можно представить в виде integer ! тольо вот как перевести на ходу из Hkey в integer незнаю (((
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 01.11.2007, 14:04   #16
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Ураа заработало =)))) а как зарегить сам хоткей используя только registerhotkey и Hotkey1/2/3.hotkey ?
мне обязательно кк в тваём примере перебирать все компоненты на форме в поисках хоткея ? если их у меня штук 100 будет это не сильно затормозит загрузку/выход из программы ?
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 01.11.2007, 14:55   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не сильно затормозит загрузку/выход из программы ?
Не обязательно.
Цитата:
а как зарегить сам хоткей используя только registerhotkey
Дык выше ж написан пример RegisterHotkey
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.11.2007, 16:45   #18
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Нету тут такого примера ((( весде фиксированный хоткей (( нигде нету такой записи или чегото наподобу...
Цитата:
RegisterHotkey(Handle, 1, HotKey1.hotkey);
Помогите зарегать плиз хоткей примерно таким способом... направьте меня в правильное русло =)
Мне нужно чтобы юзер моей програмки мог сам назначать хоткеи причём во время выполнения програмки а это можно сделать только лиш с помощью элемента HotKey1 ! т.к. только в нём можно выбирать сочитания клавиш... скажите как правильно вписать в функцию RegisterHotkey текущее значение HotKey1.hotkey и зарегать его ?
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 04.11.2007, 18:41   #19
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Ктонибудь подскажет ???
---
GAGARIN-NEW вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Горячие клавиши VS 2008 .:KOLYAN:. Свободное общение 2 02.09.2008 14:32
Горячие клавиши назначенные для макросов Word Glad Microsoft Office Word 0 05.10.2007 20:29
По нажатию, каких сочетаний клавиш можно программно развернуть приложение, если оно свернуто в трее? Johnny_B Win Api 1 04.06.2007 08:20