Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

чтение из реестра [D2005]


Роман ©   (2014-03-21 12:30:00) 

Добрый день, помогите пожалуйста с консультацией.
Я не могу никак разобраться как присвоить свойству компонента, значение сохраненные в реестре.
Имеются две процедуры, одна сохраняет значение в реестр

procedure TForm1.SaveProgParam;
var
ZapReg:TRegIniFile;
R:Trect;
begin
ZapReg:= TRegIniFile.Create('Software');
if ToolBar1.HostDockSite<>ControlBar1 then
 begin
   GetWindowRect(ToolBar1.Handle, R);
   ZapReg.OpenKey('delphiprog',true);
   ZapReg.WriteInteger('Options','Left', R.Left);
   ZapReg.WriteInteger('Options','Top', R.Top);
   ZapReg.Free;
 end;


а другая должна читать значения из реестра. Точнее сказать компонент ToolBar1 должен запускаться с параметрами прочитанными из реестра

procedure TForm1.LoadProgParam;
var
ZapReg:TRegIniFile;
r:Trect;
begin
 ZapReg:= TRegIniFile.Create('Software');
 if ToolBar1.HostDockSite<>ControlBar1 then
   begin
   ZapReg.OpenKey('delphiprog',true);
   ToolBar1.Left:=ZapReg.ReadInteger('Options', 'Left',Left);
   ToolBar1.Top:=ZapReg.ReadInteger('Options', 'Top',top);
   ZapReg.Free;
   end;
end;


процедура LoadProgParam прописана в обработчике события FormShow
процедура SaveProgParam прописана в оброботчике события OnShow

в реестр значения записались нормально, но вот присвоить их компоненту ToolBar1 при запуске программы не получается.
помогите пожалуйста разобраться.


Inovet   (2014-03-22 13:16:00) [1]

https://www.google.ru/#newwindow=1&q=%D0%BA%D0%B0%D0%BA+%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F+%D0%BE%D1%82%D0%BB%D0%B0%D0%B4%D1%87%D0%B8%D0%BA%D0%BE%D0%BC+delphi


Anatoly Podgoretsky   (2014-03-22 13:02:00) [2]


> я не умею им пользоватсья

Придется научиться, иначе удачи не видать.


clickmaker   (2014-03-22 00:38:00) [3]

Позицию ему можно таки выставить, если у него DragKind = dkDock
ToolBar1.ManualFloat()


Плохиш   (2014-03-21 22:21:00) [4]


> Роман   (21.03.14 12:30) 

ToolBar1 - это, то что вверху окохи с пимпочками? И вы пытаетесь ему позицию выставить.
Я бы порекомендовал вам сменить поле деятельности, рекомендовать банальщину, типа почитать чего, уже скучно.


alexdn   (2014-03-21 21:38:00) [5]

Что то вообще не понимаю в чём тут могут быть проблемы.. Для чтения из реестра я пользуюсь:
var Regstr:string;
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKeyReadOnly('SOFTWARE\тра та та');
Regstr:=Reg.ReadString('STR');
Reg.CloseKey;
Reg.Free;

И крути потом этой строчкой как хочешь.


Кщд   (2014-03-21 20:53:00) [6]

в ветку вызывается Плохиш


Роман   (2014-03-21 15:25:00) [7]

я не умею им пользоватсья


clickmaker   (2014-03-21 15:24:00) [8]

> как будто не выполняются

что значит "как будто"? а отладчик тебе на что даден?


Роман   (2014-03-21 15:17:00) [9]

Если можно напишите пожалуйста кто нибудь пример загрузки параметров из реестра. Просто к какому нибудь компоненту. Например к кнопке.
с условием, в реестре запись храниться вот так HКEY_CURRENT_USER\Software\button


RWolf   (2014-03-21 15:13:00) [10]


> программа должна из реестра считать параметры и по ним выставить
> окн

но ведь она выставляет не окно, а какой-то тулбар.


Роман   (2014-03-21 15:11:00) [11]

ToolBar1.Left:=ZapReg.ReadInteger('Options', 'Left',Left);
ToolBar1.Top:=ZapReg.ReadInteger('Options', 'Top',top);
эти строчки как будто не выполняются, то есть в программа должна из реестра считать параметры и по ним выставить окно, но окно открывается без этих параметров


Германн   (2014-03-21 15:05:00) [12]

Кстати2.
Для цели только чтения не стоит вызывать OpenKey со вторым параметром True.


Германн   (2014-03-21 15:02:00) [13]

Кстати. OpenKey между прочим функция.


clickmaker   (2014-03-21 14:57:00) [14]

что именно не получается?
вот эта строчка
ToolBar1.Left:=ZapReg.ReadInteger('Options', 'Left',Left);
выполняется? что в итоге в ToolBar1.Left?


Роман   (2014-03-21 14:29:00) [15]

я новичек)
просто этот объект изучил уже.
но почему то все равно не получается(


Inovet   (2014-03-21 13:15:00) [16]

> [0] Роман   (21.03.14 12:30)
> TRegIniFile

А зачем старые костыли тащить? Почему не TRegistry?


icWasya   (2014-03-21 12:49:00) [17]

Для начала - ZapReg.Free; выполняется только когда ToolBar1. HostDockSite <> ControlBar1 . А если равно?
Ну и учитесь пользоваться отладчиком.


Роман   (2014-03-21 12:33:00) [18]

прошу прощение за ошибку
процедура SaveProgParam прописана в оброботчике события FormClose


Наверх

Титульная страница Поиск, карта сайта Написать письмо