AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

scrollbox -> radiobuttons aktivieren

Ein Thema von slm · begonnen am 12. Aug 2005 · letzter Beitrag vom 13. Aug 2005
Antwort Antwort
slm

Registriert seit: 22. Jul 2005
35 Beiträge
 
Delphi 7 Personal
 
#1

scrollbox -> radiobuttons aktivieren

  Alt 12. Aug 2005, 15:52
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
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: scrollbox -> radiobuttons aktivieren

  Alt 12. Aug 2005, 15:59
Du könntest die RadioButons per Delphi-Referenz durchsuchenFindComponent ansprechen und entsprechend die Eigenschaft Checked setzen.
  Mit Zitat antworten Zitat
slm

Registriert seit: 22. Jul 2005
35 Beiträge
 
Delphi 7 Personal
 
#3

Re: scrollbox -> radiobuttons aktivieren

  Alt 12. Aug 2005, 17:30
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: scrollbox -> radiobuttons aktivieren

  Alt 12. Aug 2005, 19:15
Deshalb:

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:
procedure TDemoForm.RadioButtonClick(Sender: TObject);
begin
  rbChecked := Sender as TRadioButton;
end;
(1) Du verschaffst dir über einen class hack Zugang zu RadioButton.Parent.FControls und stellst über IndexOf() den Index des aktuellen RadioButton fest:

Delphi-Quellcode:
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;
(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:

Delphi-Quellcode:
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;
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.

Grüße vom marabu
  Mit Zitat antworten Zitat
slm

Registriert seit: 22. Jul 2005
35 Beiträge
 
Delphi 7 Personal
 
#5

Re: scrollbox -> radiobuttons aktivieren

  Alt 12. Aug 2005, 23:00
@ 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 ) 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

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
es ist nicht dynamisch und sieht nicht gut aus 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
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#6

Re: scrollbox -> radiobuttons aktivieren

  Alt 12. Aug 2005, 23:23
Zitat von marabu:
(1) Du verschaffst dir über einen class hack [..]
DAS is ja mal ne coole Methode

Die kannte ich bisher nicht, aber man kanns sicher mal brauchen
Julian J. Pracht
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: scrollbox -> radiobuttons aktivieren

  Alt 13. Aug 2005, 07:08
Zitat von slm:
ich brauche das für ein programm mit mehreren büchern die aus vielen html seiten bestehen - die radiobuttons sind die kapitel
Ich würde dafür eine TreeView verwenden. Du kannst dann sogar mehrere Bücher gleichzeitig offen halten, die Titel auf der ersten Knotenebene und die Kapitel auf der nächsten.

Zitat von slm:
dank marabu dem könig
Die Monarchie ist tot und der marabu ist nur ein alter komischer Vogel - aber hey, danke für die Blumen.

Zitat von slm:
man darauf muss man mal zuerst kommen
Das kann man lernen - du auch.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#8

Re: scrollbox -> radiobuttons aktivieren

  Alt 13. Aug 2005, 09:50
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.
Miniaturansicht angehängter Grafiken
bild1_153.jpg  
Angehängte Dateien
Dateityp: zip demo_211.zip (8,6 KB, 7x aufgerufen)
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz