| Autor |
Beitrag |
chris_davidi
      
Beiträge: 76
Windows 98 SE
Delphi 3
|
Verfasst: Mo 25.08.03 10:42
Hallo.
Ich weiß, wir hatten es schon oft, aber ich suche es in vereinfachter Form und dies könnte man dann hier in die FAQ stellen. Wäre gut.
Meine Frage.
Ich habe 5 Edit- Felder und ein Button "Speichern". Wie kann ich erreichern, dass das was in die Felder eingetragen wurde in dieser Form in der test.ini gespeichert wird?
Edit1 = "Wert"
Edit2 = "Wert 3"
Edit3... usw.
Das zweite wäre, wie kann ich diese Felder abhohlen, wenn die Form mit den Feldern lädt (also z. B. Form1.OnCreate).
Hoffe mir kann jemand helfen und das man dies dann unter FAQs setzt, kenne nämlich viele, welche genau das selbe vorhaben und nicht draufkommen.
Grüße & lieben Dank.
Chris
|
|
DeCodeGuru
      
Beiträge: 1333
Erhaltene Danke: 1
Arch Linux
Eclipse
|
Verfasst: Mo 25.08.03 11:08
Guck dir mal folgenden Code an (ist nur ein Testcode, den man noch mit Sicherheitsabfragen etc. ausstatten müsste):
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: 26: 27: 28: 29: 30: 31: 32:
| procedure TForm1.Button1Click(Sender: TObject); var MyIni: TIniFile; i: Integer; begin MyIni := TIniFile.Create('C:\Dokumente und Einstellungen\Jakob\Desktop\Test.ini'); try for i := 1 to 5 do MyIni.WriteString('Section_1','Edit' + IntToStr(i),TEdit(FindComponent('Edit' + IntToStr(i))).Text); finally MyIni.Free; end; end;
procedure TForm1.Button2Click(Sender: TObject); var MyIni: TIniFile; i: Integer; begin MyIni := TIniFile.Create('C:\Dokumente und Einstellungen\Jakob\Desktop\Test.ini'); try i := 1; while MyIni.ValueExists('Section_1','Edit' + IntToStr(i)) do begin TEdit(FindComponent('Edit' + IntToStr(i))).Text := MyIni.ReadString('Section_1','Edit' + IntToStr(i),'kA'); Inc(i); end;
finally MyIni.Free; end; end; |
Funktioniert bei mir einwandfrei. Ich habe 2 Buttons und 5 Edits verwendet. Achja, die Edits müssen aber den "Standardnamen" haben.
_________________ Viele Grüße
Jakob
|
|
chris_davidi 
      
Beiträge: 76
Windows 98 SE
Delphi 3
|
Verfasst: Mo 25.08.03 11:17
Danke.  Der Code sieht schonmal sehr gut aus, leider komme ich nicht weiter. Habe es eingebaut, aber es kommt, dass "MyIni: TIniFile;" ein undefinierter Bezeichner ist. Aber es ist doch bei
Quelltext 1: 2: 3:
| var MyIni: TIniFile; i: Integer; |
definiert, oder verstehe ich da etwas falsch?
|
|
derDoc
      
Beiträge: 623
Win Vista Prof
D2007 Prof
|
Verfasst: Mo 25.08.03 11:20
Binde doch mal die Unit IniFiles mit ein.
Delphi-Quelltext
_________________ MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.
|
|
chris_davidi 
      
Beiträge: 76
Windows 98 SE
Delphi 3
|
Verfasst: Mo 25.08.03 11:25
Ok danke, klappt. Nun wird aber dann noch ValueExists als undefinierter Bezeichner ausgegeben. Wie heißt die Unit dafür? Im allgemeinen, wo bekomme ich Informationen über die Untis her?
|
|
derDoc
      
Beiträge: 623
Win Vista Prof
D2007 Prof
|
Verfasst: Mo 25.08.03 11:32
Am einfachsten bekommst du die Units, indem du den undefinierten Bezeichner markierst und dann F1 drückst.
Bei meinem Delphi 6 Pro ist ValueExists auch in der Unit IniFiles definiert. Bei Delphi 3 scheint das aber anders zu sein.
_________________ MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.
|
|
chris_davidi 
      
