Obsługa komponentów

0

Witam, mam takie zmartwienie, otoz: jak odwolac sie do Label'ow tak aby uniknac podawania nazw komponentow kazdego z osobna:
...
Label121.Caption:= NazwaZS[121];
Label122.Caption:= NazwaZS[122];
Label123.Caption:= NazwaZS[123];
Label124.Caption:= NazwaZS[124];
Label125.Caption:= NazwaZS[125];
...

tylko cos w tym stylu:

for i:= 1 to n do
Label(i):= NazwaZS[i];

Pozdrawiam

0

O jaj..be
Było MILIONY razy.

FindComponent, czy też FindControl

Od bidy tablica Components i właściwość TAG.

0

O jaj..be
Było MILIONY razy. - i ciagle to samo na różnych forach, zamiast prostej odpowiedzi na temat to jakies docinki, o ile milejby bylo bez tego na poczatku... Pytam bo nie wiem, gdybym wiedzial ze mozna to zrobic FindComponent'em nawet nie zawrocilbym glowy forumowym bogom

no i juz mam:

for i:= 1 to n do
TLabel(FindComponent('Label' + IntToStr(i))).Caption:= NazwaZS[i];

Pozdrawiam

0
Gepcio napisał(a)

Pytam bo nie wiem, gdybym wiedzial ze mozna to zrobic FindComponent'em nawet nie zawrocilbym glowy forumowym bogom

A od czego masz:

  • wyszukiwarkę na forum
  • google
  • InteliSense w Delphi? Jeśli byś przejrzał listę metod, które Ci Delphi listuje znalazłbyś FindComponent, a nie ciężko się domyśleć do czego może służyć.

Forum jest ostateczną formą pomocy - jeśli nie możesz czegoś znaleźć w helpie / w necie, lub też nie wiesz jak szukać, lub masz wątpliwości, czy też bardziej złożony problem.

0

Trafilem tu przez google, to czego szukalem nie dalo sie latwo przedstawic jako slowa kluczowe dla wyszukiwarki, zapytania typu "Delphi komponent" itp. zdaly sie na to iz dostawalem wiele tematow do przewertowania a co za tym idzie duzo czasu bym stracil bez gwarancji ze znajde odpowiedz na moje pytanko. Tak wiec, zapytalem tu, dostalem info iz to czego szukam ma wiele wspolnego z FindComponent - tego oczekiwalem, reszta byla nie potrzebna. Dzieki wielkie Juhas za zainteresowanie i pomoc. Mam jeszcze jedno pytanko: jak wywolac dana procedure lub funkcje w podobny sposob -

nie tak:

Form1.SprawdzCos1(Cos);
Form1.SprawdzCos2(Cos);
Form1.SprawdzCos3(Cos);

tylko jakos tak:

for i:= 1 to n do
Form1.SprawdzCosi;

0
Gepcio napisał(a)

nie tak:

Form1.SprawdzCos1(Cos);
Form1.SprawdzCos2(Cos);
Form1.SprawdzCos3(Cos);

tylko jakos tak:

for i:= 1 to n do
Form1.SprawdzCosi;

O Panie, tak prosto to się nie da. Jak dla mnie to byś musiał mieć chyba tablicę z adresami procedur.
Czyli: Array of procedure(paramtetry)

Potem:

arr[0] := @SprawdzCos0
arr[1] := @SprawdzCos1
//itd

A potem już wywołanie:

arr[i](parametry)

Wydaje mi się, że to pomoże. Ale i tak musisz je gdzieś przypisać.
Innym rozwiązaniem jest stworzenie jednej procedury i odpowiednie sparametryzowanie jej.

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