AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kundenliste

Ein Thema von EdAdvokat · begonnen am 14. Apr 2017 · letzter Beitrag vom 22. Apr 2017
Antwort Antwort
Seite 1 von 10  1 23     Letzte »    
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Kundenliste

  Alt 14. Apr 2017, 17:55
Datenbank: SQLite-3 • Version: 3 • Zugriff über: ZeosLib
Hallo, Ich taste mich so langsam an Datenbankanwendungen heran und habe nach vorangegangenen Übungen nun eine Erweiterung des Programms Warenverkauf geschrieben. Ich bedanke mich hiermit nochmals für die Hilfe im Forum,vor allem bei Hobbycoder, p80286 und Haentschmann, sowie weiteren usern die mir viele Tipps und Hinweise gegeben haben. Hoffentlich enttäusche ich Euch nicht mit dem jetzigen Versuch. Ich habe eine Objectlist erstellt und will mit deren Hilfe Daten in eine SQLite-3 Tabelle speichern und natürlich auch wieder auslesen.
Das hat soweit erst einmal geklappt. Die Daten wurden erstellt und in einem Listview dargestellt. Auch die Speicherung in die Datenbank klappt soweit ganz gut. Nach dem Neustart des Programms sind die automatisch erstellten Daten wieder vorhanden.
1. Frage: ich habe eine TCustomer.create erstellt. Muss ich das irgendwo auch wieder freigeben? Die Customerlist gebe ich in Destroy frei.
2. Frage: Die Datensätze werden nicht in den gesondert erstellten TEdit-Feldern angezeigt, ausgenommen die 2 am Ende der Tabelle(mit der KDNR 67). Ich kann mir nicht erklären warum und habe keinen Ansatz, um die Ursache zu ergründen. Komischerweise wird in den TEdit's nicht der entsprechende Datensatz des ListView sondern ein ganz anderer Datensatz der Tabelle angezeigt, der tatsächlich auch existiert.
Warum erscheinen die Daten nicht in den Edit-Feldern?
Also vermutlich werden nur die "fehlerhaften Datensätze" (KDNR 67) in den TEdits angezeigt. Was mache ich falsch, oder wie muss ich vorgehen?
Es handelt sich nur um ein Übungsprogramm ohne tiefen Sinn nur für mein Verständnis, um in der Sache weiter zu kommen.
Bin ich damit auf dem richtigen Weg?
Ich wünsche allen Forumnutzern ein frohes Osterfest.
Angehängte Dateien
Dateityp: rar CustomerList.rar (3,98 MB, 18x aufgerufen)
Norbert
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Kundenliste

  Alt 14. Apr 2017, 18:11
Zitat:
Muss ich das irgendwo auch wieder freigeben?
Wenn die Liste der Eigentümer ist, nicht.
Zitat:
Die Customerlist gebe ich in Destroy frei.
Besser Free aufrufen.
Markus Kinzler
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Kundenliste

  Alt 14. Apr 2017, 18:23
Create und Destroy:
Delphi-Quellcode:
procedure TFRMMainCustomer.FormCreate(Sender: TObject);
begin
  CustomerList:=TCustomerList.Create;
  connect;
end;

procedure TFRMMainCustomer.FormDestroy(Sender: TOBject);
begin
  CustomerList.Free;
end;
reicht das so?
Norbert
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#4

AW: Kundenliste

  Alt 14. Apr 2017, 19:42
Sieht in Ordnung aus, sofern Du nicht explizit die OwnsObjects-Eigenschaft der Liste auf false gesetzt hast.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Kundenliste

  Alt 14. Apr 2017, 20:08
ich frag mal ganz naiv: im listview die OwnerData-Eigenschaft im ObjectInspector steht auf false. Bei true sehe ich gar nichts.
Bin ich da an dem richtigen Punkt, oder wäre das eine andere Stellschraube? Was erreiche ich damit?
Norbert
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

AW: Kundenliste

  Alt 14. Apr 2017, 20:50
Das OwnerData einer ListView besagt, ob diese im virtuellen Modus sein soll, der sehr effektiv bei großen Eintragszahlen ist. Ich meinte aber die OwnsObjects-Eigenschaft Deiner Objektliste, die festlegt, ob die enthaltenen Objekte automatisch freigegeben werden sollen, sobald sie aus der Liste entfernt werden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Kundenliste

  Alt 14. Apr 2017, 20:58
Zitat:
Das OwnerData einer ListView besagt, ob diese im virtuellen Modus sein soll, der sehr effektiv bei großen Eintragszahlen ist. Ich meinte aber die OwnsObjects-Eigenschaft Deiner Objektliste, die festlegt, ob die enthaltenen Objekte automatisch freigegeben werden sollen, sobald sie aus der Liste entfernt werden.
Da ich eher ein Greenhorn bin frage ich nochmals naiv, wo finde ich diese Einstellung OwnersObjects-Eigenschaften der Objectlist. Ich habe die Objectlist in einer gesonderten Unit (Daten-Unit gesondert erstellen, wie ich gelernt habe) erstellt und da läßt sich schwerlich was einstellen, oder sehe ich das falsch?
Norbert
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#8

AW: Kundenliste

  Alt 15. Apr 2017, 07:00
Der Konstruktor der TObjectList hat einen Parameter, mit dem das eingestellt wird.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Kundenliste

  Alt 15. Apr 2017, 08:36
Ich habe die objectlist lediglich im Hauptformular mit den Methoden erzeugt/wieder freigegeben:
Zitat:
procedure TFRMMainCustomer.FormCreate(Sender: TObject);
begin
CustomerList:=TCustomerList.Create;
connect;
end;

procedure TFRMMainCustomer.FormDestroy(Sender: TOBject);
begin
CustomerList.Free;
end;
reicht das oder muß man direkt in der Objectlist auch ein constructor create aufrufen?
Erkenntlich habe ich also überhaupt keine Schalter gesetzt. Wie und wo müßte man das tun?
Entschulige, es ist für mich Neuland.
Norbert
  Mit Zitat antworten Zitat
SProske

Registriert seit: 16. Feb 2015
Ort: Halle/S.
116 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#10

AW: Kundenliste

  Alt 15. Apr 2017, 08:43
Beide (sowohl die nicht generische als auch die generische) TObjectList nutzen beim Aufruf .Create den internen Constructor

constructor Create(AOwnsObjects: Boolean = True); overload;
D.h. in diesem Falle wird der Defaultwert gezogen und der ist True. Wenn du also nirgendwo OwnsObjects der Liste setzt, steht es auf True.

In der Starter ist afaik leider kein Sourcecode enthalten, aber die Hilfe sollte das trotzdem ausspucken.
Sebastian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 10  1 23     Letzte »    


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 09:47 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