Dwie grupy RadioButton jedna nie działa

Odpowiedz Nowy wątek
2014-05-01 13:19

Rejestracja: 16 lat temu

Ostatnio: 2 tygodnie temu

Lokalizacja: Słupsk

0

Witam.

Można prosić o pomoc, dlaczego dla pierwszych trzech RadioButton działa ok
a dla pozostałych czterech nie. Stale pozostałe pamiętają ustawienia z chwili zamknięcia okna.

w "s" wartości : dla s[1] 1..3 dla s[2] 4..7

Chec.jpg


procedure TForm38021.FormShow(Sender: TObject);
begin
     tak := False;
     RadioButton1.Checked := false;
     RadioButton2.Checked := false;
     RadioButton3.Checked := false;
     TRadioButton(FindComponent('RadioButton'+s[1])).Checked := true;
     RadioButton4.Checked := false;
     RadioButton5.Checked := false;
     RadioButton6.Checked := false;
     RadioButton7.Checked := false;
     TRadioButton(FindComponent('RadioButton'+s[2])).Checked := true;
end;

Pozdrawiam
Janusz

  • Chec.jpg (0.02 MB) - ściągnięć: 97

Delphi gcc AVR ATMEL mysql

Pozostało 580 znaków

2014-05-01 14:14

Rejestracja: 16 lat temu

Ostatnio: 5 godzin temu

1

Proponuję pomyśleć nad łatwiejszym interfejsem ;-)
Przechwytywanie.PNG

Pozostało 580 znaków

2014-05-01 14:35

Rejestracja: 14 lat temu

Ostatnio: 1 minuta temu

0

Dodaj do tego kodu: ShowMessage(s);


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-05-01 14:46

Rejestracja: 16 lat temu

Ostatnio: 2 tygodnie temu

Lokalizacja: Słupsk

0

Azarien to nie program tylko proste narzędzie dla mnie.


Delphi gcc AVR ATMEL mysql
TForm38021 - rzeczywiście proste, z 38021 formatkami :P - marogo 2014-05-01 15:02

Pozostało 580 znaków

2014-05-01 14:48

Rejestracja: 16 lat temu

Ostatnio: 2 tygodnie temu

Lokalizacja: Słupsk

0

_13th_Dragon Bład dalej występuje


Delphi gcc AVR ATMEL mysql
To nie naprawia błędu to pokazuje co masz w zmiennej s. O błędzie sam się domyślisz jak zobaczysz co masz w tej s. - _13th_Dragon 2014-05-02 02:27

Pozostało 580 znaków

2014-05-01 18:46
Moderator Delphi/Pascal

Rejestracja: 8 lat temu

Ostatnio: 4 minuty temu

Lokalizacja: Tuchów

0

@dasej - po pierwsze, mało kodu podałeś, więc nie wiemy co się dzieje ze zmienną s i nie wiadomo, czy faktycznie zawiera ona to, czego się spodziewasz; Po drugie nie wykonuj tego kodu w zdarzeniu OnShow, tylko w OnCreate formularza; Po trzecie:

tak := False;

rence opadajom... Artykuły dotyczące sensownego formatowania kodu czekają na Ciebie z otwartymi rękoma.


Pozostało 580 znaków

2014-05-01 20:13

Rejestracja: 14 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Gorlice

0

Jakiego typu jest zmienna s? To tablica czy string? Nie trzeba ustawiać Checked na False gdy ustawisz jednego z nich właściwość na True pozostałe same się ustawią.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.

Pozostało 580 znaków

2014-05-02 00:21

Rejestracja: 16 lat temu

Ostatnio: 2 tygodnie temu

Lokalizacja: Słupsk

0

furious. Jak mam to wpisać do create skoro może być wywoływane nawet 20 razy
np. wywołanie dla kolumny 1 s := 27
kolumny 3 s := 36
RadioButton1..3 ustawią się poprawnie, a 4..7 w tym przykładnie wywołanie dla kolumny
3 ustawi się na "Datę" a nie "Walutę" taki efekt jest na ekranie. D2007
tak := false; - może być zmienna := false;
jest potrzebna do czegoś innego i niema w tym przypadku znaczenia.

kAzek. s : string;


Delphi gcc AVR ATMEL mysql
edytowany 5x, ostatnio: dasej, 2014-05-02 00:25

Pozostało 580 znaków

2014-05-02 01:13
Moderator

Rejestracja: 11 lat temu

Ostatnio: 2 dni temu

Lokalizacja: Szczecin

2

@dasej: nie wiem czy zdajesz sobie do końca sprawę z tego co robisz. Poczytaj lepiej kurs z pordstawami, to będziesz wiedział więcej. Jeżeli zmienna S jest typu string. To wtedy S[1], to będzie pierwszy znak tej zmiennej. Analogicznie S[2], to będzie jej drugi znak.

Także jeżeli komponent na formatce ma własność Name ustawioną na RadioButton1 to zmienna S musi zawierać przynajmniej tekst zaczynający się od 1. Także najważniejsze już Tobie podpowiedziano wcześniej. Sposób lamerski, bo powinno się debugować kod. Ale co właściwie pokazuje się po zastosowaniu ShowMessage(S);? Bo zawartość zmiennej S jest tutaj kluczowym zagadnieniem.

A i tak jak pisali poprzednicy. Jeżeli kontrolki typu TRadioButton są umieszczone na TGroupBox (jest on ich Parentem) albo są to kontrolki dodane w TRadioGroupBox, to nie ma potrzeby ustawiania ich w ten sposób. Ponieważ ustawienie własności Checked jednego z nich na True, powoduje że pozostałe "automatycznie" odznaczą się.


edytowany 1x, ostatnio: olesio, 2014-05-02 01:18

Pozostało 580 znaków

2014-05-02 10:06

Rejestracja: 16 lat temu

Ostatnio: 2 tygodnie temu

Lokalizacja: Słupsk

0

kod po modyfikacji


procedure TForm38021.FormShow(Sender: TObject);
begin
     tak := False;
     Caption := 's = '+s;
     RadioButton1.Checked := false;
     RadioButton2.Checked := false;
     RadioButton3.Checked := false;
     TRadioButton(FindComponent('RadioButton'+s[1])).Checked := true;
     RadioButton4.Checked := false;
     RadioButton5.Checked := false;
     RadioButton6.Checked := false;
     RadioButton7.Checked := false;
     TRadioButton(FindComponent('RadioButton'+s[2])).Checked := true;
end;

a oto efekt działania, wartość "S" na belce.

s=27.jpg
s=36.jpg
s=14.jpg

Takie proste a nie działa.


Delphi gcc AVR ATMEL mysql

Pozostało 580 znaków

2014-05-02 11:23

Rejestracja: 14 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Gorlice

0

No to powinno a nawet musi działać. Mi się wydaje że przypadkiem gdzieś dalej w kodzie ustawiasz Chceked dla RadioButton7.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0