Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Vorisaj

Založen: 08. 02. 2008 Příspěvky: 29 Bydliště: Chomutov
|
Zaslal: 6. březen 2008, 18:29:12 Předmět: Může být proměná názvem komponenty? |
|
|
Ahoj, předem se omlouvám že neumím vysvětlovat, takže rovnu přejdu k příkladu... např. budu chtít posunout 100 obrázků najednou ve smětu osy Y o 5 bodů, příklad...
obrázek1.top:=obrázek1.top+5;
obrázek2.top:=obrázek2.top+5;
obrázek3.top:=obrázek3.top+5;
...
obrázek100.top:=obrázek100.top+5;
Takže bych musel všech sto obrázků postupně vypsat, nešlo by to nějak zjednodušit? například...
for i:=1 to 100 do (obrázek+i).top:=(obrázek+i).top+5;
Snad chápete jak to myslím, zkoušel jsem použít strýčka googla, ale nic jsem nenašel. Děkuju za případné odpovědi. |
|
Návrat nahoru |
|
 |
OndraSej

Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 6. březen 2008, 18:43:31 Předmět: |
|
|
Ne, to opravdu nejde. Teda aspon ne v pascalu.
Na takovehle veci jsou pole, ze bys psal
kód: |
for i := 1 to 100 do obrazek[i].top := obrazek[i].top + 5; |
_________________ http://trionteam.net |
|
Návrat nahoru |
|
 |
Marty
Založen: 28. 07. 2007 Příspěvky: 20
|
|
Návrat nahoru |
|
 |
Vorisaj

Založen: 08. 02. 2008 Příspěvky: 29 Bydliště: Chomutov
|
Zaslal: 6. březen 2008, 19:35:58 Předmět: |
|
|
Díky, moc mi to pomohlo  |
|
Návrat nahoru |
|
 |
Mem

Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 6. březen 2008, 20:47:30 Předmět: |
|
|
OndraSej napsal: |
Ne, to opravdu nejde. Teda aspon ne v pascalu. |
No v object pascalu to praveze samozrejme jde, protoze controly a componenty jsou soucasti kolekci formularu a jde v nich vyhledavat podle nazvu
Nazorny priklad z praxe, na formulari mam treba 40 TEditu, a u kazdeho z nich TCheckBox, a chci, aby se ten checkbox automaticky zaskrtl, kdyz uzivatel neco napise do toho editu. A staci mi mit ty checkboxy vhodne nazvane a napsat jediny event, ktery zajisti, ze kdyz do toho editu uzivatel neco napise, tak se prislusny checkbox sam zaskrtne:
kód: |
procedure EditChanged(Sender: TObject);
var c: TControl;
begin
c := TWinControl(FindComponent('c' + TControl(Sender).Name));
if (c <> nil) then TCheckBox(c).Checked := true;
end; |
_________________
 |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 6. březen 2008, 21:50:13 Předmět: |
|
|
ja bych rekl ze Mem i OndraSej maji pravdu
Mem ma pravdu - "problem lze resit, ale trochu jinak"
OndraSej ma pravdu - "to co jsi napsal v Object Pascalu fakt nejde" |
|
Návrat nahoru |
|
 |
Vorisaj

Založen: 08. 02. 2008 Příspěvky: 29 Bydliště: Chomutov
|
Zaslal: 6. březen 2008, 22:00:04 Předmět: |
|
|
Já to udělal podle článku, který mi poslal Marty, šlape to v poho a není to nějak těžké, přesně to co jsem potřeboval  |
|
Návrat nahoru |
|
 |
devillante
Založen: 14. 08. 2007 Příspěvky: 164
|
Zaslal: 7. březen 2008, 12:23:41 Předmět: |
|
|
Ve Flashi to jde úplně přesně tak, jak by kolega chtěl. |
|
Návrat nahoru |
|
 |
|