Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   LSP: Problem mit der Vervollständigung (https://www.delphipraxis.net/204968-lsp-problem-mit-der-vervollstaendigung.html)

t2000 18. Jul 2020 15:02

LSP: Problem mit der Vervollständigung
 
Ich habe folgendes Problem. Ich weiß nicht, ob das ein Fehler nur bei mir ist oder bei allen oder ob das alles so gewollt und daher richtig ist.

Delphi-Quellcode:
interface
type
  TKernelFunc = class(TInterfacedObject, IsngFunc, IKernelFunc)
  strict private
    function InstallService  ( const Param: TJSONObject) : TJSONObject; // Para: Feldliste
    ...

  public
    class function InstallService_v1   ( const AsngParam  : TsngParameter) : TsngResult;
  end;

...

implementation

class function InstallService_v1   ( const AsngParam  : TsngParameter) : TsngResult;
begin
  AsngParam. <<=====
end;
So, dies ist in etwa der Code. Wenn ich nun "AsngParam." tippe (siehe <<====), möchte ich die Methoden und Propertys sehen. Ich bekomme aber nur einen Grundstock an functions. Keinerlei Daten zu meinem Object. Compilieren geht aber einwandfrei.
Wenn ich nun das "class" entferne, funktioniert alles wie gewünscht. Also ich sehe alle Daten.

Was hat das "class" mit dem Parameterobjekt zu tun?
Habe ich einen Fehler? Funktioniert sowas nicht oder ist hier ein Bug? Wie gesagt, compilieren ohne Fehler möglich.

VG Thomas

himitsu 18. Jul 2020 18:45

AW: LSP: Problem mit der Vervollständigung
 
Delphi-Quellcode:
implementation

class function InstallService_v1 ( const AsngParam : TsngParameter) : TsngResult
Wenn das ALLES compiliert, dann stimmt was nicht.


Tipp: Du hast eine Klasse und was fehlt da wohl?

Diese "Prozedur" wird natürlich kompilieren (solange du nur auf den Parameter zugreist und auf nichts Andereres der Kasse),
aber oben sollte die "Methode" als fehlend angemeckert werden.

t2000 18. Jul 2020 19:09

AW: LSP: Problem mit der Vervollständigung
 
Sorry, ich habe die erste "function InstallService" nicht gelöscht. Das verwirrt. Die ganze Sache ist um den anderen Code bereinigt.
Es ist natürlich alles richtig. Und läuft. Egal ob ich es als "class function" oder normale function nehme (den Aufruf muss ich natürlich zum testen anpassen).

Ich habe es jetzt an verschiedenen Stellen bemerkt. Innerhalb der Programmierung einer "class function" werden die Objekte nicht richtig vervollständigt.

Habe es bisher aber noch nicht an einem anderen Objekt probiert.

t2000 18. Jul 2020 19:12

AW: LSP: Problem mit der Vervollständigung
 
Ach so, das meinste du: function TKernelFunc.InstallService_v1
Ja, auch das war eigentlich mal richtig.
Ändert leider nichts an dem Problem.

Habe sehr viel zum testen rumprobiert, daher der doch fehlerhafte Code oben. Aber das Problem bleibt.

himitsu 19. Jul 2020 10:33

AW: LSP: Problem mit der Vervollständigung
 
Eigentlich hieß es das sollte jetzt wieder funktionieren,
Patch 2 : https://www.delphipraxis.net/204400-...ml#post1469829

aber ich hatte das schon auf Classic umgestellt, weil das mit LSP einfach garnicht nutzbar war
und ich hatte jetzt noch keine Lust das zurückzustellen, nach dem, was man anschließend von Anderen hörte.


Das Alte läuft zwar nicht mehr so gut, wie vor dem LSP-Einbau (auch wenn man es abschaltet), aber so lange keine neuen Features vorkommen, empfinde ich es dennoch als stressfreier nutzbar.
(Inline-Variablen und Nachfolgendes wird als "Falsch" markiert und sobald man die Managed Records in der Deklaration hat, geht fast garnichts mehr)


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