![]() |
Ja sicher funktioniert es, aber nur dann wenn Daten im Grid stehen. Kann man das auch irgendwie lösen, auch wenn keine Daten im Grid stehen?
Das ist aber nicht so wichtig. Wichtig wäre Wie kann ich jetzt die Spaltenposition beim öffnen des Formulares aus der INI lesen? |
Hallo m-werk,
was genau meinst du mit Zitat:
Nun zum Lesen der IniDatei:
Code:
Hab ich zwar nicht getestet, aber so ähnlich sollte das wohl aussehen.
var
Ini : TIniFile; i, posi : Integer; reihenfolge : String; begin reihenfolge := ''; try Ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'Einstellungen.ini'); reihenfolge := Ini.ReadString('Grid', 'Reihenfolge', ''); finally Ini.Free; end; try posi := Pos(reihenfolge, ';'); i := 0; while posi > 0 do begin DBGrid1.Fields[i].Index := StrToInt(Copy(reihenfolge, 1, posi-1)); Delete(reihenfolg, 1, posi); posi := Pos(reihenfolge, ';'); Inc(i); end; except on E:exception do ShowMessage('Fehler in der Ini-Datei:'#13 +E.Message); end; end; |
Zitat:
Danke für den Code, ich werde ihn am Wochenende testen. |
Herr im Himmel. :evil:
Nehmt doch endlich mal das TIniFiel.Create aus dem try-Block raus! Lest ihr euch denn nicht die Warnungen durch, die der Kompiler ausgibt? :roll: Wenn ich das so mache wie ihr, steht da immer: Zitat:
Hier noch mal wie es richtig geht:
Code:
[b]procedure[/b] TForm1.Button1Click(Sender: TObject);
[b]var[/b] ini: TiniFile; [b]begin[/b] ini := Tinifile.Create(ChangeFileExt(ParamStr(0), '.ini')); [b]try[/b] ini.WriteString('Programm', 'Pfad', ParamStr(0)); [b]finally[/b] ini.Free; [b]end[/b]; [b]end[/b]; |
Jaja, :oops: is ja schon gut... :mrgreen:
|
Na dann wollen wir mal hoffen, dass das jetzt angekommen ist. Wenn ich das noch mal bei dir sehen, dann schreibst du mir hundertmal:
Zitat:
|
@Luckie: schon mal profilaktisch...
Code:
:shock:
for i := 1 to 100 do
Writeln('TIni.Create kommt nicht in den try-Block. '); |
@m-werk,
ich hab mir das jetzt mal angeschaut, es funktioniert auch mit leeren Tabellen, aber nicht mit GESCHLOSSENEN Tabellen. Das ist ja auch klar, weil dann die Verbindung zur Tabelle nicht besteht. Du musst also sicher stellen, dass die Tabelle geöffnet ist, wenn die Reihenfolge geschrieben werden soll. Auch beim Lesen und zuweisen der Indices muss die Tabelle geöffnet sein. |
Hi, was soll ich den genau tun, damit die Tabelle offen ist?
|
Hallo m-werk,
grundsätzlich natürlich mit MyTable.Open. Irgendwo wird ja die Tabelle geöffnet, entweder schon im Objektinspektor oder irgendwo im Programm. Dann lässt du einfach das Schließen der Tabelle nicht zu. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 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