AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eingaben im Formular zeitgleich in ListView schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Eingaben im Formular zeitgleich in ListView schreiben

Ein Thema von camepul · begonnen am 22. Aug 2005 · letzter Beitrag vom 23. Aug 2005
Antwort Antwort
camepul

Registriert seit: 19. Aug 2005
3 Beiträge
 
Delphi 2005 Professional
 
#1

Eingaben im Formular zeitgleich in ListView schreiben

  Alt 22. Aug 2005, 17:01
Hallo,

seit Kurzem arbeite ich mit Borland Delphi 2005 und bin in Sachen Delphi blutiger Anfänger.
Jetzt habe ich ein Projekt (na ja, soll es mal werden, wenn alle Funktionen integriert sind) erstellt und die "einfachen" Dinge funktionieren auch (Unterformulare öffnen, Dateien öffnen/speichern etc.).
Nun hab ich einige Probleme, die mich nicht mehr weiterkommen lassen.

1. Werden Daten in die Formulare eingegeben, sollen Sie zeitgleich in einer ListView geschrieben werden.
Die ListView steht auf vsReport und enthält z.B. die Spalten "Nr., Marke, Modell..."
Die Eingaben/Auswahl der verschiedenen Felder/ComboBoxen sollen genau in dieser Reihenfolge in der Listview geschrieben werden (zeitgleich zur Eingabe/Auswahl).
Die erste Spalte der ListView (Nr.) kann nirgends ausgewählt/eingegeben werden und soll in der ListView automatisch je nach Anzahl der Datensätze hochgezählt werden.

2. Wie lege ich eine Datenbank innerhalb des Programms an? D.h., sollte ich das Programm irgendwann mal fertig bringen, möchte ich alles als .exe auf CD-Rom und auf einem anderen Computer installieren. (.exe erstellen mit borland kapier ich auch - wenigstens etwas ).

Ich hab' zwar noch mehr Fragen, auf die ich auch nach tagelanger Suche nix passendes gefunden habe, aber ich bin schon froh, wenn mir hier jetzt mal jemand helfen könnte.

Vielleicht ist es auch ganz simpel, und ich hab' momentan einfach nur ein Brett vorm Kopf?

Danke schon mal!
Petra
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Eingaben im Formular zeitgleich in ListView schreiben

  Alt 22. Aug 2005, 18:27
Hallo Petra,

herzlich willkommen in der Delphi-PRAXiS.

Es wird das Beste sein, wenn wir deine Probleme einzeln angehen. Ich identifiziere dein erstes Problem im Zusammenhang mit der Komponente TListView. Erstelle dir doch einfach ein Testprojekt mit einer Form, darauf eine TListView und Buttons für Add und Delete:

Delphi-Quellcode:
procedure TDemoForm.AddButtonClick(Sender: TObject);
var
  li: TListItem;
begin
  li := ListView.Items.Add;
  li.Caption := IntToStr(ListView.Items.Count);
  li.SubItems.Add('Marke');
  li.SubItems.Add('Modell');
end;

procedure TDemoForm.DeleteButtonClick(Sender: TObject);
begin
  while Assigned(ListView.Selected) do
    ListView.Selected.Free;
end;
Beim Löschen stellst du dann fest, dass deine Nummerierung Lücken erhält. Bevor wir weiter machen, müsste ich wissen, ob das von dir gewollt ist.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Eingaben im Formular zeitgleich in ListView schreiben

  Alt 22. Aug 2005, 18:30
Bitte erstell für jede Frage einen extra Thread. Dann kannst du deine zwiete Frage auch gleich in der richtigen Frage posten, dies hier ist nämluch nicht die Datenbank-Sparte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
camepul

Registriert seit: 19. Aug 2005
3 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Eingaben im Formular zeitgleich in ListView schreiben

  Alt 22. Aug 2005, 18:55
Hallo Marabu,

danke für die schnelle Antwort.
Ich werde das testen und mich dann wieder melden.


@Luckie
Sorry - wird gemacht!
  Mit Zitat antworten Zitat
camepul

Registriert seit: 19. Aug 2005
3 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Eingaben im Formular zeitgleich in ListView schreiben

  Alt 23. Aug 2005, 17:12
Hallo Marabu,

habs' ausprobiert. Also, beim Auswählen gibt's Lücken. Die sind so nicht geplant. Warum gibt's die??

Als Beispiel habe ich mal was drangehängt, wie ich mir das Ganze so vorstelle.(Hoffe, das funktioniert).
Die Nummern sollen in der ListView automatisch aufgezählt werden.
Bei der Auswahl/Eingabe von Marke/Modell soll dies gleich automatisch in der ListView aufgeführt werden.

Gruß Petra
Angehängte Dateien
Dateityp: dfm main_887.dfm (1,2 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Eingaben im Formular zeitgleich in ListView schreiben

  Alt 23. Aug 2005, 18:17
Hallo Petra,

wenn du eine DemoForm anhängst, dann bitte außer .DFM auch .PAS.

Nun zur ListView - es gibt zwei Modi, die du unterscheiden musst. Im Standardmodus (ListView.OwnerData = false) speichert die ListView die angezeigten Daten, im virtuellen Modus (ListView.OwnerData = true) speicherst du die Anzeigedaten in einer eigenen Speicherstruktur oder extern. Du hast wahrscheinlich im Standardmodus getestet.

Wenn du die Nummern in der ersten Spalte lückenlos haben willst, dann dienen sie wohl nur der Zählung. Beim Löschen, wie beim Einfügen oder Verschieben eines Eintrages musst du im Standardmodus relativ viel Aufwand treiben, um die Lücken zu schließen bzw. Doppelnummern zu vermeiden. Im virtuellen Modus ist das viel einfacher, da du in der dann notwendigen Ereignisroutine ListView.OnData() sofort die richtige Nummer zuweisen kannst:

Delphi-Quellcode:
procedure TDemoForm.ListViewData(Sender: TObject; Item: TListItem);
begin
  Item.Caption := IntToStr(Item.Index);
  ...
end;
Du hast von einer Datenbank geschrieben. Wenn die drei Spalten deiner ListView zu einer Datenbanktabelle gehören, dann solltest du diese Tabelle mal beschreiben. Welche Tabellenfelder sind vorgesehen, was ist der Primärschlüssel, etc.

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz