Zapamietanie pozycji okna...

0

Mam oto taki kodzik, dzieki któremu program zapamietuje pozycję ostatnio zamknietego okna:

begin
if FileExists('D:\Power StartUp\code\config.ini') then
begin
Plik:=TiniFile.Create('D:\Power StartUp\code\config.ini');
QMain.Left := Plik.ReadInteger('Position','Left',200);
QMain.Top := Plik.ReadInteger('Position','Top',100);
QMain.Width := Plik.ReadInteger('Position','Width',400);
QMain.Height := Plik.ReadInteger('Position','Height',300);
Plik.Free;

Moje pytanko brzmi, jak zrobić, aby ścieżka 'D:\Power StartUp\code\config.ini' była odczytywana z rejestru np.: - HKEY_CURRENT_USER/Software/Nazwa/ klucz=Dir , wartość = np. C:/ ?

0

Skorzystaj z plików INI :-P

hmm... przeciesh korzysta :P

a co do rejestru - przeczytaj artykuł na tej stronie... tam znajdzie odpowiedz, jak pobrać wartosc z rejestru

0

To nie lepiej tą pozycje zapisać do rejestru, pomyśl zanim o coś zapytasz...
poza tym jest dość dużo opisów korzystania z rejestru - pytanie na forum to ostateczność...

poza tym z tego co widze to jest podpucha jakaś na adminów albo coś żeby skasowali...

0

Ale po co to ?? Przecież jeśli się używa plików INI to rejestr niepotrzebny a zamiast nazwy pliku całego z folderem "C:\program\log.ini" wystarczy napisać "log.ini" i będzie pobierało z aktualnego folderu skąd uruchomiono program. Niepowinno się mieszać rejestru i plików INI bo to jest ... bezsensu.

A jeśli już to proponuje wszystkie dane zapisywać w rejestrze a nie w INI. Jest lepszy (zapisuje się nawet gdy uruchomimy program w trybie tylko do odczytu)

0

..zamiast nazwy pliku całego z folderem "C:\program\log.ini" wystarczy napisać "log.ini" i będzie pobierało z aktualnego folderu skąd uruchomiono program.

coś mi sie wydaje, że w tedy to będzie z folderu Windows brało :-/

0

coś mi sie wydaje, że w tedy to będzie z folderu Windows brało :-/

Zależy od aktualnego bieżącego katalogu. Można ustawić to np. w skrócie. Najlepiej więc pobrać folder execa.

0

Coś niebardzo odczytywanie z rejestru sciezki do pliku ini... moze po prostu plik config.ini i tam operujesz :-)

0

Ja robię tak bo to wygodne, choć wadą jest że trzeba zapisywać ścieżki jako string[255] ale... Można dodawać do Configa co tam się podoba bez zbytniego paprania się z kodem. Poniżej oczywiście usunąłem sprawdzenia -dla przejrzystości.<BR>

type

ConfigRec=record
  //...it tutaj co trza
  WindowRect     : TRect;
  EgxamplePath   : string[256];
end;

procedure LoadConfig();
var MyData: File of ConfigRec; 
begin
  AssignFile(MyData, EXEPath + CONFIGPATH);
  Reset(MyData);
  Read(MyData, Config);
  CloseFile(MyData);
end;

procedure SaveConfig();
var MyData: File of ConfigRec;
begin
  AssignFile(MyData, EXEPath + CONFIGPATH);
  Rewrite(MyData);
  Write(MyData, Config);
  CloseFile(MyData);
end;


<BR>Ponadto: Wszyscy korzystający z kofigów trzymają to w stałym miejscu tylko ty coś gmatwasz z tym rejestrem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1