[Delphi] checkBox

Odpowiedz Nowy wątek
Lardux
2002-10-28 21:24
Lardux
0

jedziemy dalej...
mam duuuuzzzzooo checkboxow, pomijam fakt ze sa tworzone w zaleznosci od potrzeb programu, ale teraz mam problem taki, ze
jezeli CheckBox1 jest zaznaczony to MaskEdit1.Enabled:=true;
jezeli CheckBox2 jest zaznaczony to MaskEdit2.Enabled:=true;
jezeli CheckBox3 jest zaznaczony to MaskEdit3.Enabled:=true;
itd...
i teraz powiedzcie mi gdzie mam wstawic procedurke ktora bedzie sprawdzala ktore checkboxy sa zaznaczone i wtedy odpalala MaskEdit'y? przeciez nie bede dla kazdego checkBoxa sprawdzal onclick, prosze ogol o pomoc (nie pierwszy raz i napewno nie ostatni, jak ja sie wam chlopaki odplace...)
--Lardux

Pozostało 580 znaków

dolek mogilno
2002-10-28 21:32
dolek mogilno
0

cos takiego?
if checkbox1.checked = true then maskedit1.enabled := true;

Pozostało 580 znaków

Lardux
2002-10-28 23:18
Lardux
0

kolego, takie polecenie to ja znam, i traz mam to niby wpisac do kazdego, checkbox'a na onclick? jak mam ich 200? to sie dopiero nazywa sztuczne robienie kodu, a wiesz co to algorytmy i struktury danych? jak nie to radze poczytac, albo chociaz przeczytac pytanie, bo jak masz mi takie rady dawac, to juz wole posluchac mojej 14 letniej kuzynki, jej dowcipy sa chociaz smieszne (tylko mi sie tu nie obraz odrazu) --Lardux

Pozostało 580 znaków

pq
2002-10-28 23:48
pq
0

Kiedy tworzysz CheckBoxy (zakladam, ze dynamicznie) daj kazdemu inny Tag (ponumeruj je) i taki sam tag daj odpowiadajacemu mu MaskEditowi.

Robisz procedure OnChange w tym stylu

for i:=0 to Pred(Form1.ControlCount) do *zamiast Form1 moze byc np GroupBox1 jesli sa na tym GroupBoxie
if (Form1.Controls[i] is TMaskEdit) and
(Form1.Controls[i].Tag = (Sender as TControl).Tag) then
begin
(Form1.Controls[i] as TControl).Enabled:=(Sender as TControl).Checked;
Break;
end;

i podpinasz ja pod wszystkie Checkboxy (przy ich tworzeniu). Jesli nie wiesz jak, to:
http:*www.4programmers.net/forum/index.php?action=show&id=25662

--
Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

Pozostało 580 znaków

Vogel
2002-10-29 08:06
Vogel
0

Jeżeli i checkboxy i maskedity masz dynamiczne, to trzymaj je w tablicach. Niech każdy checkbox ma taga równego indexowi w tablicy. Dajesz wtedy ogólną procedurę OnClick i jedziesz:

MaskEdits to of koz tablica of TMaskEdit.

MaskEdits[(Sender as TCheckBox).Tag].Enabled:=(Sender as TCheckBox).Checked--Vogel [Delphi 6 PE]

Life is just a dream, you know...
[Cowboy Bebop]

Pozostało 580 znaków

2002-10-29 09:53

Rejestracja: 17 lat temu

Ostatnio: 1 rok temu

0

To jeszcze ja dorzucę:

procedure TForm1.CheckBoxClick(Sender: TObject);
begin
TEdit(FindComponent('Edit'+IntToStr(TCheckBox(Sender).Tag))).Enabled := TCheckBox(Sender).Checked;
end;

Tak samo nadawać Tag o nazwie odpowiadającej Editowi i podciągnąć wszystko pod jedna procedurę.--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], [PHP] itp.


Jest jeszcze jeden błąd :)
Unix is user friendly. It's just very particular about who it's friends are.

Pozostało 580 znaków

Vogel
2002-10-29 12:31
Vogel
0

Dryobates napisał:
TEdit(FindComponent('Edit'+IntToStr(TCheckBox(Sender).Tag))).Enabled := TCheckBox(Sender).Checked

FindComponent jest zbyt wolne - czas O(N) moja metoda daje O(1).--Vogel [Delphi 6 PE]

Life is just a dream, you know...
[Cowboy Bebop]

Pozostało 580 znaków

Odpowiedz

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