[ jankie88 @ 09.04.2004. 14:51 ] @
nov sam u delphy-ju i hteo bih nesto da znam: kako se u delphy-ju prave array-ovi npr. slika ili dugmica?
[ morlic @ 10.04.2004. 10:54 ] @
Za slike mozes koristiti TImageList sa palete Win32. Tu mozes staviti seriju istih slika i iscrtavati ih gde zelis preko odredjenog metoda. To je jedan pristup. Drugi ptistup je da napravis instancu klase TObjectList i da u njoj drzis pokazivace na rucno kreirane instance TImage klase za slike i TButton za dugmice. Ako si pocetnik ovo bas i nije jednostavno zbog nekoliko problema. Sta konkretno zelis da resis? Mozda ima boljeg resenja (jednostavnijeg)
[ Bojan Kopanja @ 10.04.2004. 15:39 ] @
Code:
For C1 := 1 to 10 Do 
Begin 
  Dugme[C1] := TButton.Create(Self);
  Dugme[C1].Parent := Form1; // Ili kako ti se vec zove forma
// Ovde dodas Button.Left, Button.Top, i sta ti vec drugo padne na pamet 
end; 


To ti je primer za pravljenje Dugmadi na formi kao da su niz...
[ morlic @ 11.04.2004. 10:27 ] @
Dodajem da na kraju koriscenja moras napisati i kod za oslobadjanje memorije:

Code:

For C1 := 1 to 10 Do 
Begin 
  Dugme[C1].Free;
end;


A prilikom kreiranja postavlja se pitanja koja kontrola je roditelj dugmetu tj. da li ce stajati direktno na formi ili na npr. panelu. Pogledaj u help-u sta pise za TButton.Create();
[ sojic @ 08.09.2005. 19:14 ] @
Trazio sam to sto mi treba, pa naleteo na ovo (mnogo slicno).

Kako da kreiram vise instance-a jednog objekta?

Recimo imam neki panel, u njega stavim x drugih komponenta i sl. Napravim kako hocu da izgleda. Stavim align=top i hocu da kreiram array od istih takvih panela.

Evo kako sam pokusao, nije to to, ali ukapiracete sta hocu.

Code:

var I: integer;
begin
  for i:=1 to 16 do
  begin
    Kabina[i]:=TAdvPanel.Create(self);
    Kabina[i].:=KabinaSource; // OVO MI TREBA
    Kabina[i].Name:='Kabina'+IntToStr(i);
    Kabina[i].Parent:=MainPanel;
    Kabina[i].Visible:=true;
  end;


Pokusao sam nekoliko varijacija, ali nece.

Da kreiram novi panel nije problem, ali problem je da kopiram vise put stari panel.
[ Nemanja Avramović @ 08.09.2005. 23:32 ] @
a jesi definisao:

Code:
var Kabina: array[1..16] of TAdvPanel;


btw, ovo:
Code:
Kabina[i].:=KabinaSource;

ne razumem... sta je KabinaSource?

[Ovu poruku je menjao JaHvram dana 09.09.2005. u 00:34 GMT+1]
[ sojic @ 09.09.2005. 06:48 ] @
Da, jesam definirao Kabina kao array of TAdvPanel.

KabinaSource je jedan TAdvPanel, sa x komponenta u njemu (DBGrid, Drugi panel sa labele, nekoliko tastera....).

Znaci hocu da kreiram nove panele sa svih objekta i istih svojstva kao originalni (KabinaSource) panel.
[ Nemanja Avramović @ 09.09.2005. 11:33 ] @
Eh pa ne znam da li ce to moci tako lako... mozda moze da se napravi jedna petlja koja ce pokupiti sve objekte sa source panela pa svaki "iskopirati" na novonapravljeni panel.
[ sojic @ 22.09.2005. 10:27 ] @
Rešio sam problem, pa da podelim iskustvo.

Otvorim novi form. U njega ubacim panel i sve sto mi treba u njega. Kad završim sve, Component->Create component template i dobijem panel sa sve unutra.

Ali ipak nije to što mi treba. Opet ne mogu ON THE FLY da pravim kopije. Jos uvek nova komponenta je TPanel.

[Ovu poruku je menjao sojic dana 22.09.2005. u 12:12 GMT+1]