![]() |
Arbeitsspeicher sparen
Hallo,
ich habe eine Prozedur, die dann aufgerufen wird, wenn das Interval vom Timer vorbei ist. Dort werden immer die Werte aus der Registry ausgelesen. Dies möchte ich nun nur noch einmal im FormCreate machen und ansonsten soll nur beim synchronisieren die Pfäde miteinander verglichen werden. So kann ich Arbeitsspeicher sparen. Wie mach ich das?
Delphi-Quellcode:
Das sollte nur einmal ins FormCreate, aber wie vergleiche ich dann die Pfäde? Mit Publikvariablen?
procedure TFrmTimesynchro.synchronisieren;
var start, stop, i, x: Integer; izeit: TDateTime; k: TSystemTime; Registry: TRegistry; s: String; begin {Auslesen der Registry, um festzustellen, ob der Rechner einen Proxyserver verwendet} Registry := TRegistry.Create; Registry.RootKey := HKEY_CURRENT_USER; Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings\',True); i := Registry.ReadInteger('ProxyEnable'); Registry.Free; Registry := TRegistry.Create; s := '\Software\Tisy Zeitermittlung\ProxyServer'; if Registry.ValueExists(s) then begin Registry.RootKey := HKEY_LOCAL_MACHINE; Registry.OpenKey('\Software\Tisy Zeitermittlung\',True); s := Registry.ReadString('ProxyServer'); Registry.Free; end else // ansonsten den Standard begin Registry.RootKey := HKEY_CURRENT_USER; Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings\',True); s := Registry.ReadString('ProxyServer'); Registry.Free; end; Danke schon mal. |
Re: Arbeitsspeicher sparen
was denn daran _nicht_ ressourcensparend? für deine zwecke reichts wohl - so wies ist
|
Tja, aber ich möchte es trotzdem so machen. Also bitte hilfreiche und vernünftige Antworten und nicht so Müllposts! ;)
|
Re: Arbeitsspeicher sparen
dann mach dich mit der winapi variante des registry zugriffs vertraut (TRegistry macht nichts weiter als das)
MSDN ist dein Freund |
Der Code dort oben soll lediglich EINMAL ins FormCreate und beim Synchronisieren soll's einfach per Variable abgefragt werden.
Aber ich weiß nicht, wie ich frage.. |
Re: Arbeitsspeicher sparen
dann schreib dir ne funktion die den Zeitstring oder was auch immer du aus der registry brauchst zurückgibt.
so kannst du die dann im formcreate und bei deinem synchronisieren wiederaufrufen |
Wozu einen Zeitstring? :gruebel:
|
Re: Arbeitsspeicher sparen
maaaaaaaaaaaan
oder was auch immer du brauchst... das war _nur_ ein beispeil ...... btw hat diese frage nichts mit dem titel zu tun |
Re: Arbeitsspeicher sparen
|
Re: Arbeitsspeicher sparen
Noch etwas nebenbei zu deinem Code:
Nutze immer Resourcen-Schutzblöcke à la:
Delphi-Quellcode:
Du siehst, ich habe auch ein CloseKey eingefügt, was generell nach einem Aufruf von OpenKey erfolgen sollte.
Registry := TRegistry.Create;
try Registry.RootKey := HKEY_CURRENT_USER; Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings\',True); i := Registry.ReadInteger('ProxyEnable'); Registry.CloseKey; finally Registry.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz