Ich habe insgesamt vier Radiobuttons in meinem Formular, ich möchte die ersten zwei Buttons in einer Gruppe und die zweiten zwei in einer anderen Gruppe einstellen, damit ich eins aus der ersten Gruppe und eins aus der zweiten Gruppe überprüfen kann.
>Wenn ich jetzt einen aus der ersten Gruppe suche, wird der aus der zweiten Gruppe deaktiviert.
Ich habe mich immer gefragt, wie ich das machen soll und ich glaube, jetzt ist es an der Zeit, das herauszufinden. :)
Um aus der vertrauten Delphi 5-Hilfe zu zitieren:
Standardmäßig sind alle Optionsfelder gruppiert, die direkt in demselben Fenstersteuercontainer enthalten sind, z. B.
TRadioGroup
oderTPanel
. Beispielsweise können zwei Optionsfelder in einem Formular nur dann gleichzeitig überprüft werden, wenn sie sich in separaten Containern befinden, z. B. in zwei verschiedenen Gruppenfeldern.
Legen Sie zwei Schaltflächen auf ein Panel und die anderen beiden auf ein anderes Panel. Auf diese Weise werden sie als separate Gruppierungen behandelt. Ändern Sie die Flächenschrägen, um die Kante zu entfernen, und die vier Schaltflächen sehen für den Benutzer nicht so aus, als wären sie getrennt, falls Sie das möchten.
Ein RadioButton verfügt nicht wie der SpeedButton über eine GroupIndex-Eigenschaft.
Es wäre viel einfacher, wenn das der Fall wäre, denn Sie könnten Nummern verwenden, um Gruppen von RadioButtons zu erstellen, die nur mit denen derselben Nummer interagiert, die im GroupIndex eingestellt ist.
Sie können sie also nur innerhalb eines Gruppierungssteuerelements wie z. B. eines Panels ausgeben.
Aber Sie könnten immer Ihre eigene Version eines RadionButtons mit verschiedenen neuen Eigenschaften erstellen. :)
Aus diesem Grund verwenden wir Groupbox und Radioogruppen (können unter Standard-Steuerelemente gefunden werden). Ich empfehle Ihnen, 2 Groupboxes zu erstellen und jeweils 2 Radiobuttons zu setzen. Dann können Sie 2 Radiobuttons überprüfen.
Sie können auch einen Titel für die Groupbox auswählen. Dies ist eine sehr schöne Art, Ihr Bewerbungsformular zu organisieren.
Das ist großartig, wenn Optionsfelder derselben Gruppe in Zeilen oder Spalten stehen können, aber was ist, wenn Optionsfelder in einem X-Stil (oder auf eine komplexere Weise) angezeigt werden sollen:
%Vor%Einschränkungen für diesen X-Style-Sample habe ich gesetzt:
Es ist visuell in einem X-Stil erforderlich, also kann ich keine GroupBox mit diesem RadioButton einfügen, da GroupBox rechteckig und nicht diagonal ist.
Ich kenne keine Reparatur nur mit Standard-Komponenten, darunter gibt es einen Haken, um die Panels optisch transparent und auch durchklickbar zu machen, so dass beide Panels quadratisch sind, übereinander.
Aber was ist mit den Radio-Tasten sehr weit voneinander, mit vielen komplexen Komponenten, Flow-Panels, Memos, etc?
Die einzige Option ist die Verwendung von Komponenten von Drittanbietern (zumindest bis zu dem, was ich weiß) oder eine Menge harter Arbeit:
Zu viel Arbeit für etwas, das auf einer einfachen Eigenschaft wie RadioGroupIndex hätte implementiert werden können, wenn ihm ein Wert von 0 zugewiesen wurde und dann so funktioniert, wie sie jetzt arbeiten, ansonsten nur die für diese Gruppe deaktivieren ... wie in den Hauptmenüs.