Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Name objekta u TStrings i pristup do njega

[es] :: Pascal / Delphi / Kylix :: Name objekta u TStrings i pristup do njega

[ Pregleda: 2726 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sojic
Dalibor Sojic
Makedonija

Član broj: 7051
Poruke: 796
62.162.220.*

Sajt: right-sock.net


+1 Profil

icon Name objekta u TStrings i pristup do njega31.10.2005. u 14:13 - pre 201 meseci
Imam recimo Edit boksove:

Trajko
Muso
Djuro

Imam Podatke array od TStrings gde
Strings[1] ="Trajko"
Strings[2]="Ovo je tekst koji treba da stoi u Trajko.text"

Kako da napravim nesto u stilu:

TEdit.(Podatke.Strings[1]).Text = Podatke.Strings[2];

Znaci kako da vrednost nekog stringa pretvorim u Name nekog objekta?
routing protocols enable routers to route routed protocols!
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Name objekta u TStrings i pristup do njega31.10.2005. u 14:26 - pre 201 meseci
Ako sam dobro razumeo :


Code:

var
  EditBox : TEdit;
begin
  EditBox := TEdit(FindComponent(Strings[1]));
  If Assigned(EditBox) Then
    EditBox.Text := Strings[2];


Mozes i krace, bez provere da li taj EditBox postoji :

Code:
TEdit(FindComponent(Strings[1])).Text := Strings[2];


poz
 
Odgovor na temu

sojic
Dalibor Sojic
Makedonija

Član broj: 7051
Poruke: 796
62.162.220.*

Sajt: right-sock.net


+1 Profil

icon Re: Name objekta u TStrings i pristup do njega31.10.2005. u 15:12 - pre 201 meseci
Danke bite. Najverovatno to je to. Proveriću kasnije. Sad me delphi zeza (zajebo sam neku komponentu)

A dali ovo može da se koristi i za obične stringove. Primer:

Code:

var
    Ime: string;

begin
   Strings[1]:='Ime';
   FindComponent(Strings[1]) := Strings[2];
end;


[Ovu poruku je menjao sojic dana 31.10.2005. u 16:15 GMT+1]
routing protocols enable routers to route routed protocols!
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Name objekta u TStrings i pristup do njega31.10.2005. u 17:38 - pre 201 meseci
Ne kontam te...
Ako mislis da stavis FindComponent('string'), sto ne bi moglo, i Strings[n] je tipa String :)
 
Odgovor na temu

sojic
Dalibor Sojic
Makedonija

Član broj: 7051
Poruke: 796
62.162.209.*

Sajt: right-sock.net


+1 Profil

icon Re: Name objekta u TStrings i pristup do njega01.11.2005. u 10:31 - pre 201 meseci
Nisi shvatio (ili nisam dobro objasnio).

Znači dali mogu FindComponent (ili sličnu funkciju) koristiti za pristup String promenljive, a ne komponente?


routing protocols enable routers to route routed protocols!
 
Odgovor na temu

marcha
Nikola Marcic
Beograd/Leskovac

Član broj: 6454
Poruke: 108
*.178.EUnet.yu.

ICQ: 156892888


+1 Profil

icon Re: Name objekta u TStrings i pristup do njega01.11.2005. u 11:55 - pre 201 meseci
Ako sam te dobro razumeo trbalo bi da ti ovo resi problem, ako na formi imas kreirane TEdit-e edTrajko i edMuso.

Code:

procedure TForm1.FillEditBox;
var Objlist:TStrings;
    i:Integer;
begin
 Objlist:=TStringList.Create;
 try
  Objlist.AddObject('Trajkov text',edTrajko);
  Objlist.AddObject('Musov text',edMuso);
  for i:= 0 to Objlist.count-1 do
    TEdit(ObjList.Objects[i]).Text :=ObjList[i];
  finally
   ObjList.Free;
  end;
end;

Marcha
-----------------------------------
Pretpostavka je majka zajeba.
 
Odgovor na temu

sojic
Dalibor Sojic
Makedonija

Član broj: 7051
Poruke: 796
62.162.209.*

Sajt: right-sock.net


+1 Profil

icon Re: Name objekta u TStrings i pristup do njega01.11.2005. u 12:11 - pre 201 meseci
Uf, nije to. Evo opširnije:

Nemam objekte. Imam string promenljive. I tom string promenljive da dodelim vrednost.

Umesto da imam dva TEdita:

Code:

TEdit(FindComponent('Ime')).Text = 'Neko ime';
TEdit(FindComponent('Prezime')).Text = 'Neko prezime';


hoću da imam dva stringa:
Code:

Ime:='Neko ime';
Prezime:='Neko prezime';


E sad... Kako da string promenljive "Ime" i "Prezime" pristupim na slični način ko u prvom primeru.

Code:

FindComponent('Ime'):='Neko ime';


ili

Code:

FindVariable('Ime'):='Neko ime';


A ovo rešenje mi se sviđa, ali za objekte.

[Ovu poruku je menjao sojic dana 01.11.2005. u 13:13 GMT+1]
routing protocols enable routers to route routed protocols!
 
Odgovor na temu

marcha
Nikola Marcic
Beograd/Leskovac

Član broj: 6454
Poruke: 108
*.36.eunet.yu.

ICQ: 156892888


+1 Profil

icon Re: Name objekta u TStrings i pristup do njega01.11.2005. u 13:31 - pre 201 meseci
Brate, malo si konfuzan :) , cas hoces objekte cas neces..
Code:

var Objlist:TStrings;
    i:Integer;
begin
 Objlist:=TStringList.Create;
 try
  ObjList.Values['Ime']:='Nikola';
  ObjList.Values['Prezime']:='Marcic';
  ShowMessage(ObjList.Text);//Sadrzaj liste
  ShowMessage(ObjList.ValueFromIndex[0]);//Vraca vrednost za Ime
  ShowMessage(ObjList.Values['Prezime'])//Vraca vrednost za Prezime;
  finally
   ObjList.Free;
  end;
end;

Marcha
-----------------------------------
Pretpostavka je majka zajeba.
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Name objekta u TStrings i pristup do njega01.11.2005. u 14:10 - pre 201 meseci
Ne moze to sa stringovima.
 
Odgovor na temu

sojic
Dalibor Sojic
Makedonija

Član broj: 7051
Poruke: 796
62.162.220.*

Sajt: right-sock.net


+1 Profil

icon Re: Name objekta u TStrings i pristup do njega01.11.2005. u 15:05 - pre 201 meseci
U principu trebaju mi objekte, ali kasnije palo mi na pamet šta ako promenljiva nije objekat nego običan string.

Hvala u svakom slučaju.
routing protocols enable routers to route routed protocols!
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Name objekta u TStrings i pristup do njega

[ Pregleda: 2726 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.