![]() |
Re: In INI Datei abspeichern
Zitat:
|
Re: In INI Datei abspeichern
Also ich kann nicht verstehen wie man drei Seiten für so
eine kleine INI Geschichte braucht. Das begin nach dem try kannst du dir sparen, weil in try das sozusagen schon eingebaut ist! Jetzt sollte es funktionieren. Und wenn du dir doch ein gutes Buch kaufen willst, dann empfehler ich dir "Delphi für Kids" für 24,99€. PS.: Ich bin auch 13(:sharkylinchen:) und wurde hier nie irgendwie beleidigt, oder sonst irgend was! /EDIT: Das mit déinem Anhang ist doch wohl nicht dein ernst, oder?? |
Re: In INI Datei abspeichern
Bei der kurzen Zeit bei der du hier ja schon Angemeldet bist... na da war bei mir auch alles OK.
Wart´z mal ab das kommt nocht :| ... /Edit: ICh glaube ich lösche mein Profil. Das reicht mir! |
Re: In INI Datei abspeichern
So,
bevor ich mir das noch länger ansehen muss hier mal ein kleiner Auszug aus meiner "Form-Übersetzungs-Klasse":
Delphi-Quellcode:
Was macht der Code?
uses
TypInfo, IniFiles; var apppath: string; function MyGetWideStrProp(Instance: TObject; const PropName: String): WideString; resourcestring SUnknownProperty = 'Eigenschaft %s existiert nicht.'; var PropInfo: PPropInfo; begin PropInfo := GetPropInfo(Instance, PropName); if PropInfo = nil then begin raise EPropertyError.CreateResFmt(@SUnknownProperty, [PropName]); end; result := GetWideStrProp(Instance, PropName); end; procedure MySetWideStrProp(Instance: TObject; const PropName: String; const Value: WideString); resourcestring SUnknownProperty = 'Eigenschaft %s existiert nicht.'; var PropInfo: PPropInfo; begin PropInfo := GetPropInfo(Instance, PropName); if PropInfo = nil then begin raise EPropertyError.CreateResFmt(@SUnknownProperty, [PropName]); end; SetWideStrProp(Instance, PropInfo, Value); end; procedure WriteIni(aForm: TForm; aType: TClass; const aProperty: string = 'Text'); var CurrentCompo: TComponent; ndx: integer; EditValueIni: TIniFile; begin EditValueIni := TIniFile.Create(apppath + 'data.ini'); try for ndx := 0 to Pred(aForm.ComponentCount) do begin CurrentCompo := aForm.Components[ndx]; if (CurrentCompo is aType) then begin EditValueIni.WriteString(CurrentCompo.ClassName, CurrentCompo.Name, MyGetWideStrProp(CurrentCompo, aProperty)); end; end; finally EditValueIni.Free; end; end; procedure ReadIni(aForm: TForm; aType: TClass; const aProperty: string = 'Text'); var CurrentCompo: TComponent; ndx: integer; EditValueIni: TIniFile; newText: string; begin EditValueIni := TIniFile.Create(apppath + 'data.ini'); try for ndx := 0 to Pred(aForm.ComponentCount) do begin CurrentCompo := aForm.Components[ndx]; if (CurrentCompo is aType) then begin newText := EditValueIni.ReadString(CurrentCompo.ClassName, CurrentCompo.Name, ''); MySetWideStrProp(CurrentCompo,aProperty,newText); end; end; finally EditValueIni.Free; end; end; procedure TForm1.FormCreate(Sender: TObject); begin apppath := IncludeTrailingBackslash(ExtractFilePath(ParamStr(0))); ReadIni(self,TEdit,'Text'); end; procedure TForm1.FormDestroy(Sender: TObject); begin WriteIni(self,TEdit,'Text'); end; Ganz einfach, er schreibt alle PropertyValues (Text oder Caption) einer TComponent der Form in eine Ini bzw. liest sie wieder. Wenn man zusätzlich noch
Delphi-Quellcode:
bzw.
ReadIni(self,TLabel,'Caption');
Delphi-Quellcode:
im Create / Destroy verwendet würden auch die Captions der Labels gespeichert und geladen werden.
WriteIni(self,TLabel,'Caption');
@mindforce: Normalerweise hätte ich das jetzt nicht gemacht. Du lernst NICHTS wenn Du einfach nur Code aus dem Forum in dein Projekt kopierst. Ich bitte Dich eindringlich darum dir die Tips welche die User dir geben auch genau zu lesen und zu verstehen versuchen. Und bitte bleibe etwas freundlicher! |
Re: In INI Datei abspeichern
Zitat:
|
Re: In INI Datei abspeichern
Zitat:
Dieses Forum ist sehr hilfsbereit und im Normalfall auch nicht unfreundlich. Aber wenn jemand herkommt und sich bedienen läßt, und dabei auch noch unfreundlich und unverschämt wird, kann man sich sehr wohl mal das Recht rausnehmen und seine Meinung sagen. Und genau das hab ich jetzt mal gemacht. Solltest du deswegen deinen Account löschen wollen, dann ist das deine Entscheidung, aber bevor du es machst, denk erstmal genau darüber nach, wie du dich verhältst. Wie man in den Wald reinruft, so kommt es zurück! Auch mit 13 kann man schon erwachsene Züge zeigen, die vermisse ich bei dir aber völlig! Lies, was man dir schreibt und versuche, damit zu arbeiten! Und wenn du ein Problem hast, dann beschreibe es ausführlich und denke vorher vielleicht auch mal drüber nach. (Die Fehlermeldung vorhin war ja wohl wirklich mehr als aussagekräftig. Hättest du dir die mal angeschaut, hättest du dir den Post auch gleich sparen können) Und wenn du Probleme mit den Grundlagen hast, dann lies doch jetzt mal endlich eines der Anfängertutorials oder kauf dir ein Buch für den Einstieg. Diese Tips scheinst du immer geflissentlich zu übergehen. //Edit: Tippfehler beseitigt |
Re: In INI Datei abspeichern
Ok Sorry.
Morgen wollte ich noch was über dieses Thema sagen. Ich will noch Fehrnsehen. Gruss, Mindforce /Edit: Heute noch mach ich ein cooles bzw. ustiges Speil. SOLANG NICHT JEMAND MEIN SPIEL BELEIDIGT! :zwinker: |
Re: In INI Datei abspeichern
Jetzt melde ich mich mal als Moderator zu Wort.
Bitte bleibt sachlich und beim Thema. Hier geht es nicht darum wie alt, jung, groß oder klein ein Mitglied der DP ist. Auch nicht wie lange er schon dabei ist oder nicht. Wenn ihr darüber diskutieren wollt/müsst macht dies bitte via PN. Ansonsten sehe ich mich leider gezwungen den Thread zu schliessen. |
Re: In INI Datei abspeichern
Hast du's nun hinbekommen oder nicht ? :gruebel:
|
Re: In INI Datei abspeichern
Das ist es ja.
Irgendwie speichert er bei FormClose" den Text nicht im Edit1. Hier mein Quellcode
Delphi-Quellcode:
Vielen Dank für deine Nachfrage PierreB.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, inifiles, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var Ini: TIniFile; begin Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) ); try ini.WriteString('[NAME]', 'Hans', 'Peter'); //String wird geschrieben finally Ini.Free; end end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var ini : TiniFile; //ini variable begin ini := TiniFile.Create(ExtractFilePath(ParamStr(0))+'bin/'+'config.ini'); //ini erstellen try begin Edit1.Text := ini.ReadString('NAME', 'Hans', ''); //String wird ausgelesen und in Edit eingetragen end; finally ini.free; end; end; end. Gruss, Euer Mindforce /Edit: Haha. :lol: Sorry ich habe die Code zusammengewürfelt. :stupid: . Sorry :oops: . Ich gucke mal. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz