Autor Beitrag
Leathl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: Sa 11.01.03 17:42 
---


Zuletzt bearbeitet von Leathl am So 16.08.09 12:36, insgesamt 2-mal bearbeitet
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Sa 11.01.03 18:06 
nimm doch einfsach 'ne INI-Datei.
Dafür gibt's in Delphi schon funktionen für. Wenn du dann nicht willst, daß hinter der Datei .ini steht und somit jeder erfahrene Windowsanwender gleich weiß, wie die Datei aufgebaut ist, kannst du die Dateiendung ja immer noch ändern (in tcl meinetwegen). Aber vom Aufbau her ist sie trotzdem eine INI-Datei, die recht einfach gestrickt sind (clever, was?).

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
Leathl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: Sa 11.01.03 18:49 
---


Zuletzt bearbeitet von Leathl am So 16.08.09 12:36, insgesamt 1-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 11.01.03 19:26 
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Sa 11.01.03 19:52 
Hallo,
Leathl hat folgendes geschrieben:
ich weiss, dass es wie eine inidatei ist, aber ich wollte eigentlich keine inidatei ;)

dann kannst du auch z.B. mit Typisierten Dateien arbeiten. Ein Topic zu dem Thema findest du hier.

Gruß
Klabauterann
Leathl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: Sa 11.01.03 19:57 
---


Zuletzt bearbeitet von Leathl am So 16.08.09 12:37, insgesamt 1-mal bearbeitet
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Sa 11.01.03 20:04 
warum so umständlich?
Mach's doch genau umgekehrt:
INI-Dateien haben Sections und Werte.
Als Sections nimmst du die Sparten, als Werte die Einträge darin. Also so:
[Sparte1]
count=5
1=a
2=b
3=c
4=d
5=e
[Sparte2]
count=2
1=f
2=g

Count gibt also an, wieviele einträge da sind (wäre sonst schwieriger mit INI-Dateien...) und du hast für jede der Sparten eine Section.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
Leathl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: So 12.01.03 00:01 
---


Zuletzt bearbeitet von Leathl am So 16.08.09 12:37, insgesamt 1-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 12.01.03 03:51 
Also weißt du doch nicht, wie Ini-dateien funktionieren oder wie? Denn wenn du es wüßtest, sollte das ganze kein Problem sein. Kuck dir einfach noch mal das Tutorial an.
Leathl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: So 12.01.03 15:00 
---


Zuletzt bearbeitet von Leathl am So 16.08.09 12:37, insgesamt 1-mal bearbeitet
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: So 12.01.03 19:28 
Hi,

Zugriff auf die Spaltenüberschriften bekommst Du so:
ausblenden Quelltext
1:
ListView1.Column [0].Caption := 'Erste Spalte';					


Zugriff auf die Items:
ausblenden Quelltext
1:
ListView1.Items [0].Caption := 'Erster Eintrag';					


Schau Dir mal in der Hilfe unter den Eigenschaften Items die Beispiele an!

Gruß
TINO
Leathl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: So 12.01.03 20:48 
---


Zuletzt bearbeitet von Leathl am So 16.08.09 12:38, insgesamt 1-mal bearbeitet
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 13.01.03 08:33 
Hallo Leathl,

fangen wir mal am Anfang an:
ausblenden Quelltext
1:
for i:= 1 to ListView1.Items-1 do					

Du greifst hier direkt auf die Eigenschaft Items zu. Das hat wenig sinn da Du lieber auf die Eigenschaft Count verweisen solltest. Außerdem solltest Du die For-Next-Schleife bei 0 beginnen lassen:
ausblenden Quelltext
1:
for i := 0 to ListView1.Items -1 Do					

Da Du nach dieser Zeile kein Begin geschrieben hast wird nur die darauf folgende Zeile in der For-Next-Schleife ausgeführt. Also: setz ein Begin und ein End ein:
ausblenden Quelltext
1:
2:
3:
4:
for i := 0 to ListView1.Items -1 Do
  Begin
    { ... }
  End;

Warum erstellst Du das Ini-Objekt bei jedem durchlauf der Schleife? Macht glaube ich auch wenig sinn. Deshalb pack es vor dem Begin der Schleife:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Var
  i: Integer;
  Ini: tIniFile;
Begin
  Ini := tIniFile.Create ('tlc.ini');

  For i := 0 To ListView1.Items -1 Do
    Begin
      { ... }
    End;

  Ini.Free;
End;

In der For-Next-Schleife müssen jetzt nach ein ander die Items (also die Einträge in der ListView) gespeichert werden. Die Caption der Einträge bekommst Du so:
ausblenden Quelltext
1:
ListView1.Items [I].Caption					

Da deine ListView ja anscheinend 4 Spalten besitzt musst Du noch die SubItems speichern. An diese kommst Du zum Beispiel so:
ausblenden Quelltext
1:
ListView1.Items [I].SubItems [0]					

Da ich aus Deinem Code-Beispiel nicht schlau geworden bin wie Du die Einträge genau abgespeichern willst kann ich Dir auch nicht genau sagen wie der Code innerhalb der For-Next-Schleife aussieht. Aber mit den o. g. Hinweisen solltest Du schon mal vorankommen. Wenn nicht dann poste einfach!

Gruß
TINO
Leathl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: Mo 13.01.03 14:54 
---


Zuletzt bearbeitet von Leathl am So 16.08.09 12:39, insgesamt 1-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 13.01.03 15:53 
Mit ParamStr(0) bekommst du dein Programmpfad inklusive Anwendungsnamen.
Leathl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: Mo 13.01.03 20:30 
---


Zuletzt bearbeitet von Leathl am So 16.08.09 12:39, insgesamt 1-mal bearbeitet
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Di 14.01.03 09:30 
Hi,

was ich an Deinem Code nicht verstehe sind
  1. Warum schreibst Du die folgenden Anweisungen in die For-Next-Schleife?
    ausblenden Quelltext
    1:
    2:
    3:
    4:
    5:
    ini.WriteString('Daten','Lehrer/in',Edit1.Text); 
    ini.WriteString('Daten','LTel',Edit2.Text); 
    ini.WriteString('Daten','Schule',Edit3.Text); 
    ini.WriteString('Daten','Klasse/Stufe',Edit4.Text); 
    ini.WriteString('Daten','Jahrgang',Edit5.Text);

  2. Warum seht die Anweisung
    Ini.Free
    Innerhalb der For-Next-Schleife?


Gruß
TINO
Leathl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: Di 14.01.03 16:02 
---


Zuletzt bearbeitet von Leathl am So 16.08.09 12:40, insgesamt 1-mal bearbeitet
Leathl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: Mi 15.01.03 14:19 
---


Zuletzt bearbeitet von Leathl am So 16.08.09 12:40, insgesamt 1-mal bearbeitet
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 15.01.03 14:31 
Hallo,

ich würde Dir erstmal vorschlagen Deinen Quelltext ordentlich zu formatieren.

Bist Du sicher das Deine IF-Anweisung
ausblenden Quelltext
1:
2:
3:
4:
if OpenDialog1.Execute then
ListView1.Clear;
OpenDialog1.DefaultExt:= 'ini';
{...}

korrekt ist? Fehlt da nicht ein Begin und ein End? Also so:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
if OpenDialog1.Execute then
  Begin
    ListView1.Clear;
    OpenDialog1.DefaultExt:= 'ini';
    {...}
  End;

Gruß
TINO