Autor Beitrag
Joachim Knutson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Mi 31.01.07 13:23 
hi,

ich habe ein array deklariert, welches vom typ boolean ist. (delphi 6)
dieses array hat einen index von 3, im moment. (doch es soll später ein bisschen größer sein)

jetz habe ich den einzelnen indexen bei einer bestimmten aktion den wert false zugewiesen.
danach möchte ich abfragen, ob das gesammte array false ist, denn dann soll er etwas bestimmtes tun.
wie frage ich ob der gesammte inhalt auf false steht?
Coder
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1383
Erhaltene Danke: 1

WinXP
D2005 PE
BeitragVerfasst: Mi 31.01.07 13:26 
mit einer for-Schleife
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var i: Integer;
    AllFalse: Boolean;

AllFalse := true;
for i:=0 to Length(aArray)-1 do
  if aArray[i] = true then
  begin
    AllFalse := false;
    Break;
  end;


MfG
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 31.01.07 13:37 
Moin!

Alternative: ;)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var
  i: Integer;  
  AllFalse: Boolean;  
begin 
  AllFalse := True;  
  i := 0;
  while ( (i < Length(aArray)) and AllFalse ) do begin
    AllFalse := aArray[i];
    Inc(i);
  end;
  if (AllFalse) then
    ShowMessage('Array ist "leer"!');

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Joachim Knutson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Mi 31.01.07 13:57 
also ich glaub ich verstehe eure vorschläge, doch ich weiss noch nicht genau ob ich das so umsetzen kann.


ich schreib euch mal etwas genauer was ich für ein wuelltext hab.

ich habe ein bild, was man mit w,s,a,d steuern kann. es gibt auf der form mehrere bitmaps (die bei start erstelt werden), die das bild nicht durchlaufen kann, also kollisionen.
nun habe ich diese balken mit einem array erstellt...

n = ist der index vom array für die balken
xb = array was die x werte der balken enthält
yb = array was die y werte der balken enthält


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var koll:boolean;

procedure tform1.dkoll;
begin
for n:=1 to 3 do                       
  if (image1.Left + image1.Width < xb[n] ) or (image1.Left > xb[n]+ 100or
     (image1.Top + image1.Height < yb[n]) or (image1.top > yb[n] + 15)
   then  koll:=false else koll:=true;

 if not koll then
   cha.left:=cha.left + 1;
koll:=false;
end;


image1.Left > xb[n]+ 100 das ist da, weil alle balken 100 pixel lang sein sollen.
perry5
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 102



BeitragVerfasst: Mi 31.01.07 16:26 
Du brauchst das Array dann ja nciht ganz zu testen. Einfach eine Varaible KomplettFalse oder so machen, die am Anfang auf true setzen und immer, wenn du das Array duchgehts und es einmal true ist, diese Variable auf false setzen. Achja, bei false solltest du KomplettFAlse keinesfall auf true setzen, sonst gehts nicht.

Und evtl. solltest du nicht 2 Arrays erstellen, sondern ein X und ein Y Wert in einem record oder einer class zusammenfassen und davon dann ein Array machen. Ich würde record nehmen, weil man da den Konstruktor nciht aufrufen muss.
Joachim Knutson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Do 01.02.07 09:43 
also daran habe ich auch schon gedacht, das array wegzu lassen und nur eine variable zu nehmen.
doch habe ich keine ahnung wie ein racord funktioniert.
ich habe schon in der delphihilfe gesucht und es glaube ich geschafft zu deklarieren, aber weiss nun nicht wie ich es unsetzen soll.

also wie benutze ich das record?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
type
  tkoordinaten=record
     xb,yb: shortint;
  end;
  tpruefen= array [0..3of tkoordinaten;

so sieht meine deklaration aus.
freak4fun
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 604
Erhaltene Danke: 4

Win 7 Pro
VS 2013 Express, Delphi, C#, PHP, Java
BeitragVerfasst: Do 01.02.07 09:58 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
type
  TKoordinate = record
     Punkt: TPoint; // hat schon .x und .y
     Gueltig: Boolean; // True / False
  end;

  TKoordinaten = array [0..3of TKoordinate;

  ...

  TKoordinaten[0].Punkt.x := 100;
  TKoordinaten[0].Punkt.y := 100;
  TKoordinaten[0].Gueltig := True;

  if (TKoordinaten[0].Gueltig) then
    begin
      
      ...
    end
  else ...


Vielleicht hilft dir ja das weiter. :D

MfG
freak

_________________
"Ich werde auf GAR KEINEN Fall…!" - "Keks?" - "Okay, ich tu's."
i++; // zaehler i um 1 erhoehen