Hallo,
ich habe vor einigen Tagen Lazarus im Internet gefunden und runtergeladen. Free Pascal beherrsche ich für meine Zwecke ganz gut, bei Lazarus komme ich jedoch jetzt an einem Punkt nicht weiter.
In meinem Programm sollen einige Fragen beantwortet werden, dazu habe ich RadioButtons in GroupBoxen vorgesehen. Da ich jedoch jetzt noch nicht weiß, wie viele Fragen es letztendlich werden, in welcher Reihenfolge sie sein sollen, und wie sie ausgerichtet werden sollen, habe ich mich entschlossen die GroupBoxen und RadioButtons anstatt manuell durch Ziehen auf die Form, mit einer Prozedur im Code zu erstellen. Die Anordnung, die Positionen, die Großen und die Benennungen, können so schneller von mir verändert werden.
Jedoch taucht dabei folgendes Problem auf: Die RadioButtons gehören alle zur selben Gruppe. Wenn ich das Programm ausführe, lässt sich maximal nur ein RadioButton insgesamt aktivieren, anstatt je einer für eine Frage.
Mittels folgender Befehle habe ich die GroupBoxen und RadioButtons erstellt:
GroupBox:=TGroupBox.Create(Self);
GroupBox.parent:=self;
RadioButton[i,i2]:=TRadioButton.Create(self);
RadioButton[i,i2].parent:=self;
Desweiteren habe ich mit weiteren Befehlen die RadioButtons so positioniert, dass sie sich innerhalb der jeweils für sie vorgesehenen GroupBoxen befinden, aber das reicht, anders als bei der manuellen Erstellung, nicht aus, um sie tatsächlich zu gruppieren.
Frage: Mit welchen Befehlen kann man im Code RadioButtons gruppieren, sodass sich jeweils von jeder Gruppe einer aktivieren lässt?
Ich hoffe, Ihr könnt mir weiter helfen.
Gruppierung von RadioButtons mittels Code
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: Gruppierung von RadioButtons mittels Code
TRadioGroup nimmt dir das Positionieren ab (und einige andere Probleme). Ansonsten gibt es die Eigenschaften Align (alTop) und Left/Top.
-
- Beiträge: 61
- Registriert: Di 11. Sep 2007, 16:59
- OS, Lazarus, FPC: Ubuntu Maverick (L 0.9.28.2-10, FPC 2.4.0)
- CPU-Target: 32Bit
- Wohnort: Lage
- Kontaktdaten:
Re: Gruppierung von RadioButtons mittels Code
Setz den Parent des Radiobuttons nicht auf das Formular (self) sondern auf die Groupbox, alsoFrage: Mit welchen Befehlen kann man im Code RadioButtons gruppieren, sodass sich jeweils von jeder Gruppe einer aktivieren lässt?
RadioButton[i,i2].parent:=GroupBox;
dann sollte es funktionieren.
greetz, Dets ...
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Gruppierung von RadioButtons mittels Code
Eine Radiogrub wäre aber einfacher. Dort erzeugst du so Einträge:
und mit Radiogrub1.ItemIndex kannst du dann den Markierten Index rauß bekommen.
Hinweis: Viele Komponenten die Mehrere Einträge anzeigen nutzen meistens dazu eine TStringList. Z.B. die ListBox, die RadioGrub, die CheckListBox, die ComboBox, das Memo, das SynEdit/SynMemo fallen mir als Beispiele an. Es gibt bestimmt noch mehr. Jedenfalls ist die Handhabug bei diesen Komponenten immer die gleiche. Es wird auch meistens ein ItemIndex geben oder ein PageIndex, beim NoteBook ist das z.b. der Fall.
Code: Alles auswählen
Radiogrub1.Items.Add('Eintrag1');
Radiogrub1.Items.Add('Eintrag2');
Hinweis: Viele Komponenten die Mehrere Einträge anzeigen nutzen meistens dazu eine TStringList. Z.B. die ListBox, die RadioGrub, die CheckListBox, die ComboBox, das Memo, das SynEdit/SynMemo fallen mir als Beispiele an. Es gibt bestimmt noch mehr. Jedenfalls ist die Handhabug bei diesen Komponenten immer die gleiche. Es wird auch meistens ein ItemIndex geben oder ein PageIndex, beim NoteBook ist das z.b. der Fall.
MFG
Michael Springwald
Michael Springwald
Re: Gruppierung von RadioButtons mittels Code
Dets hat geschrieben:Setz den Parent des Radiobuttons nicht auf das Formular (self) sondern auf die Groupbox, alsoFrage: Mit welchen Befehlen kann man im Code RadioButtons gruppieren, sodass sich jeweils von jeder Gruppe einer aktivieren lässt?
RadioButton[i,i2].parent:=GroupBox;
dann sollte es funktionieren.
greetz, Dets ...
Danke. Hat funktioniert.