AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Konstante in Klasse?

Ein Thema von p80286 · begonnen am 6. Feb 2017 · letzter Beitrag vom 7. Feb 2017
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

Konstante in Klasse?

  Alt 6. Feb 2017, 15:00
Delphi-Version: 7
Ich wollte einer Klasse für DB-Abfragen die Abfragetexte hinzufügen
Delphi-Quellcode:
const
MAXTEXT=5;

type
  tSQLTexte:array[0..maxtext] of string;
const
  sqltexte:tSQLTexte=.........
Dabei ist mir aufgefallen, daß eine eine Klassendefinition das nicht kann.
Ok, ich könnte einer Variablen, die Werte im create zuweisen, aber das kommt mir irgendwie umständlich vor.

Hab ich mich verguckt, oder ist das wirklich so?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Konstante in Klasse?

  Alt 6. Feb 2017, 15:04
Hallo,

Delphi-Quellcode:
const
  maxtext = 5;
type
  tSQLTexte = array[0..maxtext] of string;
const
  sqltexte:tSQLTexte=('1','2','3','4','5','6');
und in einer Klasse
Delphi-Quellcode:
type
 TSQLTexte2 = class
    const
      maxtext = 5;
    type
      tSQLTexte = array[0..maxtext] of string;
    const
      sqltexte:tSQLTexte=('1','2','3','4','5','6');
 end;
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Konstante in Klasse?

  Alt 6. Feb 2017, 15:27
Äh nee
Delphi-Quellcode:
TDM_Logs = class(TDataModule)
  const
    SQLTEXTmax=5;
......
ergibt

---------------------------
Fehler
---------------------------
END erwartet, aber CONST gefunden.
---------------------------
OK
---------------------------

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Konstante in Klasse?

  Alt 6. Feb 2017, 15:29
Hallo,
dann liegt das ev. an Delphi7, mein Delphi (mind. 2007) kann es ...

Ansonsten pack die Klasse in eine eigene Unit und die Konstante in den Implementation-Teil.
Heiko

Geändert von hoika ( 6. Feb 2017 um 15:35 Uhr)
  Mit Zitat antworten Zitat
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Konstante in Klasse?

  Alt 6. Feb 2017, 15:32
Moin,

hier funktioniert
Delphi-Quellcode:
  public
    const tbl: string = 'Usergroup';
super in einer Klasse.
  Mit Zitat antworten Zitat
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Konstante in Klasse?

  Alt 6. Feb 2017, 15:34
Hallo,
dann liegt das ev. an Delphi7, mein Delphi kann es ...
In einem früheren Thread (hab den Link nicht gefunden) wurde bestätigt, dass D7 es nicht kann.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

AW: Konstante in Klasse?

  Alt 6. Feb 2017, 15:41
Suchst Du nach sowas in der Art?
Delphi-Quellcode:
const
  MaxText = 5;

type
  tSQLTexte = array[0..MaxText] of string;
const
  sqltexte : tSQLTexte = (
    'select * from Tabelle',
    'insert into tabelle where id = :id',
    'delete from tabelle where id = :id',
    'select * from tabelle where id = :id',
    '...',
    '...');
Mein Delphi 7 kompiliert das.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#8

AW: Konstante in Klasse?

  Alt 6. Feb 2017, 16:01
Moin...

Wenn du einen Platz für die Abfragen suchst...
http://www.delphipraxis.net/49505-sq...einbinden.html
http://www.delphipraxis.net/190316-d...creator-2.html
...eine Konstante dafür ist imho schlecht.

PS: Ressourcen gehen auch bei D7
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Konstante in Klasse?

  Alt 6. Feb 2017, 16:06
So nackt ist das kein Problem.
Es soll aber schon in der Teil der Klasse sein da
Delphi-Quellcode:
...
dm.GetBibdata(SRliste);
UsedSQL.Text:=dm.SQLTEXTE[GetBibdata];
...
einfach besser aussieht und mir logischer erscheint als
Delphi-Quellcode:
...
dm.GetBibdata(SRliste);
UsedSQL.Text:=SQLTEXTE[GetBibdata];
...
Natürlich könnte ich auch den Namen der Unit mit angeben oder ich packe das hinter einen Getter, aber daß scheint mir widerum als "L’art pour l’art"

Gruß
K-H

@haentschmann
NeeNee Konstante passt schon gut, und entspricht auch genau dem Konzept was dahinter steckt.
SQL in Recource würde ich für andere Zwecke einsetzen!
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 ( 6. Feb 2017 um 16:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#10

AW: Konstante in Klasse?

  Alt 6. Feb 2017, 16:15
Hallöle...
Ich versuche dich von der Konstante herunterzuheben...
UsedSQL.Text:=SQLTEXTE[GetBibdata]; ...das ist das was du mit einer Ressource erreichen kannst. Mit dem Editor kannst du die Texte deiner Ressource einfach anpassen ohne das der Qelltext verändert wird. Es macht die Klasse schlanker...

Nachtrag:
Zitat:
NeeNee Konstante passt schon gut, und entspricht auch genau dem Konzept was dahinter steckt.
...das Konzept müßtest du mal erklären.
  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 04:53 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