Liczenie komponentów

0

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ś?

1

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;
0

dzięki wielkie, jak zawsze szybko i skutecznie ;)

0

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...

0

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ć.

0

Rozwiązałem problem już z innej strony

0

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ć...

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