Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array (https://www.delphipraxis.net/88821-array.html)

Problemmacher 21. Mär 2007 16:00


Array
 
Schönen Tag Liebe User,

hab bereits die Suche benutzt aber leider nichts finden können,
ebenso wenig in der Delphi Hilfe.

Ist wahrscheinlich eine einfache Frage, doch wie kann ich
abfragen ob etwas in einem Array ist? Also es geht darum,
dass ich drei Buchstaben per Zufall generiere und dann jedoch
aufgrund von "doppelten Buchstaben" abfragen will, ob es nicht
schon im Array ist und er daher so lange wiederholen soll,
bis er einen noch nicht generierten Buchstaben erfasst.

Delphi-Quellcode:
repeat
        buchstabe := random(48) + 1;
    until not (buchstabe in BuchstabenGesamt)
        Buchstabengesamt[i] := buchstabe;
Bekomme in der "until not"-Zeile einen Fehler, der Operator wäre
auf den Operandentyp nicht anwendbar? BuchstabenGesamt ist ein Array
vom Typ Byte, buchstabe ist ebenfalls vom Typ Byte.

Schonmal Danle für eure Hilfe!
-------

EDIT: Ebenso würde ich gerne fragen ...

Ich hab 20 Checkboxen und möchte die Caption von denen speichern,
welche angeklickt wurden. Wie mache ich das am sinnvollsten?

Neutral General 21. Mär 2007 16:07

Re: Array
 
Hi Problemmacher,

Du musst dir selbst eine Funktion schreiben in dem du das Array und das nachdem du suchst übergibst... Du gehst mit einer for-Schleife durch dein Array und guckst mit if ob Eintrag[i] = ParameterEigenschaft. Wenn das der Fall ist gibst du true zurück, ansonsten false.

Pseudocode:

Code:
Funktion IstImArray(Was: TypVonWas; Wo: Array): Boolean;
ANFANG
  Ergebnis = false;
  ZÄHLE VON 0 BIS High(Array) UND TUE
    WENN Was = Wo[Zählvariable] DANN
    ANFANG
      Ergebnis = true;
      FunktionVerlassen;
    ENDE;
ENDE;
Das mit den Captions machst du am besten mit Delphi-Referenz durchsuchenFindComponent und einer for-Schleife.

Gruß
Neutral General

Problemmacher 21. Mär 2007 16:11

Re: Array
 
Die For-Schleife hab ich ja bereits, jedoch weiß ich dann nicht
wie ich abfrage ob es schon drinn ist ...

Der Code vor dem Code von oben ...

Delphi-Quellcode:
for i := 1 to 3 do
    BuchstabenGesamt[i] := 0;
  randomize;
  for i := 1 to 3 do
  begin [...]

Nuclear-Ping 21. Mär 2007 16:13

Re: Array
 
Du hast eine For-Schleife, ja. Aber nicht die For-Schleife (bzw. Funktion) vom General.

Ein Tip noch zu den Checkboxen:
Delphi-Quellcode:
for a := 0 to ContainerDerCheckboxen.ComponentCount - 1 do
  if (ContainerDerCheckboxen.Components[a] is TCheckBox) and
     (ContainerDerCheckboxen.Components[a] as TCheckBox).Checked then
    ...

Matze 21. Mär 2007 16:17

Re: Array
 
Zitat:

Zitat von Problemmacher
Die For-Schleife hab ich ja bereits, jedoch weiß ich dann nicht
wie ich abfrage ob es schon drinn ist ...

Delphi-Quellcode:
for i := Low(DeinArray) to High(DeinArray) do // oder von 0 an *grübel*
begin
  if DeinArray[i] = 'DeinString' then
  begin
    result := true;
    break;
  end;
end;

Problemmacher 21. Mär 2007 20:02

Re: Array
 
Kann ich eigentlich auch irgendwie ganz vielen Werten
auf einmal den gleichen Wert zuweisen? Hab nämlich vor
50 Werte auf einen "Schlag" zu leeren bzw. deren Inhalt
und alles einzeln zu schreiben wäre eine sehr aufwendige Prozedur ...

Nuclear-Ping 21. Mär 2007 20:16

Re: Array
 
Wenn es ein Array ist, dann mit ZeroMemory oder FillChar.


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