Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [XE5]: Nutzung des Datenmoduls (https://www.delphipraxis.net/178788-%5Bxe5%5D-nutzung-des-datenmoduls.html)

Kralle 31. Jan 2014 07:32

AW: [XE5]: Nutzung des Datenmoduls
 
Hallo Detlef,

Zitat:

Zitat von DeddyH (Beitrag 1246073)
Delphi-Quellcode:
class procedure Global.SetSymboltyp(const Value : Integer);
 begin
   FSymboltyp:=Value;
 end;
Es ist ja als Klassenmethode deklariert, deshalb muss es auch so implementiert werden.

Jetzt gibt es nur noch eine Fehlermeldung:
Zitat:

[dcc32 Fehler] datenmodul.pas(10): E2355 Für den Zugriff auf Klasseneigenschaften muss ein Klassenfeld oder eine statische Klassenmethode verwendet werden
Gruß Heiko

mkinzler 31. Jan 2014 07:35

AW: [XE5]: Nutzung des Datenmoduls
 
Zitat:

Zitat von Kralle (Beitrag 1246075)
Jetzt gibt es nur noch eine Fehlermeldung:
Zitat:

[dcc32 Fehler] datenmodul.pas(10): E2355 Für den Zugriff auf Klasseneigenschaften muss ein Klassenfeld oder eine statische Klassenmethode verwendet werden
Gruß Heiko

Wie ist FSymbolTyp deklariert als
Delphi-Quellcode:
class var
?

DeddyH 31. Jan 2014 07:37

AW: [XE5]: Nutzung des Datenmoduls
 
Es steht ja da: die Setter-Methode muss statisch sein.
Delphi-Quellcode:
   Global = class
     private
       class var FSymboltyp : Integer;
       class procedure SetSymboltyp (const Value : Integer); static; //hier
     public
       class property Symboltyp : Integer read FSymboltyp write SetSymboltyp;
   end;
Allerdings würde ich persönlich bei der üblichen Nomenklatur bleiben und dem Klassennamen noch ein "T" voranstellen.

Sir Rufo 31. Jan 2014 07:41

AW: [XE5]: Nutzung des Datenmoduls
 
Zitat:

Zitat von DeddyH (Beitrag 1246078)
Es steht ja da: die Setter-Methode muss statisch sein.
Delphi-Quellcode:
   Global = class
     private
       class var FSymboltyp : Integer;
       class procedure SetSymboltyp (const Value : Integer); static; //hier
     public
       class property Symboltyp : Integer read FSymboltyp write SetSymboltyp;
   end;
Allerdings würde ich persönlich bei der üblichen Nomenklatur bleiben und dem Klassennamen noch ein "T" voranstellen.

Dies hier ist die Ausnahme von der Regel, da diese Klasse kein Type im Sinne von Instanzvorlage werden soll.
Von daher würde ich dieser Klasse eben kein T voranstellen :)

DeddyH 31. Jan 2014 07:44

AW: [XE5]: Nutzung des Datenmoduls
 
Dann sag mal bei Emba Bescheid, dass sie z.B. TEncoding falsch benannt haben.

Sir Rufo 31. Jan 2014 07:49

AW: [XE5]: Nutzung des Datenmoduls
 
Zitat:

Zitat von DeddyH (Beitrag 1246081)
Dann sag mal bei Emba Bescheid, dass sie z.B. TEncoding falsch benannt haben.

Haben sie nicht, denn das ist ein Type.
Oder welchen Typ hat die Instanz
Delphi-Quellcode:
UTF8
?

Hier kann man es sehen
http://docwiki.embarcadero.com/Libra...TEncoding.UTF8

DeddyH 31. Jan 2014 07:54

AW: [XE5]: Nutzung des Datenmoduls
 
http://docwiki.embarcadero.com/Libra...tils.TEncoding
Zitat:

TEncoding = class
Und so steht es auc in meiner SysUtils.

Kralle 31. Jan 2014 07:59

AW: [XE5]: Nutzung des Datenmoduls
 
Moin,

es gibt jetzt zwar beim Compilieren keine Fehlermeldung mehr, aber der Variableninhalt wird nicht übertragen.

Setzen:
Delphi-Quellcode:
unit allgemein;

...

implementation

{$R *.dfm}
uses datenablage;

procedure TForm_Allgemein.CoB_SymboltypChange(Sender: TObject);
begin
 Global.Symboltyp:= CoB_Symboltyp.ItemIndex;
 CB_Activate_Symbol.Caption:=IntToStr(CoB_Symboltyp.ItemIndex)+'##'+inttostr(datenablage.Global.Symboltyp);
end;
Auslesen:
Delphi-Quellcode:
unit anschluesse;

...

implementation

{$R *.dfm}
uses datenablage;

procedure TForm_Anschluesse.FormShow(Sender: TObject);
begin
 lbledt_AnzAnschluesse.EditLabel.Caption:=IntToStr(Global.Symboltyp);
 if Global.Symboltyp in [7,8,9,10,11,12,13,14] then
Hier kommt nichts an.
Warum?

Gruss Heiko

Sir Rufo 31. Jan 2014 08:08

AW: [XE5]: Nutzung des Datenmoduls
 
Das können wir dir nicht sagen, weil wir nicht wissen, in welcher Reihenfolge das aufgerufen wird.

Wenn die Form Anschlüsse schon angezeigt wird und du dann erst die Änderung machst, dann "kommt" der Wert da nicht an, weil der Wert ja nicht durch Magie die Methode aufruft.

DeddyH 31. Jan 2014 08:12

AW: [XE5]: Nutzung des Datenmoduls
 
Wo landest Du, wenn Du in beiden Units einmal mit STRG-Linksklick auf "Global" abspringst? Ist das auch dieselbe Stelle?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr.
Seite 3 von 4     123 4      

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