Avatar billede michael-schou Novice
10. februar 2006 - 11:07 Der 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?

IniFil Eks : [Min Sektion]
            Billedets Sti=C:\Temp\Test.jpg
Avatar billede pjotre Novice
10. februar 2006 - 11:26 #1
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;
Avatar billede pjotre Novice
10. februar 2006 - 11:27 #2
Closefile, skal være Closefile(Filen) i begge tilfælde / Pjotre
Avatar billede michael-schou Novice
10. februar 2006 - 11:35 #3
Det virker ok, men problemet er at :

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.
Avatar billede snowball Novice
10. februar 2006 - 11:48 #4
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.


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtDlgs, StdCtrls, Buttons, ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Image1: TImage;
    BitBtn1: TBitBtn;
    OpenPictureDialog1: TOpenPictureDialog;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure LoadIni;
    procedure SaveIni;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

Uses IniFiles;

{$R *.DFM}

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;

end.
Avatar billede pjotre Novice
10. februar 2006 - 11:52 #5
Du kan lave en del kodning for at oprette din fil.
Det letteste er at bruge notepad.exe til dette: Lav en linie og så save-as.
Avatar billede michael-schou Novice
10. februar 2006 - 11:58 #6
Det virker jo perfekt :)
Mange tak brugte det halve af dagen i går på at få det til at virke :)

/Michael
Avatar billede hrc Mester
14. februar 2006 - 22:03 #7
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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Politiets Efterretningstjeneste

Bliv IT-supporter i PET's IT Servicedesk

IT-Universitetet i København

CIO

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Sektionschef til Cyber Security Guidance ved Cyberdivisionen i Forsvaret

Djurslands Bank

IT-udvikler