AGB  ·  Datenschutz  ·  Impressum  







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

Objeckte mit einem Integer assoziieren

Ein Thema von daniel8520 · begonnen am 13. Jun 2004 · letzter Beitrag vom 14. Jun 2004
Antwort Antwort
daniel8520
(Gast)

n/a Beiträge
 
#1

Objeckte mit einem Integer assoziieren

  Alt 13. Jun 2004, 13:08
Hallo,

ich hab ein klienes Problem. Und zwar bin ich grad dabei, ein Programm zu schreiben, in welchem ich eine Statistik benötige. Ich wollte aber nicht die doofe TChart-Ding nehmen.
Im Prinzip funkt. ja soweit auch alles. Nur eins nicht:
Delphi-Quellcode:
const
    ShapeS: array[1..12] of TObject = (S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12);
S1,S2, usw. sind Säulen des Diagramms (12 = ein Jahr). Ich wollte diese nun einzeln aus einer Datei lesen, und dabei immer den Integer um 1 erhöhen. Also die Datei ist ne INI-Datei. [1] ist der Januar [2] der Febraur usw.

Jetzt mein Problem: Bei dem Code hier oben, meldet er immer 'Konstantenausdruck erwartet'.

Weiß jemand, wie man ein Object mit einem Integer assoziiert?
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Objeckte mit einem Integer assoziieren

  Alt 13. Jun 2004, 13:20
Hi,
ja gibt es. Ich habe diesen Beitrag mal etwas modifiziert:
Delphi-Quellcode:
uses {...}, TypInfo, {...};

type
  TSaeule = (S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12);

procedure TForm1.Button1Click(Sender: TObject);
var
  aRes: TSaeule;
begin
  aRes := TSaeule(GetEnumValue(TypeInfo(TSaeule), 'S'+IntToStr( {-->} DeinIntegerWert {<---} )));
end;
Das einzige Problem ist, dass du das mit einem Array nicht so machen kannst. Allerdings musst du mal gucken, ob du dein Programm umschreiben kannst, denn so geht es auf jedenfall.

Chris
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Objeckte mit einem Integer assoziieren

  Alt 14. Jun 2004, 09:20
Zitat von Chakotay1308:
...
aRes := TSaeule(GetEnumValue(TypeInfo(TSaeule), 'S'+IntToStr( {-->} DeinIntegerWert {<---} )));
...
Das kann nicht dein ernst sein Einen integer aufwändig in ein string konvertieren dann die rtti bemühen um den selben integer zurück zu liefern - ist nicht grad effizient:

aRes := TSaele(DeinIntegerWert-1); // -1 für eins-basierten index! so bleibt ein integer ein integer, ob enum oder nicht spielt da keine rollse
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:02 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