Liczenie komponentów

N9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 125
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ś?

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
1

Jak leżą na bezpośrednio na formie (a nie np. Panelu albo GroupBoxie) to:

Kopiuj
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:

Kopiuj
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;
N9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 125
0

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

N9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 125
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...

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
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ć.

N9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 125
0

Rozwiązałem problem już z innej strony

N9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 125
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ć...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.