Autor Beitrag
patrick dee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: So 27.04.03 11:38 
hi

eine frage : wie kann man Label 1 bis Label 8 deren caption mit savetofile speichern und wieder laden mit loadfromfile ?

danke für eure hilfe

patrick

_________________
Glauben heißt nichts wissen ...
hansg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

Win XP Professional SP3, Vista Ultimate 32 SP1
Delphi 6 Professional
BeitragVerfasst: So 27.04.03 12:24 
Hallo,
ich würde die Ini Funktion verwenden, in kombination mit Open / Save Dialog.

Speichern
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
  if savedialog1.Execute then
  begin
    ini:=TiniFile.create(SaveDialog1.FileName);
    ini.WriteString('Labels','1',Label1.caption);
    ini.WriteString('Labels','2',Label2.caption);
    ini.free;
  end;


Laden:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
  if Opendialog1.Execute then
  begin
    ini:=TiniFile.create(OpenDialog1.FileName);
    Label1.caption:=ini.ReadString('Labels','1','');
    Label2.caption:=ini.ReadString('Labels','2','');
    ini.free;
  end;

_________________
Gruß Hans
patrick dee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: So 27.04.03 13:30 
supii danke werde ich probieren

ciao

patrick

_________________
Glauben heißt nichts wissen ...
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Mi 07.05.03 11:08 
Was ist aber, wenn ein "schlauer" User beigeht und in der Ini aus dem Schlüssel "1" den Schlüssel "Eins" macht und somit der Schlüssel, der in der Prozedur geöffnet werden soll, nicht existiert. Da muß dann eine kleine Abfrage her. Ich weiß, klingt klugscheißerisch (was für ein deutsches Wort :-) ), aber ich mache meine Programme eigentlich nur so; ich vertraue dem User im Grunde nicht und vermute das schlimmste.. :twisted:

_________________
Hasta La Victoria Siempre
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mi 07.05.03 11:35 
Terra23 hat folgendes geschrieben:
Was ist aber, wenn ein "schlauer" User beigeht und in der Ini aus dem Schlüssel "1" den Schlüssel "Eins" macht und somit der Schlüssel, der in der Prozedur geöffnet werden soll, nicht existiert. Da muß dann eine kleine Abfrage her. Ich weiß, klingt klugscheißerisch (was für ein deutsches Wort :-) ), aber ich mache meine Programme eigentlich nur so; ich vertraue dem User im Grunde nicht und vermute das schlimmste.. :twisted:


Dazu sag ich dann nur: Selber schuld (also der Anwender). Denn wenn der an Systemdateien der Software rumpfuscht, braucht er sich nicht wundern, wenn nachher nix mehr geht. Da gibts dann auch keinen kostenlosen Support mehr.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 07.05.03 14:04 
Bitte noch einen Ressourcen-Schutz-Block drum rumpacken, danke.
Blackout
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 64



BeitragVerfasst: Mi 07.05.03 14:51 
hi patrick dee,
falls es doch mehr als 8 Labels werden sollten kannst du dir mit folgendem Code nen bissl Tipparbeit sparen :D


INI Speichern:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
Procedure SaveLabels;

Var
  INI: TIniFile;
  ALabel: TComponent;
  I: Integer;

Begin

   If Savedialog1.Execute Then
     Begin
       Try 
         INI:= TIniFile.Create(SaveDialog1.FileName);

         For I:= 1 To 8 Do // Label1, Label2, ... bis Label8
           Begin
             ALabel:= FindComponent('Label'+IntToStr(I));
             If Assigned(ALabel) Then INI.WriteString('Labels', IntToStr(I), (ALabel AS TLabel).Caption);
           End;
       Except
         INI.Free;
       End;
     End;

End;



INI Laden:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
Procedure LoadLabels;

Var
  INI: TIniFile;
  ALabel: TComponent;
  I: Integer;

Begin

   If Opendialog1.Execute Then
     Begin
       Try
         INI:= TIniFile.Create(OpenDialog1.FileName);

         For I:= 1 To 8 Do
           Begin
             ALabel:= FindComponent('Label'+IntToStr(I));
             If Assigned(ALabel) Then (ALabel AS TLabel).Caption:= INI.ReadString('Labels', IntToStr(I), '');              
           End;
       Except
         INI.Free;
       End;
     End;

End;


Is doch viel eleganter :wink:

Edit: Hätte doch beinahe die Funktion zum Laden vergessen

_________________
MfG Blackout


Zuletzt bearbeitet von Blackout am Mi 07.05.03 15:39, insgesamt 1-mal bearbeitet
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Mi 07.05.03 15:03 
@UGrohne:

Stimmt, hast du ja eigentlich recht. Ist zwar Schei** für den User, wenn nix mehr geht, aber schon meine Mama sagte zu mir als ich klein war: "Wer nicht hören will, muß fühlen!". :o

_________________
Hasta La Victoria Siempre