Re: Registry Werte beim starten auslesen klappt nicht
Ich habs zwar nicht mit try finally sondern etwas verkürzt mit try except gemacht, aber es ist mittlerweile eingebaut.
Das war auch zwingend nötig, weil selbst wenn der Key erstellt wird, existieren ja noch lange keine Werte. |
Re: Registry Werte beim starten auslesen klappt nicht
Das habe ich aber nicht gemeint.
Ich spreche davon: Zitat:
|
Re: Registry Werte beim starten auslesen klappt nicht
hoi,
hoffe du verwechselst mich nicht mit dem topic creator. btw ist was falsch an dem code? |
Re: Registry Werte beim starten auslesen klappt nicht
Hmmmm, eventuell habe ich da jetzt ein Verständniss Problem, try --> finally benutzt du dabei doch um Fehler abzufangen falls einer der Werte in dem Registry-Key nicht existiert oder ?
Ich habe das folgendermassen gemacht:
Delphi-Quellcode:
d.h. tritt der Fall auf das die Werte nicht existieren (erster Programmstart), dann fülle ich die Edits mit 0, beim beenden des Programmes werden die Werte dann ja auf jedenfall geschrieben.
procedure TForm1.FormActivate(Sender: TObject);
var reg : TRegistry; begin reg:=TRegistry.Create; reg.RootKey:=HKEY_CURRENT_USER; try reg.OpenKey('Software\Fischmob\Flotteninformationen\0.1 beta', true); Edit1.Text := reg.ReadString('Typ 1'); Edit2.Text := reg.ReadString('Typ 2'); Edit3.Text := reg.ReadString('Typ 3'); Edit4.Text := reg.ReadString('Typ 4'); Edit5.Text := reg.ReadString('Typ 5'); Edit6.Text := reg.ReadString('Typ 6'); Edit7.Text := reg.ReadString('Typ 7'); Edit8.Text := reg.ReadString('Typ 8'); Edit9.Text := reg.ReadString('Typ 9'); except Edit1.Text := ('0'); Edit2.Text := ('0'); Edit3.Text := ('0'); Edit4.Text := ('0'); Edit5.Text := ('0'); Edit6.Text := ('0'); Edit7.Text := ('0'); Edit8.Text := ('0'); Edit9.Text := ('0'); end; reg.free; end; Oder verstehe ich jetzt etwas grundsätzlich falsch? |
Re: Registry Werte beim starten auslesen klappt nicht
@Pseudemys Nelsoni: Upps, ja stimmt. Ich habe dich verwechselt. Mein Fehler. Aber ich hätte den Code so gestaltet:
Delphi-Quellcode:
Man könnte das Auslesen der Werte und Zuweisen an die Edits auch so machen:
reg := TRegistry.Create;
if reg <> nil then with reg do try // eigentlich unnötig, weil Standard --> // RootKey := HKEY_CURRENT_USER; if OpenKey('Software\Fischmob\Flotteninformationen\0.1 beta', false) then try Edit1.Text := ReadString('Typ 1'); Edit2.Text := ReadString('Typ 2'); Edit3.Text := ReadString('Typ 3'); Edit4.Text := ReadString('Typ 4'); Edit5.Text := ReadString('Typ 5'); Edit6.Text := ReadString('Typ 6'); Edit7.Text := ReadString('Typ 7'); Edit8.Text := ReadString('Typ 8'); Edit9.Text := ReadString('Typ 9'); finally CloseKey; end; finally Free; end;
Delphi-Quellcode:
Auf die gleiche Weise kann man natürlich vor dem Registryzugriff die Edits mit den gewünschten Standardwerten füllen.
for i := 1 to 9 do
if(ValueExists('Typ ' + inttostr(i))) then begin MyEdit := self.FindComponent('Edit' + inttostr(i)); if(MyEdit <> nil) then (MyEdit as TEdit).Text := ReadString('Typ ' + inttostr(i)); end; @Helpliner: Wenn du die Werte nur lesen willst, halte ich Zitat:
|
Re: Registry Werte beim starten auslesen klappt nicht
@mathias, jo stimmt, sieht schon besser aus
|
Re: Registry Werte beim starten auslesen klappt nicht
Stimm, wenn ich so drüber nachdenke ist false völlig ausreichend.
Zitat:
Delphi-Quellcode:
durch
reg.WriteString('Typ 1', Edit1.Text);
reg.WriteString('Typ 2', Edit2.Text); etc.
Delphi-Quellcode:
Wobei das ersetzen der Zahl in Editx.Text nicht geklappt hat.
var i: Integer;
begin i := 1; while i <= 9 do begin reg.WriteString('Typ' + IntToStr(i)), Edit(i).Text); end; end; Aber jetzt habe ich ja eine Lösung dafür auf dem Silberteller bekommen die ich sogar noch verstehe *freu* |
Re: Registry Werte beim starten auslesen klappt nicht
Zitat:
Zuerst immer der Parent und dann die Child-Controls. Alternativ im OnCreate immer erst ein inherited; und dann erst zuweisungen, denn im inherited werden die childcontrols erzeugt. |
Re: Registry Werte beim starten auslesen klappt nicht
Zitat:
D.h. schon in FormCreate kann man auf alle Koponenten zugreifen, die man selbst aufs Form gepackt hat. Gruß, teebee |
Re: Registry Werte beim starten auslesen klappt nicht
Aber anscheinend ja nicht 100%ig sauber, sonst hätte es das
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz