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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.01.2011, 21:38   #11
KWN, lnc
Delphi 7
Форумчанин
 
Аватар для KWN, lnc
 
Регистрация: 10.02.2009
Сообщений: 354
По умолчанию

Дело в том что я не могу нормально зарегистрировать клавишу

Код:
function RegHotKey(HotKey:TShortCut;id:integer):boolean;
var
TheKey:Word;
TheShiftState:TShiftState;
Modifiers:Cardinal;
flag:boolean;
begin

idkey:=id+idkey;
UnRegisterHotKey(Application.MainForm.Handle,idkey);
setlength(idkey1,length(idkey1)+1);
idkey1[id]:=idkey;
flag:=false;
HotKeyContacts:=HotKey;
ShortCutToKey(HotKeyContacts, TheKey, TheShiftState);
Modifiers:=0;
 if ssAlt in TheShiftState then
begin
Modifiers:= MOD_ALT;
flag:=true;
end;

if ssCtrl in TheShiftState then
 begin
 if flag=true then
  begin
  Modifiers:= modifiers or MOD_CONTROL;
  end
 else
begin
Modifiers:= MOD_CONTROL;
 end;
end;

if ssShift in TheShiftState then
begin
 Modifiers:= modifiers or MOD_Shift;
end;

Result := RegisterHotkey(Form1.Handle, idkey, Modifiers, TheKey);
end;

и вот кнопка

Код:
procedure TForm1.HotKeyLinkShow;
var
 i,j: integer;
 Hotkey,s:string;
 ini:Tinifile;
begin
ini := Tinifile.Create('c:\file.ini');
j := ini.ReadInteger('Number','1',1);

for i := 1 to j do
 begin
 s := ini.ReadString('Address', IntToStr(i), '');
 Hotkey := ini.ReadString('Promptness keys', IntToStr(i), '');
 if (s <> '') and (hotkey <> '') then
  begin
  ListView1.Items.Insert(i-1).Caption := s;
  ListView1.Items.Item[i-1].SubItems.Insert(0, Hotkey);
  ListView1.Items.Item[i-1].ImageIndex := 28;
  RegHotKey(TextToHotKey(HotKey, LOCALIZED_KEYNAMES), i-2);
  end;
 end;
end;
в чем проблема? он регистрирует после 1 все клавиши
Дайте мне власть и я переверну ваш мир!...
KWN, lnc вне форума
Старый 15.01.2011, 22:02   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ListView1.Items.Insert(i-1).Caption := s;
ListView1.Items.Item[i-1].SubItems.Insert(0, Hotkey);
ListView1.Items.Item[i-1].ImageIndex := 28;
Индусы отдыхают )))
Код:
  
 With ListView1.Items.add do begin
  Caption := s;
  SubItems.Insert(0, Hotkey);
  ImageIndex := 28;
 end;
Цитата:
он регистрирует после 1 все клавиши
А что у тебя в ИНИ файле?
I'm learning to live...
Stilet вне форума
Старый 16.01.2011, 00:42   #13
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

http://www.gunsmoker.ru/2011/01/blog-post.html
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума
Старый 16.01.2011, 13:58   #14
KWN, lnc
Delphi 7
Форумчанин
 
Аватар для KWN, lnc
 
Регистрация: 10.02.2009
Сообщений: 354
По умолчанию

Stilet, да в Ini а где нужно?
помоги!

есть идеи?
Дайте мне власть и я переверну ваш мир!...

Последний раз редактировалось Stilet; 19.01.2011 в 17:36.
KWN, lnc вне форума
Старый 19.01.2011, 17:37   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
да в Ini а где нужно?
Я не спрашивал где, я спросил что
I'm learning to live...
Stilet вне форума
Старый 19.01.2011, 18:59   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
  ListView1.Items.Insert(i-1).Caption := s;
  ListView1.Items.Item[i-1].SubItems.Insert(0, Hotkey);
  ListView1.Items.Item[i-1].ImageIndex := 28;
меня сейчас инфаркт хватит в мои 18 лет...
а не проще работать TListView не используя массив вообще?(другой вариант Виталий показал)
Код:
procedure TForm1.HotKeyLinkShow;
var
 i,j: integer;
 Hotkey,s:string;
 ini:Tinifile;
 Item:TListItem;
begin
ini := Tinifile.Create('c:\file.ini');
j := ini.ReadInteger('Number','1',1);
for i := 1 to j do
 begin
 s := ini.ReadString('Address', IntToStr(i), '');
 Hotkey := ini.ReadString('Promptness keys', IntToStr(i), '');
 if (s <> '') and (hotkey <> '') then
  begin
  Item:=ListView.Items.Add;
  Item.Caption:=s;
  Item.SubItems.Add(Hotkey);
  Item.ImageIndex := 28;
  RegHotKey(TextToHotKey(HotKey, LOCALIZED_KEYNAMES), i-2);//начинаем с -1?
  end;
 end;
end;
где вы так со списками научили работать?
списки это не массивы.

ЗЫ: а кто мешает и в ини хранить с нуля?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 19.01.2011 в 19:03.
Пепел Феникса вне форума
Старый 20.01.2011, 12:01   #17
KWN, lnc
Delphi 7
Форумчанин
 
Аватар для KWN, lnc
 
Регистрация: 10.02.2009
Сообщений: 354
По умолчанию

Код:
[Address]
1=c:\
2=d:\
[Promptness keys]
1=F1
2=F2
[Number]
1=2

это файл INI

получается он начинает с 1..
а ListView с 0
Дайте мне власть и я переверну ваш мир!...
KWN, lnc вне форума
Старый 20.01.2011, 12:48   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ИНИ файл ваш?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 20.01.2011, 16:18   #19
KWN, lnc
Delphi 7
Форумчанин
 
Аватар для KWN, lnc
 
Регистрация: 10.02.2009
Сообщений: 354
По умолчанию

Так точно!
как мне сделать так чтобы он считывал все ссылки? ((( Help me
Дайте мне власть и я переверну ваш мир!...
KWN, lnc вне форума
Старый 20.01.2011, 16:31   #20
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

убиться об стену

Уже ткнули в косяк.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так чтобы ... Ромка-12 Помощь студентам 2 16.09.2010 05:52
Как сделать так чтобы.. Дима я Общие вопросы Delphi 2 05.01.2010 19:03
Как сделать так чтобы дружбан начал... VintProg Свободное общение 31 22.08.2009 10:51
Как в Битриксе сделать так, чтобы mulatka Помощь студентам 0 09.06.2009 22:36
Как сделать так чтобы dBCOMBOBOX...... Gareevbo Общие вопросы Delphi 1 08.06.2009 19:59