AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array

Ein Thema von Problemmacher · begonnen am 21. Mär 2007 · letzter Beitrag vom 21. Mär 2007
Antwort Antwort
Problemmacher

Registriert seit: 14. Nov 2006
43 Beiträge
 
#1

Array

  Alt 21. Mär 2007, 17:00
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?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Array

  Alt 21. Mär 2007, 17:07
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
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Problemmacher

Registriert seit: 14. Nov 2006
43 Beiträge
 
#3

Re: Array

  Alt 21. Mär 2007, 17:11
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 [...]
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#4

Re: Array

  Alt 21. Mär 2007, 17:13
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
    ...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Array

  Alt 21. Mär 2007, 17:17
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] = 'DeinStringthen
  begin
    result := true;
    break;
  end;
end;
  Mit Zitat antworten Zitat
Problemmacher

Registriert seit: 14. Nov 2006
43 Beiträge
 
#6

Re: Array

  Alt 21. Mär 2007, 21:02
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 ...
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#7

Re: Array

  Alt 21. Mär 2007, 21:16
Wenn es ein Array ist, dann mit ZeroMemory oder FillChar.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 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