Autor Beitrag
Felux
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 57

WinXP Home + Sp1
D6 Pers(eng), D2005 Prof(de), Webocton Scriptly, C# (VS 2005 Express), Eclipse
BeitragVerfasst: Fr 06.08.04 12:11 
Hallo,
ih hab ein Problem. Ich höre immer wieder von verschiedenen Leuten, dass man Arrays als "Datenbanken" einsetzen kann. In mein Programm möchte ich das nun auch tun, nur hab ich keinen blassen schimmer davon, iwe ich so ein Array einlese bzw. auswerte.

Im Prinzip möchte ich einfach nur 70 If..then Anweisung extrem verkürzen, da sie mir den Quelltest komplett zusauen. Einem Flugzeug a will ich den Verbrauch 3 zuweisen(in eine Variable, global), einem Flugzeug b will ich den Verbrauch 5 zuweisen. Ich hab das jetzt so gelöst:

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:
procedure TTMainform.ComboBox1Change(Sender: TObject);
begin
     if combobox1.text='Beech 1900D' then
     begin
         verbrauch:=403;
         form8.Label1.Caption:='Beech 1900';
         form8.Label2.Caption:='2304 Km';
         form8.Label3.Caption:='507 Km/h';
         form8.Label4.Caption:='17.62 m';
         form8.Label5.Caption:='17.64 m';
         form8.Label6.Caption:='7620 m';
         form8.Label7.Caption:='403 kg/h';
         form8.Label8.Caption:='2022 kg / l';
         form8.Label9.Caption:='1990';
     end;

     if combobox1.text='Airbus A319' then
     begin
         verbrauch:=2885;
         form8.Label1.Caption:='Airbus A319';
         form8.Label2.Caption:='6500 Km';
         form8.Label3.Caption:='840 Km/h';
         form8.Label4.Caption:='34.10 m';
         form8.Label5.Caption:='33.80 m';
         form8.Label6.Caption:='12500 m';
         form8.Label7.Caption:='2885 kg/h';
         form8.Label8.Caption:='0 kg / 26760 l';
         form8.Label9.Caption:='1995';
     end;



Nunja, davon hab ich jetzt 70 drin stehen, und würde das ganze gerne etwas übersichtlicher haben. Und deswegen wollte ich fragen, ob das mit Arrays möglich ist, bzw. wie das mit Arrays funktionieren würde. :?: Achja, ich kenne mich mit Arrays null aus, deswegen frage ich. :x

Ich danke schonmal im vorraus :) :)
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Fr 06.08.04 12:24 
Hallo.

Was hälst du davon, entweder die Delphi-Hilfe zu bemühen oder ein Tutorial durchzuackern? Konkrete Fragen sind was Feines!!! :evil: :motz:

Riko Mielke hat folgendes geschrieben:
... Und die Emotionen haben sich da auch hochgeschaukelt! ... Verdammt noch mal!


Cu,
Udontknow


Zuletzt bearbeitet von Udontknow am Fr 06.08.04 12:26, insgesamt 1-mal bearbeitet
DelphiFreund
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 120

Win XP
D7 Enterprise
BeitragVerfasst: Fr 06.08.04 12:25 
Oder Schau am besten in die Delphi-Hilfe: Stichwort: array :wink:

Edit1: Ich würde sogar sagen, dass das am Besten erklärt ist.

_________________
Irren ist menschlich...
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Fr 06.08.04 12:26 
Habe ich was anderes geschrieben? :les: :wink:

PS: @Felux: Die Seite des Tuts beinhaltet auch Infos über records, die garantiert für dich auch interessant sind.


Zuletzt bearbeitet von Udontknow am Fr 06.08.04 12:28, insgesamt 1-mal bearbeitet
DelphiFreund
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 120

Win XP
D7 Enterprise
BeitragVerfasst: Fr 06.08.04 12:27 
Tschuldige,
als ich die Seite geladen hatte, war noch nichts da.

Gruß DelphiFreund

_________________
Irren ist menschlich...
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 06.08.04 12:37 
Über Tutorials gibt es auch hier in der Tutorial-Section was zu lesen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Fr 06.08.04 18:09 
Hallo,

schreib dir doch einfach eine Klasse für diese Daten.

Du kannst dann die Objekte mit in der ComboBox ablegen, denn die Eigenschaft Items ist ein TString und jeder Eintrag besteht aus einem String und einem Objekt.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TTMainform.ComboBox1Change(Sender: TObject);
var TempObject : TMyObject;
begin
   if ComboBox1.ItemIndex>-1 then
   begin
     TempObject:=ComboBox1.Items.object[Combobox1.Itemindex] as TMyObject;
     verbrauch:=TempObject.Verbrauch;
     form8.Label1.Caption:=TempObject.; // jetzt nur
(...)
  end;
end;
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Sa 07.08.04 01:21 
Dafür musst Du aber keine Klassen erstellen.

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:
type
 PFoobar = ^TFoobar;
 TFoobar = record
  a,b,c: integer;
 end;

...

var
 tmp: PFoobar;
begin
 new(tmp);
 tmp^.a := 123;
 tmp^.b := 41;
 tmp^.c := 43;

// Noch dem Objekt zuweisen (auf TObject casten(
end;

...

var
 tmp: TFoobar;
begin 
 ...
 tmp :=PFoobar(ComboBox1.Items.Objects[Combobox1.Itemindex])^;
end;

// und am ende auch wieder freigeben:

for i := 0 to ComboBox1.Count-1 do
 dispose(PFoobar(ComboBox1.Items.Objects[i]));


Die Methode dürfe was Speicherschonender sein. (Kann aber sein dass die eine oder andere Zeile nicht funzt, ich habs so aus dem Kopf gemacht)