[Erledigt] Objektlisten erstellen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

Re: Objektlisten erstellen

Beitragvon MacWomble » 13. Jan 2019, 23:28 Re: Objektlisten erstellen

Kann das so stimmen?
Code: Alles auswählen
  { TArtikelgruppenListe }
 
  TArtikelgruppenListe = class(specialize TFPGObjectList<TArtikelgruppe>)
  public
    function Add(Obj: TArtikelgruppe): integer;// override;
    procedure ReadAllData;
    procedure ReadListData(Query: string);
  end;
 
implementation
 
{ TArtikelgruppenListe }
 
function TArtikelgruppenListe.Add(Obj: TArtikelgruppe): integer;
begin
  inherited Add(Obj);
end;
 
procedure TArtikelgruppenListe.ReadAllData;
begin
  ReadListData('Select * from ArtikelGruppen');
end;
 
procedure TArtikelgruppenListe.ReadListData(Query: string);
var
  TempObj: TArtikelGruppe;
begin
  debugln('TArtikelgruppenListe.ReadListData:');
  debugln('  ' + Query);
  with dtmBasis.qrySQL do
  begin
    try
      SQL.Text := Query;
      Open;
      if RecordCount >= 0 then
      begin
        First;
        while not EOF do
        begin
          TempObj := TArtikelgruppe.Create;
 
          TempObj.ID := FieldByName('idartikelgruppe').AsInteger;
          TempObj.IDColor := FieldByName('fk_color').AsInteger;
          TempObj.Artikelgruppe := FieldByName('artikelgruppe').AsString;
 
          // wie adde ich das Objekt hier?
          Self.Add(TempObj);
 
          TempObj.Free;
          Next;
        end;
      end;
      Close;
    except
      On E: Exception do
        debugln(' ' + E.Message)
    end;
  end;
end;         
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
Lazarusforum e. V.
 
Beiträge: 795
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19.1 Cinnamon / CodeTyphon LAB Version 6.90 / FP 3.3.1 Rev 42237 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon pluto » 13. Jan 2019, 23:32 Re: Objektlisten erstellen

// wie adde ich das Objekt hier?
Self.Add(TempObj);

genauso habe ich es verstanden.
Du solltest vielleicht nicht am ende TempObj frei geben, da vielleicht auch das Objekt in der Liste frei geben ist... Da bin ich mir gerade nicht sicher.
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7007
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon MacWomble » 13. Jan 2019, 23:44 Re: Objektlisten erstellen

Danke!
Dann bin ich jetzt dank eurer Hilfe wieder einen großen Schritt weiter und habe das nun auch verstanden (hoffentlich :oops: )

Ich muss schon anmerken, dass mir die Klassenbastelei so langsam richtig Spaß macht.
Vor allem habe ich schon gemerkt, dass ich durch Objekte zahlreiche Vereinfachungen erhalte. So ist z.B. das Fortführen eines Angebots zu einem Lieferschein ein Klacks, weil ich nur das Objekt Angebot in Lieferschein ummünzen und dieses dann als neuen Satz speichern muss. Das Objekt Angebot ist dann zwar nicht mehr im Speicher, aber noch immer in der Datenbank. Das ergibt genau drei DB-Zugriffe (Auftragskopf und Positionen und das Schreiben des Status des Angebots). Im Moment sind es wesentlich mehr ... und ähnliche Fälle habe ich zahlreiche. Auch die Eingabeformulare für die Daten sind wesentlich einfacher, aber können mehr. :shock: :D

Für heute mache ich Schluss und gehe morgen wieder ans Werk. Dann wird sich zeigen, ob die Liste funktioniert.

Nochmals einen Dank an Euch und eine Gute Nacht!
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
Lazarusforum e. V.
 
Beiträge: 795
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19.1 Cinnamon / CodeTyphon LAB Version 6.90 / FP 3.3.1 Rev 42237 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon pluto » 13. Jan 2019, 23:51 Re: Objektlisten erstellen

Vor allem habe ich schon gemerkt, dass ich durch Objekte zahlreiche Vereinfachungen erhalte. So ist z.B. das Fortführen eines Angebots zu einem Lieferschein ein Klacks, weil ich nur das Objekt Angebot in Lieferschein ummünzen und dieses dann als neuen Satz speichern muss.

