procedure GemTilInifilFraEdit; var ini: Tinifile; begin ini:=Tinifile.create('c:\temp.ini'); ini.writestring('Section','Noget',edit1.text); ini.free; end;
Function laesfrainifil:string; var ini: Tinifile; begin ini:=Tinifile.create('c:\temp.ini'); result:=ini.readstring('Section','Noget',''); ini.free; end;
procedure Button1.click(sender: Tobject); begin GemTilInifilFraEdit; //Gemmer til inifilen Edit1.text:=laesfrainifil; //Læser værdien fra inifilen end;
----------------------------------
Dette viser det grundlæggende, istedet for at bruge egne procedurer og funktioner som jeg har gjort i eksemplet her, kan du bare kopiere koden ind under f.eks. eventen for en knap.
Da mit eksempel ovenover ikke er helt komplet og jeg ikke er 100% sikker på at du kan udrede det selv, så har jeg hermed givet dig et komplet eksempel:
Eksemplet viser både hvordan du bruger Inifiler og Registreringsdatabasen til at gemme og loade informationer fra:
du skal selvfølgelig lige selv tilføje 4 knapper og 4 editbokse for at eksemplet virker fuldt ud, for at gøre det nemmer kan du også bare kopiere følgende ind. (dette gøres ved at højreklikke på formen og vælge "view as text")
--------------------------
object Form1: TForm1 Left = 331 Top = 158 Width = 349 Height = 327 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 56 Top = 40 Width = 38 Height = 13 Caption = 'Registry' end object Label2: TLabel Left = 56 Top = 168 Width = 27 Height = 13 Caption = 'Inifiler' end object Edit1: TEdit Left = 56 Top = 64 Width = 121 Height = 21 TabOrder = 0 end object Edit2: TEdit Left = 56 Top = 104 Width = 121 Height = 21 TabOrder = 1 end object Button1: TButton Left = 208 Top = 64 Width = 75 Height = 25 Caption = 'save' TabOrder = 2 OnClick = Button1Click end object Button2: TButton Left = 208 Top = 104 Width = 75 Height = 25 Caption = 'load' TabOrder = 3 OnClick = Button2Click end object Edit3: TEdit Left = 56 Top = 192 Width = 121 Height = 21 TabOrder = 4 end object Edit4: TEdit Left = 56 Top = 224 Width = 121 Height = 21 TabOrder = 5 end object Button3: TButton Left = 208 Top = 192 Width = 75 Height = 25 Caption = 'save' TabOrder = 6 OnClick = Button3Click end object Button4: TButton Left = 208 Top = 224 Width = 75 Height = 25 Caption = 'load' TabOrder = 7 OnClick = Button4Click end end
------------------------
well, nu bliver det vist ikke meget mere detaljeret :)
hvis du har valgt mit eksempel nr.2 så kan det gøres på følgende måde:
Lav en knap der ser sådan ud:
(Denne gemmer positionerne til inifilen, istedet for en knap vil det nok være en fordel at anvende OnClose eventen, sådan at det udføres når programmet lukkes ned)
procedure TForm1.Button4Click(Sender: TObject); begin iniadd('c:\test.ini','placering','Left',inttostr(form1.left)); iniadd('c:\test.ini','placering','Top',inttostr(form1.top)); iniadd('c:\test.ini','placering','Width',inttostr(form1.width)); iniadd('c:\test.ini','placering','Height',inttostr(form1.height)); end;
Når du så skal loade dem igen så kan dette gøres således: (Dette kan også placeres under Onshow eventen, sådan at det udføres når programmet starter op)
Oki tak nu dur det MEEEN jeg har lige et lille spm mere !
Jeg har så også en Checkbox som jeg også vil gemme i min ini fil, og så når den er true skal min MainForm være fsStayOnTop og når den er false skal den så være fsNormal men hvordan gør man det når jeg vil have den til at gemme det i en ini fil ???
Håber du vil svare :o) Du kan da få lidt flere point ;o)
tænk på det lidt anderledes .. du skal jo ikke gemme om formen er fsStayOnTop eller ej. Det som du skal tænke på er en simpel IF sætning .. check først hvilken status din checkbox er således:
If checkbox1.Checked=true then begin //her gemmes en string til Inifilen hvis den er true, kunne se således ud: iniadd('c:\test.ini','Checkbox','Status','true'); end else begin //her gemmes en string til Inifilen hvis den er false, kunne se således ud: iniadd('c:\test.ini','Checkbox','Status','false'); end;
Når du så vil aflæse værdien senere gøres det jo bare omvendt altså:
If iniread('c:\test.ini','Checkbox','Status','true')='true' then begin checkbox1.Checked:=true; end else begin checkbox1.Checked:=false; end;
Så kan du jo selv indsætte fsStayOnTop og fsNormal de rette steder. Som du kan se er det der skal udføres ligegyldigt, det drejer sig bare om at lave nogle IF sætninger og skrive sandt eller falskt eller noget tredje i en inifil, hvad der så skal udføres ud fra det kan jo være ligegyldigt, fremgangsmåden er den samme, jeg håber du forstår, ellers så prøv dig frem :)
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.