Autor Beitrag
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Mo 04.01.10 21:55 
Hi DF!

Ich habe folgende Property:

ausblenden 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 user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 04.01.2010 um 20:59

_________________
Die Lösung ist nicht siebzehn.
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: 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,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: 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.

_________________
Die Lösung ist nicht siebzehn.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: 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

_________________
PROGRAMMER: A device for converting coffee into software.
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: 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:

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)