![]() |
scrollbox -> radiobuttons aktivieren
hoffe mir kan jemand behilflich sein hab schon überall gesucht aber nichts gefunden.
hab mehrere radiobuttons in einer scrollbox aber wie kann ich die radiobuttons als checked setzen mit vor und zurück buttons die entweder den nächsten oder den vorigen radiobutton auswählen sollen, krieg das aber nicht hin. mit radiogroup ist es kein problem kann mit x:=radiogroup1.ItemIndex; radiogroup1.ItemIndex:=x+1; oder -1 den nächsten oder vorigen auswählen. aber wie mache ich das mit einer scrollbox, ich kann auch nicht auf ein radiogroup ausweichen brauche ne scrollbox. mfg slm |
Re: scrollbox -> radiobuttons aktivieren
Du könntest die RadioButons per
![]() |
Re: scrollbox -> radiobuttons aktivieren
hallo matze danke für die antwprt aber wenn ich findcomponent benutze finde ich nichts womit ich auf checked setzen könnte
wieso kann ich hiermit nicht zum nächsten komponenten springen a:=scrollbox1.ComponentIndex; scrollbox1.ComponentIndex:=a+1; slm |
Re: scrollbox -> radiobuttons aktivieren
Deshalb:
Delphi-Quellcode:
ScrollBox = ScrollBox.Owner.Components[ScrollBox.ComponentIndex];
PS: Ich bin verrückt und helfe dir bei diesem Verbrechen - Radiobuttons in einer ScrollBox - unter OS/2 würdest du dafür in der Programmiererhölle schmoren... Mir fallen zwei Lösungsansätze ein, für die du dir den aktuellen RadioButton im OnClick-Event merken musst:
Delphi-Quellcode:
(1) Du verschaffst dir über einen class hack Zugang zu RadioButton.Parent.FControls und stellst über IndexOf() den Index des aktuellen RadioButton fest:
procedure TDemoForm.RadioButtonClick(Sender: TObject);
begin rbChecked := Sender as TRadioButton; end;
Delphi-Quellcode:
(2) Alternativ packst du den Index eines jeden RadioButton in das Controls-Array seines Parent in seine Tag-property - manuell oder im OnCreate-Event der Form:
interface
type TDemoForm = class(TForm) ScrollBox: TScrollBox; NextButton: TButton; PrevButton: TButton; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; procedure NextButtonClick(Sender: TObject); procedure RadioButtonClick(Sender: TObject); procedure PrevButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); private rbChecked: TRadioButton; ... end; implementation type THacked = class(TWinControl) public FControls: TList; end; procedure TDemoForm.PrevButtonClick(Sender: TObject); var iCount, iPrev: integer; begin iCount := rbChecked.Parent.ControlCount; iPrev := (THacked(rbChecked.Parent).FControls.IndexOf(rbChecked) + iCount - 1) mod iCount; with rbChecked.Parent.Controls[iPrev] as TRadioButton do Checked := true; end;
Delphi-Quellcode:
Mag sein, dass du dich noch um ein paar Feinheiten kümmern musst - aber irgendwann musst du mir mal verraten, was dich umtreibt RadioButtons in eine ScrollBox zu packen.
procedure TDemoForm.NextButtonClick(Sender: TObject);
var iCount, iNext: integer; begin iCount := rbChecked.Parent.ControlCount; iNext := Succ(rbChecked.Tag) mod iCount; with rbChecked.Parent.Controls[iNext] as TRadioButton do Checked := true; end; Grüße vom marabu |
Re: scrollbox -> radiobuttons aktivieren
@ marabu
ich danke dir für deine antwort habs immer noch nicht hinbekommen, mit deiner lösung da bin ich noch absoluter anfänger ich brauche das für ein programm mit mehreren büchern die aus vielen html seiten bestehen die radiobuttons sind die kapitel, da das ganze einheitlich aussehen soll und ich nach anraten hier keine scrolleiste in radiogoups einbauen kann (wahrscheinlich ist es schon möglich :lol: ) kann ich keine radiogroups benutzen da die bücher nicht die gleiche anzahl an kapitel haben. deshalb scrollbox mit radiobuttons dachte nicht das es so kompliziert ist. da ist das ja leichter und die buttons sind in ner scrollbox gut das es kein os/2 ist :lol: procedure TForm3.JvBitBtn1Click(Sender: TObject); begin begin if radiobutton2.Checked then radiobutton1.Checked:=true; begin if radiobutton3.Checked then radiobutton2.Checked:=true; end; begin if radiobutton4.Checked then radiobutton3.Checked:=true; end; begin if radiobutton5.Checked then radiobutton4.Checked:=true; end; begin if radiobutton6.Checked then radiobutton5.Checked:=true; end; begin if radiobutton7.Checked then radiobutton6.Checked:=true; end; begin if radiobutton8.Checked then radiobutton7.Checked:=true; end; begin if radiobutton9.Checked then radiobutton8.Checked:=true; end; begin if radiobutton10.Checked then radiobutton9.Checked:=true; end; begin if radiobutton11.Checked then radiobutton10.Checked:=true; end; begin if radiobutton12.Checked then radiobutton11.Checked:=true; end; begin if radiobutton13.Checked then radiobutton12.Checked:=true; end; begin if radiobutton14.Checked then radiobutton13.Checked:=true; end; begin if radiobutton15.Checked then radiobutton14.Checked:=true; end; begin if radiobutton16.Checked then radiobutton15.Checked:=true; end; begin if radiobutton17.Checked then radiobutton16.Checked:=true; end; begin if radiobutton18.Checked then radiobutton17.Checked:=true; end; begin if radiobutton19.Checked then radiobutton18.Checked:=true; end; begin if radiobutton20.Checked then radiobutton19.Checked:=true; end; begin if radiobutton21.Checked then radiobutton20.Checked:=true; end; begin if radiobutton22.Checked then radiobutton21.Checked:=true; end; begin if radiobutton23.Checked then radiobutton22.Checked:=true; end; begin if radiobutton24.Checked then radiobutton23.Checked:=true; end; begin if radiobutton25.Checked then radiobutton24.Checked:=true; end; begin if radiobutton26.Checked then radiobutton25.Checked:=true; end; begin if radiobutton27.Checked then radiobutton26.Checked:=true; end; begin if radiobutton28.Checked then radiobutton27.Checked:=true; end; begin if radiobutton29.Checked then radiobutton28.Checked:=true; end; begin if radiobutton30.Checked then radiobutton29.Checked:=true; end; begin if radiobutton31.Checked then radiobutton30.Checked:=true; end; end; ich dachte ich kann das hier bisschen komprimieren aber das das so kompliziert wird buh :gruebel: es ist nicht dynamisch und sieht nicht gut aus :zwinker: aber was solls irgendwie krieg ich keine sätze mehr zusammen glaube bin müde dank marabu dem könig man darauf muss man mal zuerst kommen respekt mfg slm |
Re: scrollbox -> radiobuttons aktivieren
Zitat:
Die kannte ich bisher nicht, aber man kanns sicher mal brauchen :) |
Re: scrollbox -> radiobuttons aktivieren
Zitat:
Zitat:
Zitat:
Freundliche Grüße vom marabu |
Re: scrollbox -> radiobuttons aktivieren
Liste der Anhänge anzeigen (Anzahl: 2)
Hai slm,
wenn es dir "nur" darum geht zu zeigen in welchem Kapitel man sich eben befindet könntest Du es auch mit einer TListBox lösen und einfach eine Grafik vor das Kapitel zeichen. (siehe Anhang: Bild1). Das ganze Beispielprojekt hänge ich auch mal an. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz