Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - nur eingeschränkt zugängliche Property
Mitmischer 1703 - Mo 04.01.10 21:55
Titel: nur eingeschränkt zugängliche Property
Hi DF!
Ich habe folgende Property:
Delphi-Quelltext
1:
| property Terminate : Boolean write WriteFTerminate; |
Diese Property soll aber nur von wenigen Klassen aufgerufen werden können.
Meine Idee war, im WriteFTerminate zu prüfen, ob der Sender das Interface IMayControlMainForm (ja, sehr toller Name =)
implementiert. Wie kann ich das realisieren?
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Mo 04.01.2010 um 20:59
Flamefire - Mo 04.01.10 21:56
öhm...und warum das?
Du bist doch derjenige, der den Code schreibt, in dem auf die Eigenschaft zugegriffen wird....
Hidden - Mo 04.01.10 22:11
Hi :)
Wo befinden sich denn die Klassen, die den Zugriff machen dürfen? Wenn du sie in die selbe Unit packen kannst, würde ich einfach mit private statt strict private und protected statt strict protected arbeiten.
Grundsätzlich klingt das aber nach einem 3x falschen Konzept, und bei deinem Ansatz käme der Fehler ja erst zur Laufzeit. Eigentlich will man mit der Eingeschränkten Variablengültigkeit ja gerade die Übersichtlichkeit erhöhen, und nicht den Verwender des Codes einschränken, nachdem er eigentlich allen Code getippt hat und testen will :roll:
mfG,
Mitmischer 1703 - Mo 04.01.10 22:37
Zugriff zwischen 2 Forms :|...
Die zweite Form ist eine Fortschrittsanzeige, die einen Abbruch-Button enthält. Sobald der Button gedrückt wird, soll die erste Form ihre Aktion abbrechen- und ich möchte nicht jeder Klasse ermöglichen, das zu tun.
Xentar - Mo 04.01.10 22:42
Nochmal die Frage: Warum?
Du hast doch in der Hand, von wo aus du das aufrufst.
Wenn doch unbedingt sein muss: Mach ne Methode SetTerminated oder so, wo du nen Sender übergibst. Dann kannst du prüfen If Sender is ...... then
Hidden - Mo 04.01.10 22:51
Hi =)
Ich glaube du hast den Begriff die Zugriffseinschränkung falsch verstanden, siehe oben :) Ein anderer Programmierer, der deinen Quelltext hat, kann sowieso alles damit machen(im Zweifelsfall etwas entfernen ;)). Es geht bei Zugriffsbeschränkungen immer um die Übersicht, nie um etwas anderes.
E: Warum denn dann als property und nicht als procedure? Wenn man true zuweist, beendet er. Und bei false, passiert nichts? :P
E2: Ach so, die andere Prozedur läuft währenddessen parallel weiter und überprüft alle x Schleifendurchläufe auf FTerminate: Boolean. Dann würde ich eine Prozedur machen, die FTerminate auf true setzt. An der oberen Sache ändert das aber nichts: Delphi ist nicht(und imho keine andere Programmiersprache) darauf darauf ausgelegt, den Programmierer einzuschränken.
mfG,
---
1600. Beitrag :party:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!