![]() |
Ausgewählten ( Combobox ) Eintrag als Standart speichern u..
Hallo,
also ich habe auf der ersten Seite meines Programms u.A. eine ComboBox in der verschiedene Benutzer stehen. Jetzt möchte ich, dass wenn ich einmal meinen Benutzername auswähle der so gespeichert wird, damit ich beim nächsten Start des Programms nicht wieder aus der ComboBox auswählen muss sonder das er als "Standart" schon in der ComboBo ausgewählt ist. Hoff ihr könnt mir helfen (mit der Suchfunktion auf der Seite hier habe ich nichts gefunden), vielen Dank schonmal |
Ist eigentlich nicht schwer.
Denkanstoß: * Fang den Event OnChange ab und schreibe bei jedem Change den ausgewählten Wert in eine INI Datei Benutz mal die Suchfunktion ->"ini" da dürftest du alles findes was du brauchst um mit INI Dateien zu arbeiten mfg Robert |
Ich würde diese Speicherung aber nicht in InChange durchführen. Dann würde ja bei jeder Änderung gespeichert. Besser ist wohl am Programmende (OnDestroy)
|
Hallo,
bin noch totaler anfgänger und kömmen mit dem Ini abspeichern so garnicht zurecht :oops: . Unter Suchen konnte ich leider keine Einleitung in das Thema finden aber ein paar Codeschnipsel könnt ihr mir sagen was hier falsch ist ?
Delphi-Quellcode:
procedure TForm4.FormDestroy(Sender: TObject);
var combosave: TIniFile; begin combosave := TIniFile.Create(ExtractFilepath(Application.Exename)+'settings.ini'); try combosave.WriteString('Iconpfad','Status1',ComboBox1.ItemIndex); finally combosave.Free; end; |
Moin Timm,
Du bekommst doch bei WriteString die Fehlermeldung Inkompatible Typen string und integer Da die Methode WriteString heisst... Zwei Möglichkeiten
|
Eine Fehlerbeschreibung oder was nicht wie gewünscht funktioniert wäre hilfreich. Sieht nämlich so ganz gut aus -so auf den ersten Blick.
|
Hi,
ich glaube ihr verseht mich ein bisschen falsch :oops: , also ich habe am Anfang meines Programms eine Combobox (Combobox1) nun möche ich das es irgendwie in einer ini Datei gespeichert wird. Nur ich habe 0 Ahnung wie das gehen soll und in der Suche hier auf der Seite habe ich nur diesen Codeschnipsel gefunden keine kleine Einleitung oder so, daher weiß ich auch nich was ich damit anfangen kann :( . Kann mir bitte jemand ein kleines Beispiel schreiben, indem mein ausgewählter Index der Combobox1 in die ini xy.ini abgespeichert wird wenn das nicht zuviel Arbeit ist ? :angle2: |
Moin Timm,
Dein gezeigter Codeschnipsel weist halt nur einen kleinen Fehler auf. Mit WriteString werden Strings geschrieben. Mit WriteInteger werden Integer geschrieben. ComboBox.ItemIndex ist ein integer. |
Hi,
Ok ich hoffe ich habe is nun verstanden :) Nur wenn ich Starte kommt : Undefinierter Bezeichner "TIniFile" steht aber so wie oben bei mir drin. :oops: |
Du hast auch die Unit IniFiles eingebunden? :roll:
|
Moin Timm,
dazu ein kleiner Exkurs in Sachen "Wo finde ich was, und wie" Komponenten, Funktionen, Konstanten usw. sind, meist sinnvoll, in einzelnen Units zusammengefasst. Nicht alle dieser Units werden automatisch unter uses eingebunden (bei einem leeren Formular wird z.B. die Unit StdCtrls automatisch eingebunden, wenn Du z.B. einen Button auf das Formular packst und kompilierst oder speicherst). Bei allen Kompos, die nicht auf das Formular gelegt werden (z.B. TIniFile), muss man sich ggf. selber darum kümmern, dass die passende Unit zur Verfügung steht. Die zu finden ist meist auch nicht schwierig, denn in der Hilfe steht bei jeder Kompo oder Funktion, in welcher Unit sie deklariert wird. In Deinem Falle hiesse das: Mit dem Cursor auf TIniFile und F1 drücken. Die Hilfe zeigt Dir dann, dass TIniFile in der Unit IniFiles steht. Bei den API Funktionen heisst die Unit meist so, wie die Headerdatei (ohne .h) in der die Funktion deklariert wurde) |
Zitat:
:dancer: :dancer2: :D |
hallo,
einmal muss ich noch nerven :oops: Wie kann ich nun den Wert aus der ini auslesen ? über die Suchfunktion finde ich leider keine Beispiele ;( |
Dann schau Dir mal in der OH für TIniFile die Methoden an, die mit Read beginnen.
|
Zitat:
"OH" ? Sorry kann ich nichts mit anfangen :oops: |
OH = Online-Hilfe
|
Und da steht dann irgendwo ReadString bzw. ReadInteger! :wink:
|
Online Help = Online Hilfe. Da wo du landest, wenn du in der Delphi IDE F1 drückst.
|
Hallo,
die Delphi-Hilfe bringt mich nicht weiter :( . Hat keiner einen kleinen Codeschnipsel für mich ? :roll: |
Zitat:
Delphi-Quellcode:
bzw.
var
GameIni: TIniFile; begin Gameini := TIniFile.Create('fungame.ini'); with GameIni do begin WriteBool('Options', 'Sound', True); WriteInteger('Options', 'Level', 3); WriteBool('Configuration', 'ShowToolBar', True); Free; end; end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MyIniFile: TIniFile; begin MyIniFile := TIniFile.Create('myapp.ini'); Memo1.Clear; MyIniFile.ReadSectionValues('Transfer', Memo1.Lines); if Memo1.Lines.Values['Title1'] <> 'Picture Painter' then MyIniFile.WriteString('Transfer', 'Title1', 'Picture Painter'); MyIniFile.Free; end; procedure TForm1.Button2Click(Sender: TObject); var MyIniFile: TIniFile; begin MyIniFile := TIniFile.Create('myapp.ini'); { wenn der Eintrag vorher nicht da war, wird er jetzt gelöscht } if Memo1.Lines.Values['Title1'] = '' then MyIniFile.DeleteKey('Transfer', 'Title1') { andernfalls alten Wert wiederherstellen } else MyIniFile.WriteString('Transfer', 'Title1', Memo1.Lines.Values['Title1']); MyIniFile.Free; end; |
Hier nen Beispiel was aber nicht getestet ist!
Delphi-Quellcode:
Sowas ähnliches müßte aber bestimmt in der OH zu finden sein, hab gerade nur kein Delphi zur Hand.
procedure TForm4.FormShow(Sender: TObject);
var combosave: TIniFile; begin combosave := TIniFile.Create(ExtractFilePath(ParamStr(0))+'settings.ini'); try ComboBox1.ItemIndex:=combosave.ReadInteger('Iconpfad','Status1',0); finally combosave.Free; end; Gruß |
Hallo,
also in der Delphihilfe habe ich echt nicht gefunden blicke da nicht durch :( . Danke für die Codeschnipsel ich werde mich gleich mal ransetzen und Testen. DANKE schonmal :D |
Zitat:
|
Zitat:
|
Online-Hilfe :)
|
Ich habe eben noch das Glück, mich Schüler bzw. Auszubildener nennen zu dürfen und so sehr Preisgünstig an die SSL-Version zu kommen :D .
|
Hallo.
![]() |
Zitat:
Vielen Danke, genau sowas habe ich gesucht :mrgreen: . Danke ! :wink: |
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:05 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-2025 by Thomas Breitkreuz