Einzelnen Beitrag anzeigen

Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#5

AW: [XE5]: Nutzung des Datenmoduls

  Alt 28. Jan 2014, 05:53
Moin,

Wozu soll das Datenmodul gut sein, wenn es garnicht benutzt und nichtmal irgendwo instanziiert wird?
Deshalb, frage ich ja hier um zu erfahren ob ich alles richtig gemachtr habe bei der Nutzung.
Eine globale Variable kann man auch so deklarieren.
Ich will aber Werte die ich in einer Unit produziere in anderen Units nutzen und da sollte doch ein Datenmodul der schönere Weg sein - oder?
Wie und wo verwendest du diese Variablen?
Hier wird sie gesetzt:
Delphi-Quellcode:
unit allgemein;

interface

uses
.... datenmodul; // Einbinden um Felder deaktivieren zu können

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form_Allgemein: TForm_Allgemein;

implementation

{$R *.dfm}


procedure TForm_Allgemein.CoB_SymboltypChange(Sender: TObject);
begin
 datenmodul.MaxLine:= CoB_Symboltyp.ItemIndex;
 CB_Activate_Symbol.Caption:=IntToStr(CoB_Symboltyp.ItemIndex)+'##'+inttostr(datenmodul.MaxLine);
end;


end.
und hier zum Beispiel genutzt:
Delphi-Quellcode:
unit anschluesse;

interface

uses
...,
   datenmodul; // Einbinden um Felder deaktivieren zu können


  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form_Anschluesse: TForm_Anschluesse;

implementation

{$R *.dfm}


procedure TForm_Anschluesse.FormShow(Sender: TObject);
begin
 lbledt_AnzAnschluesse.EditLabel.Caption:=IntToStr(datenmodul.MaxLine);
 if datenmodul.MaxLine in [7,8,9,10,11,12,13,14] then
   begin
     Form_Anschluesse.chklst_GAnschluesse.Enabled:=False;
     Form_Anschluesse.chklst_KAnschluesse.Enabled:= False;
     Form_Anschluesse.lbledt_AnzAnschluesse.Enabled:=False;
    end
 else

   if datenmodul.MaxLine = 6 then
     begin
       Form_Anschluesse.chklst_GAnschluesse.Enabled:=False;
       Form_Anschluesse.chklst_KAnschluesse.Enabled:= True;
       Form_Anschluesse.lbledt_AnzAnschluesse.Enabled:=True;
     end
   else
     begin
       Form_Anschluesse.chklst_GAnschluesse.Enabled:=True;
       Form_Anschluesse.chklst_KAnschluesse.Enabled:=false;
       Form_Anschluesse.lbledt_AnzAnschluesse.Enabled:=False;
     end;




end;
Antwort: Mit deinem Datenmodul ist alles in Ordnung, da es nichts macht.
Genau das ist das "Problem". Aber wenn es nichts macht, warum kann ich in der ersten Unit den Variableninhalt wieder auslesen und in der zweiten nicht?

Aber da du sonst alles Wichtige über die Variablen verschweigst, kann dir Keiner helfen.
Nicht mit Vorsatz. Ich dachte ich hätte das Problem deutlich genug beschrieben ohne Quellcode posten zu müssen.

Gruß Heiko
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),
  Mit Zitat antworten Zitat