Beiträge: 76
Windows 98 SE
Delphi 3
|
Verfasst: Mo 25.08.03 11:35
Kann man die Unit von Delphi 6 einfach in Delphi 3 einbinden? Dann wäre doch das Problem gelöst, oder?
|
|
derDoc
      
Beiträge: 623
Win Vista Prof
D2007 Prof
|
Verfasst: Mo 25.08.03 11:53
Ich glaube das geht nicht. Die Unit benötigt auch aus anderen Units Teile und somit wäre das nur schwer möglich.
_________________ MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.
|
|
chris_davidi 
      
Beiträge: 76
Windows 98 SE
Delphi 3
|
Verfasst: Mo 25.08.03 12:03
Ok. Schade.  Hast du sonst einen Tipp, wie ich das Problem lösen kann?
|
|
derDoc
      
Beiträge: 623
Win Vista Prof
D2007 Prof
|
Verfasst: Mo 25.08.03 12:08
Schau mal in deiner Hilfe nach, in welcher Unit TCustomIniFile definiert ist. ValueExists ist eine Methode von dieser Klasse.
_________________ MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.
|
|
chris_davidi 
      
Beiträge: 76
Windows 98 SE
Delphi 3
|
Verfasst: Mo 25.08.03 12:14
In meiner Hilfe gibt es TCustomIniFile gar nicht. Bringt mich also leider auch nicht weiter... *seuftz*
|
|
DeCodeGuru
      
Beiträge: 1333
Erhaltene Danke: 1
Arch Linux
Eclipse
|
Verfasst: Mo 25.08.03 12:34
| Zitat: | | Ich glaube das geht nicht. Die Unit benötigt auch aus anderen Units Teile und somit wäre das nur schwer möglich. |
Welche Teile denn, die es unter Delphi 3 nicht gibt?
@chris: Leite doch TIniFile ab und füge eine entsprechende Funktion hinzu.
Achja, ich weiss ja nicht, wie es rechtlich aussieht, aber ich glaube kaum, dass du eine Unit aus D6Pro einfach so verwenden darfst. 
_________________ Viele Grüße
Jakob
|
|
chris_davidi 
      
Beiträge: 76
Windows 98 SE
Delphi 3
|
Verfasst: Mo 25.08.03 12:35
Öhm... Ableiten? Davon habe ich leiter keine Ahnung, des müsste mir jemand genau erklären, des wär lieb.
|
|
DeCodeGuru
      
Beiträge: 1333
Erhaltene Danke: 1
Arch Linux
Eclipse
|
Verfasst: Mo 25.08.03 12:45
ok, schau dir das mal an (unterhalb der Form-Deklaration einfügen).
Delphi-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: 26:
| type TMyIniFile = class(TIniFile) public function ValueExists(const Section, Ident: string): Boolean; end;
var Form1: TForm1;
implementation
{$R *.DFM}
function TMyIniFile.ValueExists(const Section, Ident: String): Boolean; var S: TStrings; begin S := TStringList.Create; try ReadSection(Section, S); Result := S.IndexOf(Ident) > -1; finally S.Free; end; end; |
Achja, weiss nicht genau, ob das funtzt, da ich das nur in den Codeeditor getippt habe aber nicht getestet habe.
Vorraussetzung dafür ist aber, dass deine TIniFile die Methode ReadSection kennt.
Ansonsten musste du halt weitercoden. 
_________________ Viele Grüße
Jakob
|
|
chris_davidi 
      
Beiträge: 76
Windows 98 SE
Delphi 3
|
Verfasst: Mo 25.08.03 13:18
Danke.
Habe ich nun gemacht. Nun wird folgende Zeile makiert und es kommt "Funktion erwartet Ergebnistyp".
Quelltext 1:
| function TMyIniFile.ValueExists(const Section, Ident: String): Boolean; |
Mit selber Coden komme ich leider nicht weiter, weil ich momentan noch am lernen bin. Wenn ich des eben auch irgendwann mal verstehe. 
|
|