AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Konstanten in einer Klasse global definieren
Thema durchsuchen
Ansicht
Themen-Optionen

Konstanten in einer Klasse global definieren

Ein Thema von Minz · begonnen am 31. Aug 2003 · letzter Beitrag vom 1. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#1

Konstanten in einer Klasse global definieren

  Alt 31. Aug 2003, 18:30
Ich habe da eine Klasse(Klasse2), die von anderen Klassen(Klasse1) instanziiert werden.

Ich möchte nun das die Konstanten aus Klasse2 für Klasse1 zugänglich ist.

Klassenaufbau:
Delphi-Quellcode:
interface
 type Klasse2=class

   private

   public

 end;
implementation
Wo soll ich die Konstanten nun deklarieren. Unter Public nimmt er sie nicht. Direkt über Implementation nimmt er sie, aber nicht zugänglich für Klasse1 !

Wie denn dann?

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Konstanten in einer Klasse global definieren

  Alt 31. Aug 2003, 19:19
Moin Minz,

was verstehst Du in diesem Zusammenhang unter Konstanten?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: Konstanten in einer Klasse global definieren

  Alt 31. Aug 2003, 19:22
du musst in deinem constructor der zweiten klasse erst über inherited die erste aufrufen und dann deine konstanten initialisieren , welche im private deklariert sind.
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#4

Re: Konstanten in einer Klasse global definieren

  Alt 31. Aug 2003, 19:48
@Christian

Hi, naja eben Konstanten ,

Neu: achso solche die mit const deklariert werden.

so dass ich von Klasse1 sagen kann:

x:=Klasse2.Konstante1;

und auch von Klasse1 will ich sagen können:

x:=Konstante1

Könnte ich auch mit Variablen machen, aber ich hab halt nen dicken Kopf

@Kiar

das erscheint mir unlogisch! Wenn ichs unter private mache, dann kann doch Klasse1 auf keinen Fall drauf zugreifen...sont wärs ja nicht private !

Ich will Konstanten die nicht extra initialisiert werden müssen, zumindest nicht in der create-methode
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Konstanten in einer Klasse global definieren

  Alt 31. Aug 2003, 19:55
Moin Minz,

Zitat von Minz:
Könnte ich auch mit Variablen machen, aber ich hab halt nen dicken Kopf
Deinen Dickkopf in Ehren, aber Klassen enthalten keine Konstanten.
Da wirst Du Dir wohl eine Erweiterung für den Compiler schreiben müssen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#6

Re: Konstanten in einer Klasse global definieren

  Alt 31. Aug 2003, 20:01
Mist

wo krieg ich diesen Smiley mit roten Kopf und der Wand her?
  Mit Zitat antworten Zitat
aogwaba

Registriert seit: 21. Aug 2003
16 Beiträge
 
#7

Re: Konstanten in einer Klasse global definieren

  Alt 31. Aug 2003, 20:01
Es ist sicher auch Speicherverschwendung, wenn jede Instanz der Klasse dieselben Konstanten beinhaltet.
Du könntest vielleicht eine Class-Function schreiben, welche die gewünschte Konstante liefert:

Code:
class funtion klasse1.getIntegerValue:integer;
begin
result:=101;
end;
dann brauchst du noch nicht mal ne Instanz des Klasse.

cu
waba
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Konstanten in einer Klasse global definieren

  Alt 31. Aug 2003, 20:32
Moin waba,

das muss keine Platzverschwendung sein, wenn der resultiernde Code die Konstanten so verwaltet, dass sie bei mehreren Instanzen einer Klasse nur einmal geladen, und erst beim zerstören der letzten Instanz ebenfalls freigegeben werden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
aogwaba

Registriert seit: 21. Aug 2003
16 Beiträge
 
#9

Re: Konstanten in einer Klasse global definieren

  Alt 31. Aug 2003, 20:51
Hallo Christian,
versteh ich nicht ganz, meinst Du so eine Art Object-Factory, welche die
Instanzen verwaltet?
Minz schrieb von Konstanten, deshalb ging ich davon aus das diese in jeder Instanz gleich sind, eben konstant.

cu
waba
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Konstanten in einer Klasse global definieren

  Alt 31. Aug 2003, 20:57
Moin waba,

war nur eine Idee, wie man Konstanten in Klassen implementieren könnte, ohne Platz zu verschwenden. Diese Idee würde ja auch nur dann funktionieren, wenn die Konstanten, wie der Name schon sagt, konstant, und somit in jeder Instanz gleich sind.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr.
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