Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Array of Boolean (https://www.delphipraxis.net/186641-array-boolean.html)

jeng37 18. Sep 2015 16:09

Array of Boolean
 
Hallo,

Ist es möglich ein 2d array separat zu befüllen?

Delphi-Quellcode:

TestArray: array[0 .. 15 ,0 .. 7] of Boolean;

for x := 0 to 15 do
  TestArray[Y,nil] := False; // das klappt nicht
Gibt es da eine möglichkeit ohne dass ich zwei separate arrays anlegen muss?

Danke.

mkinzler 18. Sep 2015 16:20

AW: Array of Boolean
 
Was meinst Du mit separat? Es handelt sich um ein Gitter, welcher Index sollte NIL sein?

Uwe Raabe 18. Sep 2015 16:21

AW: Array of Boolean
 
Was ist Y?
Wo verwendest du X?
Was soll das nil bedeuten?

jeng37 18. Sep 2015 16:29

AW: Array of Boolean
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1316272)
Was ist Y?
Wo verwendest du X?
Was soll das nil bedeuten?

Hab mich vertippt..

Y wird auf true gesetzt wenn die entsprechende Radiobox angewählt wird.
I wird von einer checkbox auf True gesetzt.

Delphi-Quellcode:
procedure TForm1.RadioButtonClick(Sender: TObject);
Var
  I, X,Y: integer;
  Line: String;
 
Begin
  Line := 'RadionState=';
  Y := TRadioButton(Sender).Tag;
  TestArray[Y,Nil] := True; // hier das problem.

 for i := 0 to 7 do
  if TestArray[Y,i] then
          Line := Line +'FF,'
   else
      Line := Line +'00,';
      Memo1.Lines.Add(Line);
End;

procedure TForm1.ckPortClick(Sender: TObject);
  var
    ThisCheckBox: TCheckBox;
begin

  ThisCheckBox := Sender as TCheckBox;
  TestArray[Y,ThisCheckBox.Tag] := ThisCheckBox.Checked;
  SendStateToHW;
end;

procedure TForm1.SendStateToHW;
  var
    i,y: Integer;
    Line: String;
begin

  Line := 'NewState=';
 for y:= 0 to 15 do
    begin
      for i := 0 to 7 do
       if TestArray[y,i] then
       Line := Line +'FF,'
   else
      Line := Line +'00,';
      Memo1.Lines.Add(Line);
   end;

end;

Uwe Raabe 18. Sep 2015 16:32

AW: Array of Boolean
 
Was willst du mit
Delphi-Quellcode:
TestArray[Y,Nil] := True;
bezwecken?

Der zweite Index des Arrays ist als 0..7 deklariert. Was soll also das nil dort bedeuten?

jeng37 18. Sep 2015 16:39

AW: Array of Boolean
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1316275)
Was willst du mit
Delphi-Quellcode:
TestArray[Y,Nil] := True;
bezwecken?

Der zweite Index des Arrays ist als 0..7 deklariert. Was soll also das nil dort bedeuten?

Ich möchte in dem moment da nichts übergeben.

Ach du liebe....

Ich habs bemerkt, ich brauche das ja gar nicht.
Ich wollte an sich dan den radiobutton.tag ablegen, das brauche ich ja garnicht.
Ich speichere einfach nur den gedrückten radiobutton in einer public definierten variable.


Danke...

p80286 18. Sep 2015 16:51

AW: Array of Boolean
 
Was auch immer Du da erreichen willst..
Eine Möglichkeit durch die Hintertüre wäre es z.B. mit
Delphi-Quellcode:
Fillchar
zu arbeiten. Aber empfehlenswert ist das nicht unbedingt.
Was spricht denn gegen
Delphi-Quellcode:
for i:=0 to 15 do
  for j:=0 to 7 do
    TestArray[i,j]:=false;
?

Gruß
K-H

Perlsau 18. Sep 2015 18:22

AW: Array of Boolean
 
Zitat:

Zitat von jeng37 (Beitrag 1316268)
Delphi-Quellcode:
TestArray: array[0 .. 15 ,0 .. 7] of Boolean;

Also irgendwie hast du wohl was falsch verstanden ... ein zweidimensionales Array ist wie eine Tabelle mit Spalten und Zeilen. Nehmen wir an, die erste Dimension (x) wären die Spalten und die zweite (y) die Zeilen. Dann wird eine Zelle oder ein Wert in diesem Array dadurch lokalisiert, daß man x und y angibt:
Delphi-Quellcode:
Testarray[14,3] := True;
Testarray[11,6] := False;
Was anderes kann man diesen Zellen nicht zuweisen. Du kannst auch keine Zelle auswählen, indem du nur einen der beiden Dimensionen angibst, es müssen immer beide angegeben sein.

jeng37 19. Sep 2015 17:45

AW: Array of Boolean
 
Danke,

Hab den Wald vor lauter Bäumen nicht mehr gesehen.:oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:47 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