Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Array und negativ werte. (https://www.delphipraxis.net/192551-array-und-negativ-werte.html)

EWeiss 30. Apr 2017 15:12


Array und negativ werte.
 
Ich möchte ein Array mit negativ werten anlegen.
bsp.

Delphi-Quellcode:
const
 a = -1;
 b = -2;
 c = -3;
 d = -4;
 e = -5;

type
  Sprite = record
    x: Integer;
    y: Integer;
    w: Integer;
    h: Integer;
    visible: Bool;
  end;
  TSprite = Sprite;
  PSprite = ^TSprite;

var
  sp: Array of TSprite
Delphi-Quellcode:
  if sp[1].x < 40 then
    sp[a].visible := true
Delphi-Quellcode:
//sp[a].visible.. Array < 0 gleicht [DCC Fehler] Konstantenausdruck verletzt untere Grenzen.


logisch aber wie kann ich das trotzdem verwirklichen?

gruss

a.def 30. Apr 2017 15:20

AW: Array und negativ werte.
 
Super dumme Idee aber...

Delphi-Quellcode:
sp[(a*-1) - 1].visible := true
? :lol:

EWeiss 30. Apr 2017 15:24

AW: Array und negativ werte.
 
Zitat:

Zitat von a.def (Beitrag 1369494)
Super dumme Idee aber...

Delphi-Quellcode:
sp[(a*-1) - 1].visible := true
? :lol:

Was hat das mit dumm zu tun?
Ich möchte das meine HÖCHSTEN werte 0 betragen.. Was ist da also Dumm dran?
Es hat seine Berechtigung im weiteren Verlauf meines Codes.

Du willst werte die Fest zugewiesen wurden (CONST) mit a*-1 verändern? LOL (dumme Idee)

gruss

a.def 30. Apr 2017 15:27

AW: Array und negativ werte.
 
Zitat:

Was ist da also Dumm dran?
MEINE Idee mit dem *-1-1 meine ich ist eventuell dumm. Nicht dein Vorhaben.

Zitat:

Du willst werte die Fest zugewiesen wurden (CONST) mit a*-1 verändern? LOL (dumme Idee)
Der Wert der Konstanten wird nicht verändert.

EWeiss 30. Apr 2017 15:40

AW: Array und negativ werte.
 
Zitat:

MEINE Idee mit dem *-1-1 meine ich ist eventuell dumm. Nicht dein Vorhaben.
Entschuldige dann habe ich das falsch aufgefasst. ;)

Nur in dem Fall wenn ich das richtig verstehe könnte ich direkt die Const auf diese weise auslegen.
Delphi-Quellcode:
const
  a = 1;
  b = 2;
  c = 3;
  d = 4;
  e = 5;
Das Problem dabei ist nur sp[0] ist das in der ZOrder am höchsten angeordnete Bitmap.
Die anderen 4 müssen darunter liegen.

Anderes bsp:

Delphi-Quellcode:
const
  LBOUND = e // also -5

SetLength(sp, 1); // höchste Array Eintrag. "0"

for x := LBOUND to High(sp) do
begin
  if sp(x).hBitmap then
  begin
    DeleteObject(sp(x).hBitmap);
    sp[x].hBitmap := 0;
  end;
end;
oder..
Delphi-Quellcode:
for I := -1 downto LBOUND do


Eventuell geht das mit Delphi nicht.
Früher mit VB6 war das kein Problem. (Array mit - werten)

Sollte es nicht gehen muss ich mir mit der ZOrder etwas anderes überlegen.


gruss

Olli73 30. Apr 2017 15:48

AW: Array und negativ werte.
 
Was willst du eigentlich damit erreichen?

EWeiss 30. Apr 2017 15:50

AW: Array und negativ werte.
 
Zitat:

Zitat von Olli73 (Beitrag 1369498)
Was willst du eigentlich damit erreichen?

siehe editierten Beitrag.

gruss

Michael II 30. Apr 2017 15:57

AW: Array und negativ werte.
 
Du kannst doch das Problem mit den Indices "ausserhalb" der eckigen Klammern regeln.
Ich sehe hier keine Notwendigkeit negative Indices zu verwenden.

Und wenn du's doch tun willst und du bereits jetzt weisst, dass du nur Elemente von -5..-1 unterbringen willst oder zum Beispiel von -10..10, dann verwende doch einfach einen statischen Array:

sp : array[-10..10] of TSprite;

Dann kann der Compiler das für dich regeln :-D.

EWeiss 30. Apr 2017 16:01

AW: Array und negativ werte.
 
Zitat:

Zitat von Michael II (Beitrag 1369501)
Du kannst doch das Problem mit den Indices "ausserhalb" der eckigen Klammern regeln.
Ich sehe hier keine Notwendigkeit negative Indices zu verwenden.

Und wenn du's doch tun willst und du bereits jetzt weisst, dass du nur Elemente von -5..-1 unterbringen willst oder zum Beispiel von -10..10, dann verwende doch einfach einen statischen Array:

sp : array[-10..10] of TSprite;

Dann kann der Compiler das für dich regeln :-D.

Jep das wäre eine alternative.. ;)
Werde es mal testen.


Zurück das geht nicht.
-5 > 0 ist ein Array für die Bitmaps die ich zuweisen will.

sp[x] kann aber größer werden.. abhängig von den Icons die auf den Desktop liegen.
Werde wohl positive werte nehmen müssen.. Hmmm.

Danke gruss

Michael II 30. Apr 2017 16:19

AW: Array und negativ werte.
 
Nur so aus Neugierde... hast du mal Graphics32 verwendet? Oder schreibst du etwas für die fmx Welt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 Uhr.
Seite 1 von 3  1 23      

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