Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Konstruktor-Aufruf "Too many actual parameters" - warum? (https://www.delphipraxis.net/213342-konstruktor-aufruf-too-many-actual-parameters-warum.html)

Bodenseematze 14. Jul 2023 08:08

AW: Konstruktor-Aufruf "Too many actual parameters" - warum?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1524545)
Du hast es ja offenbar selbst schob erkannt: Da der protected constructor nicht sichtbar ist, wir stattdessen der von TObject genommen.

ja schon, aber warum wird dann in dem Fall nur noch der (öffentliche) Konstruktor von TObject gefunden und die anderen beiden aus meiner Klasse sind "ungültig"?
Und in dem Augenblick, wo alle öffentlich sind, funktioniert wieder aller wie gehabt? Sehr dubios!

Zitat:

Zitat von Uwe Raabe (Beitrag 1524545)
Das müsste im Debugger auch auffallen.

Seufz - noch so ein Reizthema bei mir; der Debugger funktioniert schon seit einer ganzen Weile bei mir nicht mehr (richtig) - ich schiebe es auf irgendwelche Microsoft Betriebssystemupdates...
Sobald ich ein Programm im Debugger versuche zu starten, hängt sich Delphi zu 95% komplett auf (die restlichen 5% funktioniert es).
In vielen Fällen funktioniert es, wenn ich auf der eigenen Maschine Remote-Debugging verwende, aber auch nicht immer...
Aber das ist ein anderes (leidiges) Thema :x

Zitat:

Zitat von himitsu (Beitrag 1524557)
Ja, eigentlich "darf" man sichtbarkeiten nicht verringern.

Das wusste ich nicht - ich dachte, das sei zulässig...
Zitat:

Zitat von himitsu (Beitrag 1524557)
(wer's doch versucht, muß mit den Konsequenzen leben)

Da scheinst Du Recht zu haben :lol:

Zitat:

Zitat von himitsu (Beitrag 1524557)
Man könnte hier mehrfach ableiten.

Sehr gute Idee, das werde ich so machen! :thumb:


Zitat:

Zitat von jaenicke (Beitrag 1524564)
Du kannst aber auch ganz einfach herausfinden, ob die beabsichtigte Unit verwendet wird:
Baue einfach einen Syntaxfehler in die Unit ein. Wenn der nicht bemängelt wird, wird sie auch nicht verwendet.

Es wird schon die Unit verwendet - es scheint tatsächlich an der (versuchten) Sichtbarkeitsänderung des Konstruktors zu liegen...

Vielen Dank für Eure Hilfestellungen!

himitsu 26. Jun 2024 23:42

AW: Konstruktor-Aufruf "Too many actual parameters" - warum?
 
[add] OMG, einen vergessenen Tab gefunden und wo Firefox sich so Mühe gegeben hat das Geschriebene im Editor, trotz mehrfacher Abstürze, Neustarts und disableter Tabs zu merken ......... klick ich mal auf Senden :duck:
Falls noch was fehlt und ich es noch nicht geschrieben hab ... hab's eh vergessen[/add]

Zitat:

Zitat von Bodenseematze (Beitrag 1524572)
Das wusste ich nicht - ich dachte, das sei zulässig...

Nja, es ist möglich,
aber widerspricht den Grundsätzen der OOP.

Durch die Vererbung werden Dinge hinzugefügt, aber niemals nicht entfernt.

Ein TMemoryStream kann alles, was ein TStream kann,
also es macht keinen Unterschied, ob ich VariableAlsTMemoryStream.Write oder VariableAlsTStream.Write ausführe, solange da wirklich ein TMemoryStream drin steckt.



Delphi-Quellcode:
type
  TTest = class(TComponent)
  strict private
    procedure SetName(const NewName: TComponentName); override;
  strict protected
    property Tag;
  end;

procedure TForm4.FormCreate(Sender: TObject);
begin
  Tag := TTest.Create(Self).Tag;



  var Edit: TEdit;
  var Cont: TControl;

  Edit := TEdit.Create(Self);
  Cont := Edit;

  TLabel(Edit).Caption := ''; // Ja, Caption gibt es seit TControl, aber meistens ist es einfach nur im Protected versteckt.
  TLabel(Cont).Caption := '';
  Edit.Caption := ''; // [dcc32 Fehler] E2362 Auf protected-Symbol TControl.Caption kann nicht zugegriffen werden

  Edit.Text := '';
  Cont.Text := ''; // [dcc32 Fehler] E2362 Auf protected-Symbol TControl.Text kann nicht zugegriffen werden
end;

Bodenseematze 2. Jul 2024 09:39

AW: Konstruktor-Aufruf "Too many actual parameters" - warum?
 
Zitat:

Zitat von himitsu (Beitrag 1538281)
[add] OMG, einen vergessenen Tab gefunden und wo Firefox sich so Mühe gegeben hat das Geschriebene im Editor, trotz mehrfacher Abstürze, Neustarts und disableter Tabs zu merken ......... klick ich mal auf Senden :duck:
Falls noch was fehlt und ich es noch nicht geschrieben hab ... hab's eh vergessen[/add]

Ich schmeiß' mich weg - aus den Tiefen des Firefox "gerettet" :spin: :thumb: :dancer:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz