Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Methodenaufruf nur für Klassenmethoden / Konstruktoren (https://www.delphipraxis.net/190204-methodenaufruf-nur-fuer-klassenmethoden-konstruktoren.html)

Freyr77 12. Sep 2016 08:09

Delphi-Version: 10 Seattle

Methodenaufruf nur für Klassenmethoden / Konstruktoren
 
Moin.

Folgendes Problem - ich nutze eine "class function" aus einer anderen Unit. Die Fehlermeldung ist "Diese Form des Methodenaufrufs ist nur für Klassenmethoden oder Konstruktoren zulässig".

Delphi-Quellcode:
constructor TUpdateLogTool.Create(AOwner: TComponent);
var
 iCounter : integer;
 lSQLData: TSQLTInhalt;
begin
  inherited Create(AOwner);

  TDBSQLDaten.Create;
  lSQLData := TDBSQLDaten.GetSQLData; <---- Fehler


  cmbBoxFrom.Items.Add('6.0.0.0');
  cmbBoxTo.Items.Add('7.0.0.0');

  gridUpdateLog.Cells[PROJ_CHECKBOXES, 0] := '';
  gridUpdateLog.Cells[PROJ_THEME, 0] := 'Thema';
  gridUpdateLog.Cells[PROJ_CONTENT, 0] := 'Inhalt';

  gridUpdateLog.ColWidths[PROJ_CHECKBOXES] := COLWIDTH_CHKBOXES;
  gridUpdateLog.ColWidths[PROJ_THEME] := COLWIDTH_THEME;
  gridUpdateLog.ColWidths[PROJ_CONTENT] := COLWIDTH_CONTENT;

  //gridUpdateLog.Cells[PROJ_THEME, 1] := 'Test-Thema';
  gridUpdateLog.Cells[PROJ_CONTENT, 1] := 'Test-Inhalt';

  for iCounter := 1 to gridUpdateLog.ColCount do

  AddCheckBox(PROJ_CHECKBOXES, 1);

  gridUpdateLog.Options := gridUpdateLog.Options + [goTabs];
  ResizeGrid;
end;

mkinzler 12. Sep 2016 08:14

AW: Methodenaufruf nur für Klassenmethoden / Konstruktoren
 
Es wäre vielleicht interessant, wie das Interface dieser Methode aussieht

Freyr77 12. Sep 2016 08:17

AW: Methodenaufruf nur für Klassenmethoden / Konstruktoren
 
Beim UpdateLogTool so :

Delphi-Quellcode:
 TUpdateLogTool = class(TFrame)
    gridUpdateLog: TStringGrid;
    lblFromVersion: TLabel;
    lblToVersion: TLabel;
    cmbBoxFrom: TComboBox;
    cmbBoxTo: TComboBox;
    btnSave: TButton;

    procedure DrawCheckBoxInGrid(const pColumn, pRow: integer; Rect: TRect);
    procedure gridUpdateLogDrawCell(Sender: TObject; ACol, ARow: integer;
      Rect: TRect; State: TGridDrawState);
    procedure gridUpdateLogTopLeftChanged(Sender: TObject);
    procedure CheckboxMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: integer);
    function AddCheckBox(const pColumn, pRow: integer): TGridCheckbox;
    procedure ResizeGrid;

  private
  { Private-Deklarationen }
  public
    constructor Create(AOwner: TComponent); override;
  end;

TDBSQLDaten so:
Delphi-Quellcode:
type
  TDBSQLDaten= class
  private

  public
  const TableName = 'TTProbleme';

  function GetTProblemeData: TSQLTTProbleme;

  end;
Und die "class function" sieht so aus:

Delphi-Quellcode:
function TDBProbleme.GetTProblemeData: TSQLTTProbleme; / -> GetSQLDaten = GetTProblemeData, hatte das beim kopieren in das Forum umbenannt zum bessern Verständnis
var
lProblemeSQL : TSQLTTProbleme;

begin

  lProblemeSQL := TSQLTTProbleme.Create;

  TRAGSynDBNexusDB.FillAndPrepareRecord(SynDBNexusDBRag.ConnectionProps, lProblemeSQL);//, [], '', []);

  Result := lProblemeSQL;
end;

mkinzler 12. Sep 2016 08:20

AW: Methodenaufruf nur für Klassenmethoden / Konstruktoren
 
Delphi-Quellcode:
class function TDBProbleme.GetTProblemeData: TSQLTTProbleme;
?

Freyr77 12. Sep 2016 08:23

AW: Methodenaufruf nur für Klassenmethoden / Konstruktoren
 
Zitat:

Zitat von mkinzler (Beitrag 1347435)
Delphi-Quellcode:
class function TDBProbleme.GetTProblemeData: TSQLTTProbleme;
?

Was man Montagmorgens nicht alles übersieht... ich danke dir! :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:11 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