Delphi-PRAXiS
Seite 10 von 10   « Erste     8910   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Kundenliste (https://www.delphipraxis.net/192392-kundenliste.html)

DeddyH 22. Apr 2017 20:24

AW: Kundenliste
 
Und wenn Du nach dem Aufruf von RemoveFromDB das explizite Free einmal weglässt? Standardmäßig gibt die TObjectList das zu löschende Element selbst frei, das geht aber in die Hose, wenn Du das vorher schon tust.

EdAdvokat 22. Apr 2017 20:42

AW: Kundenliste
 
so sieht nun die löschen-Methode aus:
Delphi-Quellcode:
procedure TFRMMainCustomer.btnDeleteClick(Sender: TObject);//löschen (update)
var zqyMain: TZQuery;
begin
   zqyMain:=TZQuery.Create(nil);
   zqyMain.connection:=conMain;

   if lvCustomer.Selected<>nil then
  begin
     CustomerList[lvCustomer.Selected.Index].RemoveFromDB(conMain);

    //Customerlist[LVCustomer.Selected.Index].Free;
    CustomerList.Delete(LVCustomer.Selected.Index);
    LVCustomer.Items.Delete(LVCustomer.Selected.Index);
  end;
end;
ich habe erkenntlich die Freigabe Free herausgenommen und es geht. Ja es geht!!!
Ich habe wirklich Hochachtung vor Euch Fachleuten, doch wie kommt man von der 5Oldi- Kreisklasse wenigstens in die 4.Oldi- Kreisklasse ohne aufdringlich solche Fragen zu stellen?
Ich danke für die Hilfe.

DeddyH 22. Apr 2017 20:48

AW: Kundenliste
 
Außer üben, üben und nochmals üben sowie viel Nachlesen und Nachvollziehen habe ich spontan keinen Vorschlag.

p80286 22. Apr 2017 20:49

AW: Kundenliste
 
Vor dem Aufstieg bleibt die Frage "wofür ist zqYMain gut?"

Gruß
K-H

EdAdvokat 22. Apr 2017 21:04

AW: Kundenliste
 
nimm mir doch bitte nich die Freude darüber, dass es funktioniert. Ich sollte doch der Querry eine connection zuweisen, damit das Löschen funktioniert. Wohl doch der Abstieg in die 6. grand-Oldi-Liga?!:)
war all das doch Quatsch?

p80286 22. Apr 2017 21:08

AW: Kundenliste
 
Hier meine ich:

Delphi-Quellcode:
procedure TFRMMainCustomer.btnDeleteClick(Sender: TObject);//löschen (update)
var zqyMain: TZQuery;
begin
    zqyMain:=TZQuery.Create(nil);
    zqyMain.connection:=conMain;
Zumindest ist ein offensichtlicher Zweck nicht zu erkennen!

Gruß
K-H

Hobbycoder 22. Apr 2017 21:18

AW: Kundenliste
 
Zitat:

Zitat von EdAdvokat (Beitrag 1368680)
Delphi-Quellcode:
procedure TFRMMainCustomer.btnDeleteClick(Sender: TObject);//löschen (update)
var zqyMain: TZQuery;
begin
   zqyMain:=TZQuery.Create(nil);
   zqyMain.connection:=conMain;

   if lvCustomer.Selected<>nil then
  begin
     CustomerList[lvCustomer.Selected.Index].RemoveFromDB(conMain);

    //Customerlist[LVCustomer.Selected.Index].Free;
    CustomerList.Delete(LVCustomer.Selected.Index);
    LVCustomer.Items.Delete(LVCustomer.Selected.Index);
  end;
end;

Hast du eigentlich überhaupt irgendwas von dem verstanden, was du die ganze Zeit in einem Programm machst?
Ich habe so langsam das Gefühl, du meinst, wenn du so halbwegs alles zusammen-kopierst wird das schon irgendwie funktionieren.
Wenn du dir die obige Methode mal anschaust, dann definiert du dort eine zqyMain, die du nie benutzt und auch nie freigibst, und die logischerweise bei jedem Löschen aber neu erzeugt wird. Heißt, nach 10mal Löschen hast du 10 Objecte vom Typ TZQuery, die als Speicherleichen zurück bleiben.

Ich gebe dir nochmals den Rat bei den Basics anzufangen und dir erst mal klar zu machen, was Objekte und wie man damit umgeht. Und vor allem wie der Debugger funktioniert, wie man ihn bedient und wie man sich den Inhalt von Objecten und Variablen anzeigen lassen kann. So schwer ist das nun auch nicht.

Denn, so Sätze wie
Zitat:

Zitat von EdAdvokat (Beitrag 1368678)
Was ist das nun?

zeigen, dass du a) sehr schnell dich auf die Hilfe und Vorlagen der User hier im Forum verläßt und b) du scheinbar nicht wirklich den Debugger benutzt.

Zitat:

Zitat von EdAdvokat (Beitrag 1368678)
Wie und wo soll man all da lernen können, was mit so einem kleinen Programmchen zusammenhängt.

Aus Büchern, dem Internet, Tutorials und sich die Zeit nehmen erst mal einen Teil zu verstehen, bevor man mit dem nächsten anfängt.

Zitat:

Zitat von EdAdvokat (Beitrag 1368678)
Ich habe in meinem bisherigen Leben 2 Studien (auf völlig anderen Gebieten, als der Informatik) sehr erfolgreich absolviert.

Das Wissen für diese Fachbereiche hast du dir sicherlich auch durch viel lesen in entsprechende Fachbüchern angeeignet und dir bestimmt auch die Zeit genommen, jeden Teilbereich zu verstehen, bevor du mit dem nächsten angefangen hast.

Zitat:

Zitat von EdAdvokat (Beitrag 1368678)
Ich könnte noch 10 Bücher über OOP lesen, doch hier an so einer Stelle weiss ich einfach nicht weiter

Selbst wenn du 100 Bücher über OOP gelesen hast, so wirst du trotzdem die Funktionsweisen der speziellen Klassen und Methoden in der Hilfe nachlesen müssen, weil diese nun mal sich nicht automatisch durch das Wissen was OOP ist von selbst erklären.

Also wirst du auch deinen Code mal länger als 10 Minuten anschauen müssen, mal eine Nacht drüber schlafen und dann noch mal schauen, wo dein Fehler liegt.

EdAdvokat 22. Apr 2017 21:41

AW: Kundenliste
 
Ok. Hobbycoder einiges sicher schon. Einiges ist der Situation geschuldet,möglichst zeitnah Antworten zu geben, die dann doch zu unüberlegt waren und einiges kann ich bislang wirklich noch nicht überblicken, weil mir das Wissen noch fehlt. Ok, mein Problem. Ich arbeite daran.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.
Seite 10 von 10   « Erste     8910   

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