![]() |
Combobox in eine Ini einlesen
Sers Delphi-Programmierer,
Nämlich hab ich eine Combobox , wenn ich in der Combobox ein Eintrag auswähle soll der Eintrag in der Ini eingetragen werden.
Code:
bisher hab ich den Code stehen, was müsste ich daran ändern?
if Components[i] is TCombobox then
ini.WriteString('Jahr',(Components[i] as TCombobox).name,((Components[i] as TCombobox).text)); Vielen dank im voraus :thumb: mfg kumar89 |
Re: Combobox in eine Ini einlesen
Ich würde nicht den Text sondern den Inhalt des ausgewählten Eintrags in die Ini schreiben
Delphi-Quellcode:
name := (Components[i] as TCombobox).name;
value := (Components[i] as TCombobox).Items[ (Components[i] as TCombobox).itemIndex]; |
Re: Combobox in eine Ini einlesen
Hallo,
aha, wo steht denn dieser Code ??? Was funktioniert nicht ? Warum diese ganzen TypeCasts ? Wenn schon, dann nur einmal wieder in eine lokale Variable (ComboBoxX). Benutze mal eine lokale Variable zum Auslesen des aktuellen Eintrages.
Delphi-Quellcode:
ItemIndex kann auch -1 sein, dann gibt's bei meinem Code eine Exeption,
var
sSelCBItem: String; begin sSelCBItem:= ComboBox1.Items[ComboBox1.ItemIndex]; Ini.WriteString ... sSelCBItem also vorher prüfen ... Heiko |
Re: Combobox in eine Ini einlesen
Liste der Anhänge anzeigen (Anzahl: 1)
es geht soweit ichs mir vorgestellt hab, blos das 2 zeilen erscheinen die nicht erwünscht sind, ich versteh auch net wieso, warum die 2 zeilen in die ini gespeichert werden.
Mein Quellcode:
Code:
Weiß jemand einen Rat?
if Components[i] is TCombobox then
ini.WriteString('Summen'+(Jahr.Text)+(Monat.Text),(Components[i] as TCombobox).name,((Components[i] as TCombobox).text)); Siehe Anhang mfg Kumar89 |
Re: Combobox in eine Ini einlesen
Und welche Zeilen sind das? Wie sieht Deine Schleife aus? Wir können ja nicht hellsehen.
|
Re: Combobox in eine Ini einlesen
Die Zeilen Jahr und Monat müssten raus mit dem Zahlen in der Ini.
Schleife:
Delphi-Quellcode:
Danke
For i := 0 to ComponentCount - 1 do
begin if (TEdit(Components[i]).Name = 'prodLK') or (TEdit(Components[i]).Name = 'unprodLK') or (TEdit(Components[i]).Name = 'GehaltServ') or (TEdit(Components[i]).Name = 'PersonalNK') or (TEdit(Components[i]).Name = 'Berufsbekl') or (TEdit(Components[i]).Name = 'KostenServ') or (TEdit(Components[i]).Name = 'AnschKostFremd') then ini.WriteString('Daten'+(Jahr.text),(Components[i] as TEdit).name,(Components[i] as TEdit).text) else if Components[i] is TCombobox then ini.WriteString('Summen'+(Jahr.Text)+(Monat.Text),(Components[i] as TCombobox).name,((Components[i] as TCombobox).text)); end; |
Re: Combobox in eine Ini einlesen
Hast Du die Ini mal zwischendurch gelöscht? Vielleicht stammen die Zeilen noch von vorherigen Versuchen.
|
Re: Combobox in eine Ini einlesen
hab mal die ganze Ini gelöscht, aber wird auch immer wieder angezeigt.
|
Re: Combobox in eine Ini einlesen
Ich würde den Namen vorher in eine loakle Variable übernehmen.
Name := TEdit(Components[i]).Name;
Delphi-Quellcode:
if (name = 'prodLK') or (name = ...
|
Re: Combobox in eine Ini einlesen
Welche Comboboxen hast Du denn auf dem Formular? Übrigens finde ich es etwas befremdlich, dass Du das Components-Array durchläufst und die Edits dann doch wieder nach ihren Namen ausfilterst. Übrigens prüfst Du in dem Fall noch nicht einmal, ob es auch Edits sind.
|
Re: Combobox in eine Ini einlesen
Zitat:
Zitat:
|
Re: Combobox in eine Ini einlesen
Zitat:
|
Re: Combobox in eine Ini einlesen
Zitat:
Code:
else if Components[i] is TCombobox then
ini.WriteString('Summen',(Components[i] as TCombobox).name,((Components[i] as TCombobox).text)); end; wenn ichs so schreib, dann fehlt es mir in der Summe, daran kann es, dann nicht liegen. Aber die 2 Zeilen stehen noch mit Jahr und Monat in der Ini. |
Re: Combobox in eine Ini einlesen
Vielleicht erklärst Du mir besser erst einmal, was genau Du in der Ini speichern willst. Ich bin wohl etwas begriffsstutzig :gruebel:
|
Re: Combobox in eine Ini einlesen
In der Ini, soll folgendes erscheinen unter dem Punkt "Summe" soll einmal des Jahr und einmal der Monat angezeigt werden nur die Zahlen die drin stehen.
Z.b. ich wähl in der Combobox Jahr: 2012 aus und in der Combobox Monat 08 aus soll in der Ini gespeichert werden unter dem Punkt Summe 201208. Aber was nicht erscheinen soll sind die 2 Zeilen am Ende mit Jahr und Monat die sind nutzlos für meine Ini. Ich hoffe das man des so versteht. :) |
Re: Combobox in eine Ini einlesen
Ich finde es toll, dass du unseren Ernstgemeinten Ratschläge in den Wind schlägst. :zwinker:
|
Re: Combobox in eine Ini einlesen
Du willst also nur den Sektionsnamen aus den Einträgen der Comboboxen ermitteln?
|
Re: Combobox in eine Ini einlesen
Zitat:
|
Re: Combobox in eine Ini einlesen
Ich weiß nicht, ob das funktioniert, da Du ja eigentlich mindestens ein Schlüssel-Wertepaar eintragen sollst. Und selbst, wenn man dafür Leerstrings nimmt, müsste zumindest das Gleichheitszeichen erscheinen. Mir scheint, Du willst TIniFile zweckentfremden.
|
Re: Combobox in eine Ini einlesen
hmm ok danke trotzdem :-D . eine frage hätte ich noch. wenn ich die ini speichere schaut sie so aus z.b:
[Daten2020] prodlk= unprodlk= gehaltserv= berufsbekl= anschkostfremd= personalnk= kostenserv= [Summen202005] Jahr=2020 Monat=05 Wie kann ich denn die ini anders gliedern indem sie so ausschaut: [Daten2020] [Summen202005] Jahr=2020 Monat=2020 prodlk= unprodlk= gehaltserv= berufsbekl= anschkostfremd= personalnk= kostenserv= Hier mein Quellcode von der ini nochmal:
Delphi-Quellcode:
ich habe auch schon probiert den Code zu tauschen das er erst Daten dann Summe abfragt aber ist nicht zum gewünschten ergebnis gekommen.
var Ini: TIniFile;
i: Integer; begin ini := TIniFile.Create('C:\Versuch.ini'); try // Zum Speichern For i := 0 to ComponentCount - 1 do begin if (TEdit(Components[i]).Name = 'prodLK') or (TEdit(Components[i]).Name = 'unprodLK') or (TEdit(Components[i]).Name = 'GehaltServ') or (TEdit(Components[i]).Name = 'PersonalNK') or (TEdit(Components[i]).Name = 'Berufsbekl') or (TEdit(Components[i]).Name = 'KostenServ') or (TEdit(Components[i]).Name = 'AnschKostFremd') then ini.WriteString('Daten'+(Jahr.text),(Components[i] as TEdit).name,(Components[i] as TEdit).text) else if Components[i] is TCombobox then ini.WriteString('Summen'+(Jahr.Text)+(Monat.Text),(Components[i] as TCombobox).name,((Components[i] as TCombobox).text)); end; finally ini.Free; end; end; Hoffe es kann jemand helfen MFG Kumar89 |
Re: Combobox in eine Ini einlesen
Kann es sein, dass Du die Funktionsweise einer Ini noch nicht verinnerlicht hast? Wenn ich das richtig sehe, wäre ein anderes Format (z.B. XML) wohl besser für Dein Vorhaben geeignet, da kannst Du auch verschachteln.
|
Re: Combobox in eine Ini einlesen
Würde es aber in der inifile gehen oder klappt das überhaupt nicht?
|
Re: Combobox in eine Ini einlesen
Nein, wie Detlef dir schon mehrmals versucht hat zu sagen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 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