Autor |
Beitrag |
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Fr 21.01.05 12:31
Hallo,
wenn ich folgenden array defniere habe ich ja in jeder spalte den gleichen datentyp:
MenuItems: array of array of TMenuItem; richtig ?
und nun wollte ich gerne das die erste spalte vom Typ Integer ist. also sowas:
Delphi-Quelltext 1:
| MenuItems: array of integer array of TMenuItem; |
gibst es möglickeiten für sowas ? Moderiert von Tino: Topic aus Sonstiges verschoben am Fr 21.01.2005 um 13:02
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Fr 21.01.05 12:40
So spontan würde mir da ein Record einfallen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| TMyMenuItem = record I: Integer; Items: array of TMenuItem end;
MenuItems: array of TMyMenuItem; |
Oder du missbrauchst den Pointer von TMenuItem als Integer. Das kann aber gefährlich enden, wenn du dann aus versehen als TMenuItem zugreifst.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 21.01.05 12:43
_________________ 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.
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Fr 21.01.05 15:16
naja ich dachte mir nur: wenn bei spalten von typ TMenuItem sind kostet es doch mehr speicher und der erste typ braucht ja nur ein Integer sein.....aber du hast recht ich lasse es sein 
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Fr 21.01.05 15:31
Kneif mich einer wenn ich mich irre! Aber TMenuItem ist doch ne Klasse! Wenn du ein solches Array anlegst befinden sich dort drin doch nur Pointer. Und die belegen alle 4 Bytes. Also genau wie ein normaler Integer. Das TMenuItem belegt doch erst mehr Speicher, wenn du die Klasse angelegt hast.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Fr 21.01.05 15:40
nicht ganzs TMenuItem ist ein record den ich defniert habe ich nutze nicht die klasse TMenuItem *G*
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Fr 21.01.05 15:48
Da die TMenuItem eine recht bekannte VCL Klasse ist, wäre eine ganz nützliche Grundinformation gewesen.
Damit fallen nämlich schon einmal alle zweiten Vorschläge weg.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
MitschL
      
Beiträge: 211
Win 98 SE, Win 2000
D5 Pers, D6 Pers und D7 Pro
|
Verfasst: Fr 21.01.05 16:10
Wenn dein TMenuItem schon ein Record ist, warum packst Du den Integer nicht da mit rein?
gegrüßt!
_________________ "Bloßes Ignorieren ist noch keine Toleranz." (Theodor Fontane)
|
|