Den compiler skam fint..
Det er når programmet skal køres fejlen opstår
Der er dog indtil videre i hvert fald én fejl i din kode.
procedure TFrmVegas.FormCreate(Sender: TObject);
var
Registry: TRegistry;
begin
Form2.ShowModal;
Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_CURRENT_USER;
If Registry.OpenKey('Scorpe/LFLV',True) then
FrmVegas.Color := StringToColor(Registry.ReadString('bgcolor'));
ListBox1.Color := StringToColor(Registry.ReadString('bgcolor'));
Registry.Free;
end;
du glemmer i hvert fald en begin hvis key'en eksisterer
procedure TFrmVegas.FormCreate(Sender: TObject);
var
Registry: TRegistry;
begin
Form2.ShowModal;
Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_CURRENT_USER;
If Registry.OpenKey('Scorpe/LFLV',True) then
begin
FrmVegas.Color := StringToColor(Registry.ReadString('bgcolor'));
ListBox1.Color := StringToColor(Registry.ReadString('bgcolor'));
end
Registry.Free;
end;
Endvidere bør du altid med kode der kan fejle, smide det ind i en try..exception..finally
udover det free'er du ikke din TRegistry på Form2.
procedure TForm2.FormCreate(Sender: TObject);
var
Registry: TRegistry;
begin
Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_CURRENT_USER;
If Registry.OpenKey('Scorpe/LFLV',True) then
begin
Registry.WriteString('bgcolor',ColorToString(ColorListBox1.Selected));
Registry.Free;
end;
end;
Du free'er kun hvis din key findes
procedure TForm2.FormCreate(Sender: TObject);
var
Registry: TRegistry;
begin
Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_CURRENT_USER;
If Registry.OpenKey('Scorpe/LFLV',True) then
begin
Registry.WriteString('bgcolor',ColorToString(ColorListBox1.Selected));
end;
Registry.Free;
end;
Indlæg senest redigeret d. 02.05.2007 19:33 af Bruger #1330