Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
[Delphi Prism] Sichtbarkeiten von Typen
spacer
Autor Nachricht
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star

Beiträge: 650
Dabei seit: 01.10.2007
Wohnort: Titz

Win Vista
Delphi 3, C++ (CBuilder6)
BeitragVerfasst am: Fr 06.11.09 18:41 
Sprache: Delphi Prism
Antworten mit Zitat Beitrag melden
Hi DF!

Ich hab gleich probiert in Prism Großteile von Delphi einzubauen Im Moment stehe ich vor folgendem Problem

ausblenden volle Höhe Delphi-Prism-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
namespace WindowsApplication1;

interface

uses
System.Collections.Generic,
System.Linq,
System.Text;

type
Nations = (
n1, n2, n3);

Army = record
private
public

end;

BeeNation = public class
private
fWorkers : Integer;
fNation : Nations;
fArmy : Army;

protected
public
property Workers : Integer read fWorkers;
property Nation : Nations read fNation;
end;

implementation

end.


1. Er compiliert durch und wirft mir als Fehler: Fehler 1 (PE114) Der aus Typ "WindowsApplication1.BeeNation" verwendete Typ "WindowsApplication1.Nations" muss public sein H:\Backup\Borland\Delphi Prism\BeeWars\BeeWars\WindowsApplication1\BeeNation.pas 29 21 WindowsApplication1

Es hapert an der Property Nation vom Typ Nations - Ich verstehe jetzt nicht, warum Nations private sein soll?! :nixweiss: Es ist doch eigentlich ein ganz normaler Typ - die property Workers funzt ja auch für den Typen Integer!

_________________
Was soll ich sagen???
Private Nachricht sendenPosting in privater Nachricht zitieren
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Chefentwickler

Beiträge: 17080
Dabei seit: 07.07.2002
Wohnort: Server-Souterrain

Win 7
Delphi Prism, C# (VS 2010)
BeitragVerfasst am: Fr 06.11.09 18:48  Antworten mit Zitat Beitrag melden
Typen, die Du ohne eine Sichtbarkeitsangabe deklarierst, haben standardmäßig die Sichtbarkeit assembly (äquivalent zu internal in C#).

Wenn Du also in einer public-Klasse eine public-Property hast, kann der Typ keine geringere Sichtbarkeit haben. Du musst Nations also so deklarieren:
ausblenden Delphi-Prism-Quelltext markieren
1:
2:
Nations = public (
n1, n2, n3);

_________________
"Physics is a bitch" - William Bell, Fringe
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star

(Threadstarter)

Beiträge: 650
Dabei seit: 01.10.2007
Wohnort: Titz

Win Vista
Delphi 3, C++ (CBuilder6)
BeitragVerfasst am: Fr 06.11.09 18:49  Antworten mit Zitat Beitrag melden
Okay, danke!

Mit welcher Sichtbarkeitsstufe kann man assembly denn in Pascal vergleichen?

_________________
Was soll ich sagen???
Private Nachricht sendenPosting in privater Nachricht zitieren
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Chefentwickler

Beiträge: 17080
Dabei seit: 07.07.2002
Wohnort: Server-Souterrain

Win 7
Delphi Prism, C# (VS 2010)
BeitragVerfasst am: Fr 06.11.09 18:51  Antworten mit Zitat Beitrag melden
Kennt pascal inzwischen Typensichtbarkeit? :gruebel:

assembly ist eigentlich sehr sprechend: Es ist nur innerhalb des Assemblies (also der DLL oder EXE) zu sehen, für andere Assemblies unsichtbar.

_________________
"Physics is a bitch" - William Bell, Fringe
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star

(Threadstarter)

Beiträge: 650
Dabei seit: 01.10.2007
Wohnort: Titz

Win Vista
Delphi 3, C++ (CBuilder6)
BeitragVerfasst am: Fr 06.11.09 18:57  Antworten mit Zitat Beitrag melden
:shock: Aber dann müsste Nations doch sichtbar sein : gleiche EXE und sogar gleicher namespace ! :?

PS: Ich meinte Delphi / Object Pascal ;))

_________________
Was soll ich sagen???
Private Nachricht sendenPosting in privater Nachricht zitieren
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Chefentwickler

Beiträge: 17080
Dabei seit: 07.07.2002
Wohnort: Server-Souterrain

Win 7
Delphi Prism, C# (VS 2010)
BeitragVerfasst am: Fr 06.11.09 19:00  Antworten mit Zitat Beitrag melden
user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:
:shock: Aber dann müsste Nations doch sichtbar sein : gleiche EXE und sogar gleicher namespace ! :?

Du willst aber ein public-Property in einem public-Typen damit deklarieren. Beides wäre auch außerhalb des Assemblies sichtbar. Da es ja aber nicht sein kann, dass der Name der Property außerhalb sichtbar ist, ihr Typ aber nicht, muss der auch public sein.

_________________
"Physics is a bitch" - William Bell, Fringe
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star

(Threadstarter)

Beiträge: 650
Dabei seit: 01.10.2007
Wohnort: Titz

Win Vista
Delphi 3, C++ (CBuilder6)
BeitragVerfasst am: Fr 06.11.09 19:06  Antworten mit Zitat Beitrag melden
Achso, okay :autsch:

Danke!

_________________
Was soll ich sagen???
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home