Witam,
wie ktoś jak zliczyć ile jest na formie komponentów ( konkretnie chcekbox) najlepiej gdyby uwzględniało to jeszcze parametr visible...
pomoże ktoś?
Witam,
wie ktoś jak zliczyć ile jest na formie komponentów ( konkretnie chcekbox) najlepiej gdyby uwzględniało to jeszcze parametr visible...
pomoże ktoś?
Jak leżą na bezpośrednio na formie (a nie np. Panelu albo GroupBoxie) to:
var
i, all, vis: Integer;
begin
all:= 0;
vis:= 0;
for i:=0 to Form1.ControlCount - 1 do
begin
if Form1.Controls[i] is TCheckBox then
begin
Inc(all);
if Form1.Controls[i].Visible = True then
Inc(vis);
end;
end;
ShowMessage(Format('Znaleziono: %0:d TCheckBox'#13#10'z tego widocznych: %1:d', [all, vis]));
end;
a jeżeli o wszystkie bez względu na rodzica to:
var
i, all, vis: Integer;
begin
all:= 0;
vis:= 0;
for i:=0 to Form1.ComponentCount - 1 do
begin
if Form1.Components[i] is TCheckBox then
begin
Inc(all);
if (TControl(Form1.Components[i]).Visible = True) then
Inc(vis);
end;
end;
ShowMessage(Format('Znaleziono: %0:d TCheckBox'#13#10'z tego widocznych: %1:d', [all, vis]));
end;
dzięki wielkie, jak zawsze szybko i skutecznie ;)
Mam jeszcze jedno pytanko to zapytam już tutaj... otóż chcę dodać item w listbox który ma się składać z Caption chcekbox'a o numerze który podam w editcie... wiem że to skomplikowane ale może mój kod pomoże
Listbox1.Items.add(checkbox+[edit1.Text].Caption);
Chyba teraz już wiecie o co chodzi...
Ale jak są wyznaczane numery CheckBox, czy są wyszukiwane jak napisałem wyżej? Można by utworzyć dynamiczną tablicę stringów tam przechowywać Caption (a nawet wszystkie CheckBoxy w zależności od potrzeby) wtedy tylko np. początku działania programu np. w OnCreate ładujesz wszystkie do tablicy... no ale co można zrobić to głownie zależy od tego co chcesz osiągnąć... można by coś kombinować z Tag... no ale ciężko cokolwiek sensownie odpowiedzieć jak nie bardzo się orientuję co chcesz zrobić.
Rozwiązałem problem już z innej strony
inaczej obszedłem problem....
mam chcekboxy do tak jakby ankiety ( konkretnie wybór przewodniczącego) no i miałem je dodawać do listboxa właśnie przez listbox.items.add ale pomyślałem że i tak musi być baza nazwisk(kandydatów) na serwerze więc wczytam je z serwera bo to i tak będzie konieczne jeśli kandydaci mieliby się zmieniać...