AGB  ·  Datenschutz  ·  Impressum  







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

Die Sache mit dem Listenproperty

Ein Thema von Delbor · begonnen am 1. Mär 2017 · letzter Beitrag vom 4. Mär 2017
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Die Sache mit dem Listenproperty

  Alt 1. Mär 2017, 20:22
Hi Lemmy
Stimmt. Ich hab das aus einem Beispiel - ziemlich gedankenlos - übernommen. Andrerseits sollte es keinen Schaden anrichten.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#2

AW: Die Sache mit dem Listenproperty

  Alt 1. Mär 2017, 20:35
Wo wird die Instanz von FContentmastertables erzeugt?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Die Sache mit dem Listenproperty

  Alt 1. Mär 2017, 20:43
Hi Uwe Raabe

Erzeugt wird das Feld im Daamodul.Create und im DataModuleDestroy wieder freigegeben. Das Feld selbst ist nicht das Problem, auch die Daten vom Query werden korrekt übergeben.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#4

AW: Die Sache mit dem Listenproperty

  Alt 1. Mär 2017, 20:56
Andrerseits sollte es keinen Schaden anrichten.
Ähm - doch! Da Result an der Stelle nicht definiert ist, kann alles Mögliche drin stehen (auch nil). In jedem Fall ist der Aufruf Result.Clear zu entfernen. Schau mal, ob es dann funktioniert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Die Sache mit dem Listenproperty

  Alt 1. Mär 2017, 21:28
Hi Uwe Raabe

Ups!! Genau das wars! Vielen Dank!

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Die Sache mit dem Listenproperty

  Alt 2. Mär 2017, 12:36
Da würde ich gleich Nägel mit Köpfen machen:
Delphi-Quellcode:
procedure TFDMySQLDml.GetContentmasterTables(var Liste:TStringlist);
   var SqlString : String; I: integer;
begin
   SqlString := 'SHOW TABLES';
   FDQueryMain.Open(SqlString);
   //FDQueryMain.First; {---- ist nicht notwendig}
   while not FDQueryMain.Eof do
   begin
     FContentmastertables.Add(FDQueryMain.Fields.Fields[0].AsString);
     FDQueryMain.Next;
   end;
   Liste.Clear;
   Liste:= (FContentmastertables); {---- was ist FContentmastertables ????} 
  end;
eine Stringliste als Ergebnis einer Funktion ist nicht so der Bringer.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.420 Beiträge
 
Delphi 12 Athens
 
#7

AW: Die Sache mit dem Listenproperty

  Alt 2. Mär 2017, 12:47
Mal grundsätzlich ist das so kein guter Ansatz:
  • Wenn mehrere Threads gleichzeitig auf die Eigenschaft zugreifen, wirst Du sehr seltsame Ergebnisse bekommen
  • Ändert sich das Ergebnis so rasant, dass es Sinn mach mit jedem Zugriff alles neu zu ermitteln
  • Macht evtl. eine lokale StringListe mehr Sinn/bzw als Rückgabetyp ein Array?
  • ...
......
Lizbeth W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Die Sache mit dem Listenproperty

  Alt 2. Mär 2017, 13:59
Ich würde vermutlich Lazy Initialization benutzen: ein privates Feld vom Typ TStrings oder gleich TStringList. Stellt der Getter nun beim ersten Aufruf fest, dass das Feld noch nil ist, erzeugt er die Liste und befüllt sie. Zum Schluss gibt er dann einfach das Feld zurück, was dann in jedem Fall eine gültige Instanz enthalten sollte. Jeder weitere Getter-Aufruf geht dann schneller, weil die Instanz ja schon vorhanden ist.
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
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.912 Beiträge
 
Delphi 12 Athens
 
#9

AW: Die Sache mit dem Listenproperty

  Alt 2. Mär 2017, 18:11
Hmm, das finde ich nicht so gut. Damit gibst Du ja die Möglichkeit, dass ein privater Classmember von außen vernichtet werden kann.

Getreu dem Motto, dass jeder seinen eigenen Müll wegräumen soll, erwarte ich dann eine entsprechende Instanz eines TStrings-Nachfahren von außen.
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  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 19:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz