Avatar billede circadian Nybegynder
25. januar 2010 - 01:06 Der er 9 kommentarer og
1 løsning

Save og load, edit felter

Hej,

Jeg har en større form med rigtig mange edit felter, og der er også nogle memo'er.

Jeg kunne godt tænke mig at lave en feature, der gør det muligt at gemme indholdet af det man nu har indtastet de forskellige steder, og så selvfølgelig også loade det igen næste gang man starter programmet.

Kan ikke rigtig finde noget på nettet om hvordan man gemmer på denne måde.

Jeg har allerede oprettet en saveDialog, så det er koden nedenfor dette jeg efterlyser:

  if saveDialog.Execute then begin

Jeg har sat den til at gemme som .txt.

Kan man ikke gemme tingene fra alle felterne på hver sin linje? Og hvis der ikke står noget i et felt når man gemmer, ja så bliver den pågældende linje bare tom i .txt filen.
Bare en idé, ved ikke om det kan lade sig gøre.
Avatar billede vallemanden Nybegynder
25. januar 2010 - 02:34 #1
der ville jeg nok bruge ini files
Avatar billede vallemanden Nybegynder
25. januar 2010 - 03:11 #2
procedure TForm1.FormCreate(Sender: TObject);
var
Myini : Tinifile;
begin
PathToFile := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)));
  MyINI := TINIFile.Create(PathToFile + 'setings.ini');
  edit1.test := Myini.readString('Main', 'takst1', 'tom');
  edit2.test := Myini.readString('Main', 'tekst2', '');
  myini.Free;
end;

og husk inifiles i din uses
Avatar billede circadian Nybegynder
25. januar 2010 - 13:28 #3
Kan du også skrive hvordan det skal være i min "gem" procedure?

(og går ud fra du mener .text i stedet for .test)
Avatar billede vallemanden Nybegynder
25. januar 2010 - 15:03 #4
ja selvfølgelig, det var jo lidt sent text istedet for test

    MyINI.WriteString('main', 'takst1', Edit1.text);
Avatar billede vallemanden Nybegynder
25. januar 2010 - 15:04 #5
dette forudsætter du har en ini fil (alm. txt fil omdøbt) der hedder setings.ini
og at der et sted står [main]
Avatar billede circadian Nybegynder
25. januar 2010 - 19:19 #6
Jeg kan godt få det til at virke med .ini, men jeg ønsker altså ikke at filnavnet skal være foruddefineret, altså fx 'save.ini'. Den skal hedde det, som man skriver i saveDialog... extension er .txt.
Avatar billede circadian Nybegynder
25. januar 2010 - 20:05 #7
#6 Nevermind, fandt ud af det.

Men har et problem.

Edit1.Text := Myini.readString('main', 'tekst1', '');

fra openDialog...

Selvom man har gemt en tekst i "tekst1" under "main", så loader den jo bare '' ind, dvs. en tom tekst. Hvordan får man den til at loade det, der faktist står efter lighedstegnet i "ini" filen?
Avatar billede vallemanden Nybegynder
25. januar 2010 - 20:24 #8
din fil SKAL se sådan ud

[main]
tekst1=den tekst der skal stå i edit1
tekst2=den tekst der skal stå i edit2
Avatar billede circadian Nybegynder
25. januar 2010 - 20:54 #9
Gør den også.
Avatar billede circadian Nybegynder
25. januar 2010 - 20:59 #10
Sorry det var mig der glemte en lille ting.

Takker.
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