Das ist der Sinn von OOP gewesen... Moderen Sprachen haben OOP in zwischen rausgeschmissenen.... es ein gescheitertes Konzept.... Aber darüber können wir in einem anderen Thread sprechen.
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7007
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon MacWomble » 14. Jan 2019, 08:34 Re: Objektlisten erstellen

Zunächst mal: Das funktioniert nun so weit wunderbar! - Nochmals Danke :)

Falls jemand das ganze nachvollziehen möchte, hänge ich die Unit uartikelgruppe.pas hier an.

Da diese Fragen nun beantwortet sind, setze ich diesen Thread nun auf erledigt, der nächste kommt bestimmt :twisted:

Ich denke, eine gesunde Mischung zwischen funktionaler und objektorientierter Programmierung ist in den meisten Fällen sinnvoll.
Ich sehe das so, dass meine Daten aus der Datenbank als Objekte absolut Sinn machen. Aber da findet man auch zahlreiche Artikel im Netz, welche dieses Thema behandeln.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von MacWomble am 14. Jan 2019, 09:16, insgesamt 1-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
Lazarusforum e. V.
 
Beiträge: 795
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19.1 Cinnamon / CodeTyphon LAB Version 6.90 / FP 3.3.1 Rev 42237 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon MacWomble » 14. Jan 2019, 09:15 Re: [Erledigt] Objektlisten erstellen

@Pluto
Mir ist eben noch aufgefallen, dass da nco eine kleine Unstimmigkeit in deinem Beispiel steckt:
Code: Alles auswählen
...
Dir_Items:=TObjectList.Create(false);
 
  if MariaDB.Query.RecordCount >= 0 then begin // > 0 ! Wenn gleich 0 muss er ja da nicht rein!
    MariaDB.Query.First;
    while not MariaDB.Query.Eof do begin // not Query.Eof
...
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
Lazarusforum e. V.
 
Beiträge: 795
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19.1 Cinnamon / CodeTyphon LAB Version 6.90 / FP 3.3.1 Rev 42237 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon m.fuchs » 14. Jan 2019, 11:14 Re: Objektlisten erstellen

pluto hat geschrieben:Das ist der Sinn von OOP gewesen... Moderen Sprachen haben OOP in zwischen rausgeschmissenen.... es ein gescheitertes Konzept.... Aber darüber können wir in einem anderen Thread sprechen.

Steile These, das solltest du dann wirklich mal in einem neuen Thread erläutern.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
Lazarusforum e. V.
 
Beiträge: 2067
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (Lazarus 2.0, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon theo » 14. Jan 2019, 11:38 Re: Objektlisten erstellen

m.fuchs hat geschrieben:
pluto hat geschrieben:Das ist der Sinn von OOP gewesen... Moderen Sprachen haben OOP in zwischen rausgeschmissenen.... es ein gescheitertes Konzept.... Aber darüber können wir in einem anderen Thread sprechen.

Steile These, das solltest du dann wirklich mal in einem neuen Thread erläutern.

Ja, da würde ich auch gerne mehr darüber wissen.
@Pluto: Ich hoffe deine Informationen sind in diesem Bereich etwas zuverlässiger, als bei deiner kernigen Behauptung neulich: "FFMEG gilt als veraltet"
theo
 
Beiträge: 8167
Registriert: 11. Sep 2006, 18:01

Beitragvon pluto » 14. Jan 2019, 12:30 Re: [Erledigt] Objektlisten erstellen

@Pluto: Ich hoffe deine Informationen sind in diesem Bereich etwas zuverlässiger, als bei deiner kernigen Behauptung neulich: "FFMEG gilt als veraltet"

Heißt es.... der Nachfolger ist nun mal avconv
Zum Beispiel steht es hier im heise Artikel drin:
https://www.heise.de/newsticker/meldung ... 08078.html
Im Wikipedia steht es auch drin:
https://de.wikipedia.org/wiki/FFmpeg

Vielleicht ist ffMpeg nicht veraltet, aber es sollte nicht mehr verwendet werden.
Ob FFMPEG überhaupt noch Aktiv weiter Entwickelt wird weiß ich nicht.... Das ist auch sowas wieder wie mySQl und MariaDB...

Wegen dem OOP Konzept was als gescheitert gilt, werde ich mal im Internet suchen, ob ich da was finde.... Einer im Verein hat das gesagt, jemand dem ich das auch glaube.... ich glaube nicht alles was ich höhere oder lese....
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7007
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon MacWomble » 14. Jan 2019, 12:55 Re: [Erledigt] Objektlisten erstellen

ffmpeg ist nicht veraltet, sondern nennt sich jetzt libAV :twisted:
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
Lazarusforum e. V.
 
Beiträge: 795
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19.1 Cinnamon / CodeTyphon LAB Version 6.90 / FP 3.3.1 Rev 42237 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon pluto » 14. Jan 2019, 13:07 Re: [Erledigt] Objektlisten erstellen

ffmpeg ist nicht veraltet, sondern nennt sich jetzt libAV

Problem ist halt, es gibt beides... es gibt immer noch ffmpeg, ich weiß nicht welche Version und es gibt libAV... im Internet ist libAV kaum verbreitet....
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7007
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon theo » 14. Jan 2019, 13:57 Re: [Erledigt] Objektlisten erstellen

Hier steht doch alles: https://de.wikipedia.org/wiki/FFmpeg#Libav

Warum muss man immer solchen Käse in die Welt setzen? Es hat ja noch nicht mal jemand danach gefragt.
theo
 
Beiträge: 8167
Registriert: 11. Sep 2006, 18:01

Beitragvon pluto » 14. Jan 2019, 14:00 Re: [Erledigt] Objektlisten erstellen

Warum muss man immer solchen Käse in die Welt setzen? Es hat ja noch nicht mal jemand danach gefragt.

Gefragt wurde schon hier:
@Pluto: Ich hoffe deine Informationen sind in diesem Bereich etwas zuverlässiger, als bei deiner kernigen Behauptung neulich: "FFMEG gilt als veraltet"

Damit bestätigt sich ja meine Aussage:
Die beiden Linux-Distributionen Debian und Ubuntu lieferten von da an standardmäßig Libav aus. Gleichzeitig wurde die Ausgabe des Programms ffmpeg unter Debian und Ubuntu mit dem Hinweis ergänzt, dass FFmpeg nicht mehr weiterentwickelt wird.

Zitat von Wikipedia

Ich finde, viele Leute wissen das scheinbar gar nicht, auch wenn wir jetzt zwei Thread vermischen...
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7007
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon theo » 14. Jan 2019, 14:05 Re: [Erledigt] Objektlisten erstellen

Und den Rest hast du auch gelesen?
Nachdem Anwender sich beschwert hatten, dass das nicht der Wahrheit entspricht, weil FFmpeg nach wie vor weiterentwickelt wird, wurde nun behauptet, ffmpeg sei überholt (deprecated) und es solle stattdessen avconv verwendet werden.[7] Debian nahm daraufhin das FFmpeg-Paket wieder in seinen Quellen auf und bietet somit beide Bibliotheken an.[8]

Im Juli 2015 gab das Debian-Projekt bekannt, wieder zur ursprünglichen FFmpeg-Version zurück zu wechseln.[9] Als Gründe wurden vor allem die höhere Sicherheit, ein deutlich kürzerer Wartungszyklus sowie die deutlich höhere Anzahl an Code-Beiträgen (englisch „code contributions“) und Verantwortlichen (englisch „maintainer“) angegeben.[10] Ubuntu folgte entsprechend, nahm mit Version 15.04 "Vivid" ffmpeg wieder in die Quellen auf und entfernte mit Version 15.10 "Wily" die Pakete des Libav-Projekts aus den Quellen.

Kurz nach der Ankündigung des Debian-Projektes, wieder zu FFmpeg zu wechseln, trat Michael Niedermayer als Leiter von FFmpeg zurück und begründete dies unter anderem mit der Hoffnung, damit ein erneutes Zusammenwachsen der beiden Projekte zu ermöglichen.[11]


Und nein, niemand hat das gefragt.
theo
 
Beiträge: 8167
Registriert: 11. Sep 2006, 18:01

Beitragvon af0815 » 14. Jan 2019, 16:47 Re: [Erledigt] Objektlisten erstellen

Wenn das mit den Objektlisten und Datenbanken weitergesponnen wird, so ist man irgendwann mal bei tiOPF oder mormot :-) Vor allen wenn man nach einer allgemeineren unabhängigen Lösung sucht. :mrgreen:
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3693
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

» Weitere Beiträge siehe nächste Seite »
VorherigeNächste

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste

porpoises-institution
accuracy-worried