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
 
Delbor

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

Die Sache mit dem Listenproperty

  Alt 1. Mär 2017, 19:28
Delphi-Version: 5
Hi zusammen

Da man Pferde ja bekanntlich vom Kopf her aufzäumt, fang ich gleich mal damit an. Meinem Datenmodul habe ich ein Feld mit zugehörigem Setter, Getter und Property verpasst. In private:
FContentmastertables: TStringlist; und
function GetContentmasterTables: TStringlist; sowie schliesslich public:
property Contentmastertables: TStringlist read GetContentmasterTables; Bei Programmstart greife ich ein erstes mal darauf zu:
Delphi-Quellcode:
procedure TServerInfoFrame.CatalogInformation;
  var i, j: Integer; Catalog: string;
      LIndent : String; CatNames: TStringlist;
begin
  CatNames := TStringList.Create;
  try
  ...
  finally
    CatNames.Free;
  end;
  LIndent := ' - ';
  for i := 0 to LBxCatalogNames.Items.Count - 1 do
  begin
...
    Catalog := LBxCatalogNames.Items[i];
// CM_First.ProcedureReport.Add(LIndent + 'Catalog := '+ Catalog);
    if Catalog = 'contentmasterdatathen
    begin
      Memo1.Lines.Add('*************');
      Memo1.Lines.Add(Catalog);
      Memo1.Lines.Add('------------');
      Memo1.Lines.AddStrings(FDMySQLDml.Contentmastertables); // Löst offenbar die AV aus. Der GRund: Keine Rückgabe
      ...
Dies löst den Getter aus:

Delphi-Quellcode:
function TFDMySQLDml.GetContentmasterTables: TStringlist;
  var SqlString : String; I: integer;
begin
  SqlString := 'SHOW TABLES';
  FDQueryMain.Open(SqlString);
  FDQueryMain.First;
  while not FDQueryMain.Eof do
  begin
    FContentmastertables.Add(FDQueryMain.Fields.Fields[0].AsString);
    FDQueryMain.Next;
  end;
  Result.Clear;
  Result := (FContentmastertables);
 end;
Spätestens bei der Übrgabe an Result krachts...

Ich habe jetzt mindestens einen Tag hinter mir. Dabei habe ich mir unter anderem dies und das.

Ich habe auch schon versucht, mit TStrings zu arbeiten. Aber irgendwie komm ich da nicht ganz klar. So, wie ich das verstanden habe, kann ich zwar eine Variable als TStrings deklarieren, muss dieser dann aber einen TStrings-Nachkommen "mit Hand und Fuss" zuweisen, bevor ich irgendwas befüllen kann.

Da es sich bei der Funktion um einen Getter handelt, kann ich die Methode nicht einfach in eine Prozedur umwandeln.
Was mache ich falsch??

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
 


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 16:18 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