10. februar 2006 - 11:07Der er
6 kommentarer og 1 løsning
Hvordan gemmer jeg dette til en IniFil?
Hejsa :)
Jeg har en Image1, BitBtn1, OpenPictureDialog1 og en Lable1 på min form.
Når jeg trykker på knappen så åbner den OpenPictureDialog1 komponenten og jeg kan nu vælge et billede at sætte ind i min image komponent, min Label1 aflæser stien hvor billedet ligger -
Men hvordan kan jeg gemme Label1.Caption i en inifil?
Gem den i en lille inifil, hvor din exe findes: procedure TForm1.Gemfil(Sender: TObject); var Filen : textfile; begin Assignfile(Filen , 'inifil.ini'); Rewrite(Filen ); writeLN(Filen , 'C:\Temp\Test.jpg'); CloseFile(Kortdata); end; procedure TForm1.Las(Sender: TObject); var Filen : textfile; FilPlacering : string; begin Assignfile(Filen , 'inifil.ini'); Reset(Filen ); ReadLn(Filen , FilPlacering); CloseFile(Kortdata); end;
procedure TForm6.BitBtn1Click(Sender: TObject); begin if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); Label1.Caption := OpenPictureDialog1.FileName;
<<FILEN SKAL OPRETTES HER>> Så Label1.Caption bliver lagt ned i filen. end;
Jeg kan godt få dit eksemple til at virke før If Sætningen, men ikke efter.
Hvorfor ikke gøre brug af TIniFiles når den nu findes. Så sørger den f.eks. selv for at oprette filen hvis den ikke findes i forvejen og man prøver at gemme noget i den.
procedure TForm1.LoadIni; var IniFile: TIniFile; IniPath: String; begin //Find stien til den folder programmet køres fra IniPath := ExtractFilePath(Application.ExeName); //Lav et "IniFile" objekt og angiv hvilken fil der skal læses fra IniFile := TIniFile.Create(IniPath + 'settings.ini'); //Læs værdierne fra ini filen Label1.Caption := IniFile.ReadString('Settings','PicturePath',''); //Frigiv ressourcerne der blev brugt til "IniFile" objektet IniFile.Free; end;
procedure TForm1.SaveIni; var IniFile : TIniFile; IniPath: String; begin //Find stien til den folder programmet køres fra IniPath := ExtractFilePath(Application.ExeName); //Lav et "IniFile" objekt og angiv hvilken fil der skal læses fra IniFile := TIniFile.Create(IniPath + 'settings.ini'); //Skriv værdierne fra ini filen IniFile.WriteString('Settings','PicturePath',Label1.Caption); //Frigiv ressourcerne der blev brugt til "IniFile" objektet IniFile.Free; end;
procedure TForm1.BitBtn1Click(Sender: TObject); begin If OpenPictureDialog1.Execute then begin Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); Label1.Caption := OpenPictureDialog1.FileName; SaveIni; End; end;
procedure TForm1.FormCreate(Sender: TObject); begin LoadIni; end;
Hvorfor bruger du ini-filer? Jeg ved godt, at fordelen er at indstillingerne let flyttes med programmet, men der er jo registreringsdatabasen (Windows' grimme Onomastikon). Ved også godt at nogen siger at Microsoft efterhånden anbefaler, at man ikke gemmer indstillinger der, men så er der jo XML-filer og det er i alt fald noget MS bruger meget af i .NET.
I Delphi2006 kan man generere en fiks og færdig klasse til at styre læsning af og skrivning til XML-filen. Du skal bare have en schema-fil (en .XSD-fil) først. Her kan den gratis version af XMLSpy bruges; (for et stykke tid) kan den i øvrigt selv generere sourcen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.