Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Delphi ongelma

0 views
Skip to first unread message

Johan Saha

unread,
Sep 21, 2009, 12:17:03 PM9/21/09
to
Minulla on form jossa vaikkapa 20 kpl panel-komponettia, lis�ksi siin� on
edit-komponentti.
Panel komponentit on nimetty niinkuin delphi ne nime�� Panel1-Panel20, ja
ongelma on seuraavanlainen:
K�ytt�j� voi antaa edittiin sy�tteen� vain kokonaisluvun v�lilt� 1-20, esim
18, joka sijoitetaan integer-tyypin muuttujaan (x) nyt minun pit�isi
saavuuttaa panel18 ja muuttaa sen caption ja font-ominaisuutta, miten
ihmeess� teen tuon muutoksen?
En tied� mist� p�in ohjetta tuota asiaa saisin selvitetty�.
Homma hoituu tietenkin case-lauseella jossa nuo kaikki panelit on lueteltu,
mutta t�ytyyh�n tuohon olla yksinkertaisempikin ratkaisu.

Kiitos etuk�teen mik�li joku vaivautuu auttamaan aloittelijaa.


Matti Lehtiniemi

unread,
Sep 21, 2009, 1:32:01 PM9/21/09
to
> En tied� mist� p�in ohjetta tuota asiaa saisin selvitetty�.

Luo ne Panel -komponentit dynaamisesti form:n luonnin yhteydess�.Eli �l� pudota niit�
komponentteja formille vaan kirjoita Panelit luova koodi. Samalla laita ne array:hin.

panels:array[1..20] of Panel;
Ja sitten Createa peliin.

En ole moneen vuoteen koodannut Delphill� joten en osaa tarkempaa koodia antaa.

Tapa 2:
Jos haluat tehd� friikill� tavalla, niin kaiva esiin INTEGER resourcet, joita Delphi luo paneeleille.
Sitten GetDlgItem(IDC_PANEL1+ i);

Matti

Asko Telinen

unread,
Sep 22, 2009, 5:40:36 AM9/22/09
to
Johan Saha kirjoitti:

Jos sulla on panelien nimet tosiaanki Panel1 - Panel20 niin jotenkin
n�in se tais menn� (viimeks k�ytt�ny delphii joskus v. 2000:) :

var luku: Integer;
var MyComp: TComponent;

(lue tekstikent�n arvo int:iin)

MyComp := FindComponent("Panel" + IntToStr(luku));
If MyComp is TPanel then begin
// panel l�ytyi. do your stuff here....
end
else begin
// ei l�ydy. k�sittele virhetilanne
end

tuoll lailla ei tartte ees muuttaa arvoa in:ks vaan voit suoraa liitt��
tekstin "Panel":in per��n


Asko.

0 new messages