Autor Beitrag
skall
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Di 27.01.09 15:05 
morgen...

Also Mal ne Frage...

Ich muss 2 Constanten definieren, die unter Type meiner Unite benötigt werden... Ding ist nur, dass die Constanten sich in einer weiteren Unit definieren... Somit findet er diese nicht...

Ist es Möglich dies Iwei zu umgehen? :o

Hier mal zur verdeutlichung die relewanden Ausschnitte des QuellCodes:

ausblenden Delphi-Quelltext
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:
unit DateioperationenSolar;


interface

uses SysUtils, Dialogs, classes;

Const ersteStunde = StundenListe[1];
      letzteStunde = StundenListe[12];

type
  TStundenMittel = array[ersteStunde..letzteStunde] of real;
  TDatenSatz = Record
               wert: real;
               Stunde: integer;
               Minute: integer;
               end;

procedure DatenEinlesen (DatumWert:StringVar MittelWert:TStundenMittel; Var MaxWert:TDatenSatz);
procedure DatenSpeichern (MittelWert:TStundenMittel; Var MaxWert:TDatenSatz; Var DatumWert: String);
//function PosEx(Substr: string; S: string; P: Integer): Integer;

Var StundenListe : TStundenListe;

implementation
uses DatenEinlesen;

Var MittelWertListe : TMittelWerte;
    StundenListe : TStundenListe;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
unit DatenEinlesen;

interface

uses SysUtils, Dialogs, classes;

type   TMittelWerte = array[1..12of Real;
       TStundenListe = Array[1..12of Integer;



  ersteStunde := StundenListe[1];
  letzteStunde := StundenListe[12];


Handelt sich um die beiden Varriablen: ersteStunde und letzteStunde, welche aus der StundenListe definiert werden...
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 27.01.09 15:11 
Was denn nun, Konstanten oder Variablen? Du kannst keine Konstanten aus einer Variablen befüllen, der Wert muss schon zur Designtime bekannt sein.
JDKDelphi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 115
Erhaltene Danke: 22

WIN2000, XP, WIN 7 , UNIX, LINUX
Assembler für (Z8x, 68xxx,R6000,Intel), DELPHI 6 Enterprise, MAGIC eDeveloper V9+V10, C++, C#,VB, .NET, zertifizierter iBOLT-Programmierer
BeitragVerfasst: Di 27.01.09 15:12 
Titel: Konstanten
Hallo..

bau Dir eine globale Unit "myTypdef" , wo Du deine Konstanten und Typen definierst.

Diese verwendest Du dann in den beiden Modulen und schon gibt's keine Namenskonflikte..

Mal abgesehen davon, das der Source, den Du dort postest, so eigentlich nicht funktioniert..


Gruss

_________________
Wo andere aufhören, fange ich erst an..
skall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Di 27.01.09 15:17 
ja wie gesagt dass sind nur die relewanten Auschnitte....
skall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Di 27.01.09 15:20 
wie jetzt...

Soll ich noch ne Unit schrieben wo die Daten aus der ersten Unit genommen werden und in die Varriablen für die erste Unit definiert werden?
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 27.01.09 15:25 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
unit Brückenunit;

interface

type   TMittelWerte = array[1..12of Real;
       TStundenListe = Array[1..12of Integer;

const Konst1 = 1;
      Konst2 = 123;
      Konst3 = 'Ein String';
...


Diese Unit in allen einbinden, die auf diese Daten zugreifen.
JDKDelphi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 115
Erhaltene Danke: 22

WIN2000, XP, WIN 7 , UNIX, LINUX
Assembler für (Z8x, 68xxx,R6000,Intel), DELPHI 6 Enterprise, MAGIC eDeveloper V9+V10, C++, C#,VB, .NET, zertifizierter iBOLT-Programmierer
BeitragVerfasst: Di 27.01.09 15:31 
Titel: Konstanten
Genauso , wie DeddyH das gepostet hat..

Diese paar Anweisungen sind doch wohl nicht zuviel verlangt, zumal dann ein Ändern im Programm noch sicherer wird, da die Konstanten
nur einmal vorhanden sind...

Gruss

_________________
Wo andere aufhören, fange ich erst an..
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 27.01.09 15:36 
Abgesehen davon sind die definierten Typen dann auch kompatibel. Definierst Du denselben Typ in 2 unterschiedlichen Units, sind das für Delphi auch 2 unterschiedliche Typen.
skall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Di 27.01.09 15:43 
Lassen Sich Konstaten überhaupt auf sowas wie "StundenListe[1]" festlegen? Weil der zickt da iwie rum...
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 27.01.09 15:56 
user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Du kannst keine Konstanten aus einer Variablen befüllen, der Wert muss schon zur Designtime bekannt sein.

Das reicht eigentlich als Antwort auf deine Frage :)
Designtime = Der Moment, in dem du dein Programm schreibst. Du kannst den Wert nicht aus einer Datei auslesen oder ähnliches.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 27.01.09 15:58 
ausblenden Delphi-Quelltext
1:
const Stundenliste: TStundenliste = (1,2,3,4,5,6,7,8,9,10,11,12);					

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
JDKDelphi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 115
Erhaltene Danke: 22

WIN2000, XP, WIN 7 , UNIX, LINUX
Assembler für (Z8x, 68xxx,R6000,Intel), DELPHI 6 Enterprise, MAGIC eDeveloper V9+V10, C++, C#,VB, .NET, zertifizierter iBOLT-Programmierer
BeitragVerfasst: Di 27.01.09 16:01 
Titel: Konstanten
Hallo,

Du kannst das so nicht machen, da keine Variable oder ein Typ in eine Konstante gefüllt werden kann.

Const meins = Stundenliste[1] geht nicht!!!


Hier ein kleiner Rumpf, was geht:


ausblenden volle Höhe Delphi-Quelltext
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:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
// globale Unit
Unit myConst

....

CONST  Konst1 = 1;
       Konst2 = 12;

TYPE  Verwende = Array[Konst1..Konst2];
...

END.

//-----------------------------
Unit Eins;

uses myConst;

......

Var a : Verwende;

Procedure machwas;
BEGIN

     a[Konst1]=10;     // 1. Feld füllen
     a[Konst2] = 20;   // letzes Feld füllen
END;

//------------------------------
Unit Zwei;

uses myConst;

......

Var b : Verwende;

Procedure machwas2;
BEGIN

     b[Konst1]=10;     // 1. Feld füllen
     b[Konst2] = 20;   // letzes Feld füllen
END;

//------------------------------
Unit drei;

uses myConst;

......

Var c : Verwende;


Procedure machwas3;
BEGIN

     c[Konst1]=10;     // 1. Feld füllen
     c[Konst2] = 20;   // letzes Feld füllen
END;


....



Das Ganze natürlich möglichst auch objektorientiert


Gruss

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt

_________________
Wo andere aufhören, fange ich erst an..
skall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Di 27.01.09 17:29 
Danke vielmals :)

Habs jetzt einfach umgangen...
Hätte mich damit sicher noch den ganzen Tag rum geärgert xD
der organist
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Di 27.01.09 17:33 
Konstante heisst nun mal Konstante, weil sie konstant ist. Auch wenn der Wert vielleicht nur einmal gesetzt wird und danach nie wieder geändert wird, ist in deiner Definition doch eine variable Nummer/string/etc vorhanden.

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin