Witam kolegów;)
Przygotowalem pewien test, mam kilka formularzy, miedzy ktorymi sie przemieszczam i tak np w form1 zaznaczam cos w radiogroup i przechodze do form2, gdzie tez mam radiogroup. Ale mam tez opcje powrotu do form1. Gdy tam zmienie odpowiedz i znow przejde do form2 pozostaje zaznaczona ta sama odpowiedz co wczesniej i nie zlicza punktacji. Traktuje to zaznaczenie jako 0. Jak to wyczyscici aby za kazdym razem wchodzac do konkretnego formularza i RadioGroup nic nie bylo zaznaczone? Mozliwe ze jest cos we wlasciwosciach RadioGroup, ale nie moge znnalezc. Dodam ze ItemIndex wewlasciwosciach jest ustawiony na -1. Panowie pomocy.
Nie lepiej używać TPageControl czyli zakładki zamiast ładować tyle form?
Radiogroup1.ItemIndex:= -1;
Odznaczanie zaznaczonego itemu.
Weź to sobie zastosuj przy otwieraniu lub zamykaniu odpowiedniej formy.
Naukowiec napisał(a)
Nie lepiej używać TPageControl czyli zakładki zamiast ładować tyle form?
A mógłbys napisać jak to w praktyce wykonać?
-
Znajdź komponent TPagecontrol na palecie i zwymiaruj go jak chcesz na formie.
-
Klikasz prawym na ten komponent i dajesz New Page, wtedy tworzysz zakładkę czyli alternatywa dla następnej nowej formy.
-
Robisz tych zakładek ile chcesz.
-
Zrób najpierw dwie. Każda zakładka nazywa się TabsheetX gdzie X to liczba kolejna zakładki, ale możesz zmienić właściwość Caption na dowolny.
-
W Tabsheet1 połóż przycisk i nazwij Następny. Kliknij na niego aby wejść do edytora kodu i wklep to:
Pagecontrol1.ActivePage:=Tabsheet2;//przechodzi do następnej zakładki
- W Tabsheet2 połóż przycisk i nazwij Poprzedni. Kliknij na niego aby wejść do edytora kodu i wklep to:
Pagecontrol1.ActivePage:=Tabsheet1;//przechodzi do poprzedniej zakładki
- Pod tymi kodami możesz teraz dodać kodzik, który podał Naukowiec.
Jesli używasz componentów środowiskowych, a chcesz ukryć nazwy zakładek już w samym programie to wklep do Oncreate głównej formy to:
var
i: integer;
begin
for i := 0 to PageControl1.PageCount-1 do
PageControl1.Pages[i].TabVisible := false;
end;
Na każdą z zakładek powstawiaj sobie Radiogroupy oczywiście i utwórz itemy.
Pozdro.
utworzylem dwa Tabsheety ale, dodalem przyciski, ale co zrobic aby przy odpaleniu bylojewidac? Mam na wstepie 3 formularze, a od 4 zaczylbym uzywac tych Tabsheetow, tylko jak ich uzywac? Kod zwiazany z RadioGroupem pomeidzy nimi czy mzoe po??? Na form 4 mam teraz cos takiego:
procedure TForm4.Button2Click(Sender: TObject);
begin
Pagecontrol1.ActivePage:=Tabsheet2;
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
Pagecontrol1.ActivePage:=Tabsheet1;
end;
procedure TForm4.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: begin
Memo1.Show;
Memo1.Text:='wskazniki';
end;
1: begin
Memo1.Show;
Memo1.Text:='Wskaźniki 2';
end;
2: begin
Memo1.Text:='Analiza ';
end;
end;
end;
procedure TForm4.Button1Click(Sender: TObject);
begin
begin
s:=0;
case RadioGroup1.ItemIndex of
0: begin
s:=s+10 ;
TabSheet1.show ;
end ;
1: begin
s:=s+20 ;
end ;
2: begin
s:=s+30 ;
end;
3: begin
s:=s+40;
end;
end;
end;
form5.Label3.caption:=inttostr(s);
end;
end.
Ja polecam użyć komponentu NoteBook z zakładki Win 3.1. Nie ma on górnej belki, ktora chyba w takim programie do
przeprowadzania testów jest zbędna, a również pozwala nawigować między stronami, z których każda może mieć swoją
unikalną zawartość. A poza tym jak chcesz robić test to po co tworzyć dla każdego pytania osobne formatki, używaj do
tego jednego zestawu Label do wyświetlenia pytanai plus RadioButtony dla odpowiedzi. A zresztą temat był już ostatnio
na forum wałkowany, szkoda że nawet nie sprawdziłeś wcześniej. Polecam Tobie przyjrzeć się programowi pod linkiem
poniżej, pisałem go dawno, bo jeszcze około 2001 roku i to w Delphi 3. Progeam był elementem pracy zaliczeniowej w
Liceum zawodowym. I procedura oceniania nie została dość dopracowana. Jednak reszta kodu może się Tobie przydac.
http://www.speedyshare.com/files/22824267/ptc_test.rar
Nawigowanie po stronach NoteBook w trakcie działania programu:
procedure TForm1.FormCreate(Sender: TObject);
begin
NoteBook1.PageIndex := 0;
end;
procedure TForm1.PrevBtnClick(Sender: TObject);
begin
NoteBook1.PageIndex := NoteBook1.PageIndex - 1;
end;
procedure TForm1.NextBtnClick(Sender: TObject);
begin
NoteBook1.PageIndex := NoteBook1.PageIndex + 1;
end;
Ten jak zwykle epopeję musiał napisać na 4p.
Jak mu napisałem o Pagecontrol to po ch mu mieszasz jeszcze?
RedbaK: przepraszam Wielmożnego Pana, jak się nie podoba to proszę nie czytaj. Przecież podałem tylko ładniejsze
rozwiązanie jakie kiedyś zasugerował Cimak/Misiekd/Opi (nie pamiętam ktoś z tej trójki), lecz nikogo nie zmuszam
do korzystania. Chcce mięć tysiąc formatek lub pięćset zakładek PageControl i do tego tworzonych niedynamicznie,
to proszę bardzo. Ja tylko chciałem pomóc - widać źle to odebrano. I podejrzewam, że nawet jak pytający nie zna
podstaw, to przy odrobinie wysiłku pomyśli, i sam skorzysta z rozwiązania, które mu będzie bardziej odpowiadało.
Nie masz (i chyba nikt nie ma) na tym forum monopolu na super rozwiązania - narzucone, jako jedyne pytającym.