[Inhalt] [Zurück] [Weiter] [Thema] [Index]

NewMultiListe()


Syntax:

NewMultiListe (S name, Real x, Real y, Real breite, Real hoehe, S handler, S inhalte|relation [, S keyfeld, S dispfeld])
name: Name der Liste
x: Koordinaten in Pixeln, relativ zur linken
y: oberen Ecke des Windows
breite: Breite der Liste in Pixeln
hoehe: Höhe der offenen Liste in Pixeln
handler: Name der Handler-Prozedur oder ""
inhalt: mit Leerzeichen getrennte Inhalte
oder:
relation, keyfeld, dispfeld: Str der Mem-Relation, Schlüsselfeld(er), Darst.-feld(er)

Beispiel:

NewMultiListe ("Farbe", 20,270, 100, 200, "", Str(memrel), "Nummer", "Name")
NewMultiListe ("Farbe", 20,270, 100, 200, "", "Rot Grün \qKeine Farbe\q")

Beschreibung:

Erzeugt auf dem aktuellen AGWindow eine neue Liste, in der mehrere Einträge gleichzeitig selektiert sein können. Der Benutzer selektiert diese mit gedrückter Strg-Taste.

Es gibt zwei weitere Prozeduren, um Listen zu derstellen: NewListe() und NewDBListe().

Der Aufruf hat zwei Formen: aus einem String oder aus einer Relation.

Im ersten Fall enthält inhalt eine mit Leerzeichen getrennte Liste von Begriffen. Wenn ein Begriff ein Leerzeichen enthält, muss er mit \q\q umfasst werden (siehe Beispiel oben). Die Einträge werden in der vorgegebenen Reihenfolge selektiert.

Wenn die Relation, das Schlüsselfeld und das Darstellungsfeld angegeben sind, wird der erste String als String einer Mem-Relation gewertet. keyfeld und dispfeld können auch mehrere mit + getrennte Feldnamen enthalten, z.B. Name+Ort. Standardmäßig wird die Liste nach dem dargestellten Inhalt sortiert. Soll die Liste nicht sortiert werden, muss man den Str() der Mem-Relation in Kleinbuchstaben wandeln (mit LowCase(Str(memrel))).

Kommunikation mit Azur

Einlesen

Wenn der Handler einen Parameter vom Typ String und Namen der Liste enthält, empfängt der Handler damit den Key des zuletzt angeklickten Eintrags (unabhängig vom Drücken der Strg-Taste). Wenn dieser Parameter ein Array ist, werden in diesem alle Einträge der Liste empfangen; der zuletzt gewählte Element ist über CURKEY/CURVAL erreichbar.

Wenn der Handler einen Parameter von Typ Bool und mit dem Namen der Liste mit angehängtem _Ctrl hat, wird in diesem abgelegt, ob der Benutzer beim Anklicken des Elements die Strg-Taste gedrückt hat. Beispiel

   Handler (Array Farbe, Bool Farbe_Ctrl)
	

Mit ImportVar() kann die Liste ausgelesen werden. Zu den in NewListe() beschriebenen, gibt es die Möglichkeit, alle selektierten Einträge abzufragen. Dazu wird dem Namen des Elements ein =MULTI angehängt. Beispiel:

   Handler ()
      selArr := StrToArray(ImportVar("Farbe=MULTI"))
	

Ausgeben

In NewListe() ist beschrieben, wie die Liste mittels ExportVar verändert werden kann. Zusätzlich besteht bei MultiListen die Möglichkeit, über diesen Weg die selektierten Elemente zu setzen. Beispiel:

   selArr := StrSplit("Rot Grün Schwarz Grün", " ")
   ExportVar ("Farbe", selArr)
	

Wenn im Beispiel der Benutzer die Elemente Grün und Keine Farbe selektiert hatte, dann sind nach dem ExportVar oben die Elemente Rot und Grün selektiert.



toposoft 28.10.2024