RadioGroup Auswahl zurücksetzen?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Bergmensch
Beiträge: 13
Registriert: Do 6. Mai 2021, 18:16

RadioGroup Auswahl zurücksetzen?

Beitrag von Bergmensch »

Hallo!
Erstelle die Items einer RadioGroup dynamisch und nach einer erfilgten Auswahl
möchte ich den gewählten RadioButton wieder zurücksetzen ("unselektieren").
Mit

Code: Alles auswählen

RadioGroup1.ItemIndex := -1;
gibt's einen "List index (-1) out of bounds" Error.

Bitte um eure Inputs!

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: RadioGroup Auswahl zurücksetzen?

Beitrag von theo »

Kann ich nicht bestätigen, läuft bei mir
Lazarus 2.3.0 (rev main-2_3-497-gf8bc3ff316) FPC 3.2.2 x86_64-linux-gtk2

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: RadioGroup Auswahl zurücksetzen?

Beitrag von Winni »

Hi!

Da hast Du irgendwo anders einen Bug.

Den ItemIndex auf -1 zu setzen, das hat noch nie Ärger gemacht.

Zeig mal etwas mehr Code sowie Zeile und Spalte der Fehlermeldung.

Winni

Bergmensch
Beiträge: 13
Registriert: Do 6. Mai 2021, 18:16

Re: RadioGroup Auswahl zurücksetzen?

Beitrag von Bergmensch »

Ach ja, habe ich doch glatt vergessen:
Lazarus 2.2.0; FPC 3.2.2; Windows 10

Bergmensch
Beiträge: 13
Registriert: Do 6. Mai 2021, 18:16

Re: RadioGroup Auswahl zurücksetzen?

Beitrag von Bergmensch »

Nachtrag:
Habe jetzt folgendes ausprobiert:
Eine RadioGroup mit statisch zugewiesenen Items (im Designer) und hier Itemindex auf -1 funktioniert!
Bei der dynamisch erstellten RadioGroup (Items mit einer Verzeichnisstruktur bespielt) gibt's den Error.
Hier werden die Items mit

Code: Alles auswählen

RadioGroup1.Items.Assign(LTStringList);
erzeugt.

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: RadioGroup Auswahl zurücksetzen?

Beitrag von wp_xyz »

Ohne etwas ausprobiert zu haben, bin ich relativ sicher, dass das Zuweisen von ItemIndex auf -1 als solches immer funktioniert. Es sei denn, es gibt z.B. einen OnChange Handler, in dem nicht geprüft wird, ob ItemIndex -1 ist. Oder sowas ähnliches.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1435
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: RadioGroup Auswahl zurücksetzen?

Beitrag von fliegermichl »

Kurz getestet:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
begin
  rg.items.add('Eins');
  rg.items.add('Zwei');
  rg.ItemIndex := 0;
  rg.ItemIndex := 1;
  rg.ItemIndex := -1;
end;
funktioniert tadellos.

Bergmensch
Beiträge: 13
Registriert: Do 6. Mai 2021, 18:16

Re: RadioGroup Auswahl zurücksetzen?

Beitrag von Bergmensch »

Hallo!
Derzeitiger Stand der Dinge:
Ich dachte, der Error steht irgendwie in Verbindung mit dem

Code: Alles auswählen

RadioGroup1.Items.Assign(LTStringList);
Deshalb hab' ich die RadioGroup nun "zu Fuß" befüllt, wie im Beispiel von fliegermichl.
Allerdings bekomme ich auch hierbei einen "List index (-1) out of bounds" Error.

Gibt es eigentlich noch eine andere Möglichkeit, die Auswahl einer RadioGroup aufzuheben,
so, wie z.B.:

Code: Alles auswählen

.checked:=False;
bei einem einzelnen RadioButton?

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: RadioGroup Auswahl zurücksetzen?

Beitrag von Winni »

Bergmensch hat geschrieben:
Di 15. Feb 2022, 11:03

Deshalb hab' ich die RadioGroup nun "zu Fuß" befüllt, wie im Beispiel von fliegermichl.
Allerdings bekomme ich auch hierbei einen "List index (-1) out of bounds" Error.
Das haben Dir doch nun schon mehrere Menschen gesagt, dass der Fehler woanders liegen muss. Aber solange Du Deinen Code nicht zeigst, können wir auch nicht helfen.

Insbesondere würde mich die dynamische Erzeugung der RadioGroup interessieren. Ich vermute, dass der Fehler dort liegt.

Winni

Bergmensch
Beiträge: 13
Registriert: Do 6. Mai 2021, 18:16

Re: RadioGroup Auswahl zurücksetzen?

Beitrag von Bergmensch »

Hallo allerseits,
darf ich nochmal auf meine letzte Frage zurückkommen? (ich vermute, dass diese auch ohne großartiges Listing von Code zu beantworten ist :wink: ):
Gibt es eigentlich noch eine andere Möglichkeit, die Auswahl einer RadioGroup aufzuheben,
so, wie z.B.:

Code: Alles auswählen

.checked:=False;
bei einem einzelnen RadioButton?

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: RadioGroup Auswahl zurücksetzen?

Beitrag von wp_xyz »

Bergmensch hat geschrieben:
Di 15. Feb 2022, 11:54
ich vermute, dass diese auch ohne großartiges Listing von Code zu beantworten ist
Nein.

Abgesehen davon, dass man an die einzelnen Buttons einer Radiogroup gar nicht so einfach rankommt, kann der Fehler in deiner Programmlogik schon passiert sein, oder gar nicht davon abhängen. Und der Eingriff in eine nicht öffentliche innere Struktur einer Klasse (die einzelnen Buttons) kann unbeahnte Nebenwirkungen haben.

Also, wenn dir daran liegt, dass die Ursache des Fehlers gefunden wird, musst du uns den Quellcode zeigen. Aber bitte nicht den das ganzen Projekts - ich habe keine Lust, unbezahlt und in meiner Freizeit den Quellcode riesiger, mir unverständlicher Projekte zu durchsuchen. Streiche alles raus, was nichts mit dem Fehler zu tun hat. Die Mühe musst du dir schon machen. In der Regel findest du dabei den Fehler sogar selber.

Antworten