[Grafika] [WebTip] [Fotografování] [Galerie] [MujMac] [Printing]
  Redakce: info@builder.cz   Inzerce: reklama@grafika.cz

 Diskuzní forum: Delphi

Téma diskuze: Diskuse o vývojářském nástroji Delphi

Tip: nemáte rádi v textu smajlíky? Ruší vaše zdrojové kody? Vypněte si je! (Moje nastavení / Nastavení soukromí)
Zistenie mena komponenty
Vloženo uživatelem: fizo1 - uživatel již zaslal 42 příspěvků (IP uloženo)
Datum: 08. 02. 2010 17:38

Zdravím mám taký menší problém s ktorým si neviem rady.Potreboval by som v aplikáci zistit meno komponenty v tvare napr: form1.dbgrid1. Mám aplikáciu ktorá otvára pod sebou (Form1) dalsie okná asi takto

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2:=tForm2.create(application);
Form2.show;
Form2.Release;
end;

podobne otvorím aj form3, na formoch Form2 a Form3 mám umiestnené tlačítka obidve sa volajú povedzme Button1 v OnCreate každého z fomov mám toto:

procedure TForm2(3).FormCreate(Sender: TObject);
begin
Button1.OnClick := Form1.tlacitko;
end;


procedure TForm1.tlacitko(Sender: TObject);
var meno:string;
begin
meno:=TButton(sender).GetNamePath;
end;

Kym som mal jeden form vsetko islo OK ale pokial mám viacej formov neviem si rady ako zistit v porcedure TForm1.tlacitko z ktoreho formu pochadza sender(prípadne niečo v tvare form1.button1).
Urcite ide o banalny dotaz a je to skor mojim nepochopenim dedicnosti a celkovo, ale poprosim Vas o radu hladal som na fore ale nikde som sa nemohol dopatrat.
Dakujem vopred za rady.


thumbs up

Re: Zistenie mena komponenty
Vloženo uživatelem: Mi.Chal - uživatel již zaslal 9498 příspěvků (IP uloženo)
Datum: 08. 02. 2010 18:18

fizo1 Napsal:
-------------------------------------------------------
> Zdravím mám taký menší problém s ktorým si neviem
> rady.Potreboval by som v aplikáci zistit meno
> komponenty v tvare napr: form1.dbgrid1. Mám
> aplikáciu ktorá otvára pod sebou (Form1) dalsie
> okná asi takto

muzes si precist sender a pak projit jeho parenty, ale myslim, ze to na nic nebude potreba

> procedure TForm2(3).FormCreate(Sender: TObject);
> begin
> Button1.OnClick := Form1.tlacitko;
> end;

tohle je podle me nejaka silena prasarna, z jednoho formulare bys nemel volat obsluhu eventu na jinem. Napis co chces udelat a urcite to pujde nejak normalne. Treba si muzes udelat svoje eventy a tim posilat ostatnim objektum notifikace, ze se neco zmenilo




Pro vkladani kodu slouzi tag Code.
________________________________________________
Odpovedi na nejcastejsi zdejsi otazky najdete na
http://www.4itdevelopers.net/faq_at_builder.aspx

Re: Zistenie mena komponenty
Vloženo uživatelem: fizo1 - uživatel již zaslal 42 příspěvků (IP uloženo)
Datum: 08. 02. 2010 22:21

No prakticky som sa pokusal urobit nejake centralne vykreslovanie dbgrid pomocou OnDrawColumnCell bolo to trosku na rychlo a tak jedine co ma napadlo je urobit to takym stylom ze, v DB som si zadefinoval stlpce a vsetko ostatne a ako identifikator tabulky som pouzil vzdy nazov formu na ktorom je dany dbgrid a jeho nazov.Nasledne som v hlavnom okne vytvoril proceduru na vykreslovanie a pomocou (sender:Tobject) som chcel zistit ktory object ho zavolal a podla toho zvoli vzdy trochu ine vykreslenie skladbu stlpcov a podobne. Potreboval som to trosku na rychlo a v tejto oblasti zjavne niesom tak doma ako by som mal. Kazde voditko ako postupovat v takychto pripadoch mi pomoze a ja uz to dostudujem :-) DAKUJEM

Re: Zistenie mena komponenty
Vloženo uživatelem: Mi.Chal - uživatel již zaslal 9498 příspěvků (IP uloženo)
Datum: 08. 02. 2010 22:38

fizo1 Napsal:
-------------------------------------------------------
> No prakticky som sa pokusal urobit nejake
> centralne vykreslovanie dbgrid pomocou
> OnDrawColumnCell bolo to trosku na rychlo a tak
> jedine co ma napadlo je urobit to takym stylom ze,
> v DB som si zadefinoval stlpce a vsetko ostatne a
> ako identifikator tabulky som pouzil vzdy nazov
> formu na ktorom je dany dbgrid a jeho
> nazov.Nasledne som v hlavnom okne vytvoril
> proceduru na vykreslovanie a pomocou
> (sender:Tobject) som chcel zistit ktory object ho
> zavolal a podla toho zvoli vzdy trochu ine
> vykreslenie skladbu stlpcov a podobne. Potreboval
> som to trosku na rychlo a v tejto oblasti zjavne
> niesom tak doma ako by som mal. Kazde voditko ako
> postupovat v takychto pripadoch mi pomoze a ja uz
> to dostudujem

Ja myslim, ze by ti mohlo stacit to udelat tak, ze si napises funkce/metody, ktere budou zajistovat ruzne typy vykresleni, ty budes mit verejne a treba v nejake zvlastni unite. Na formulari pak muzes dbgridu nastavit event pro vykresleni a v nem volat ty tvoje funkce (ruzne podle toho, jak to chces vykreslit); tim budes mit vykreslovani resene na jednom miste a zaroven nebudes muset z jednoho formulare lezt do jineho. Dalsi moznost by byla treba udelat vlastniho potomka dbgridu, ale to je jenom kvuli vykreslovani asi zbytecne.


Pro vkladani kodu slouzi tag Code.
________________________________________________
Odpovedi na nejcastejsi zdejsi otazky najdete na
http://www.4itdevelopers.net/faq_at_builder.aspx



Vaše jméno: 
Váš e-mail: 
Předmět: 

:-)  :-(  ;)  :D  :S  spatne  dobre  bold  italic  email  citace  odkaz  obrazek 
Antispam ochrana u neregistrovaných uživatelů - opište čísla z obrázku:
  

Toto fórum je provozováno také jako emailová konference s e-mailovou adresou delphi [a] builder.cz.
Podrobný návod jak se k odběru zpráv e-mailem přihlásit naleznete v tomto návodu.




  



Toto je neredigovaná a nemoderovaná diskuse čtenářů serveru Builder.cz. Redakce ani provozovatel serveru za obsah jednotlivých příspěvků nenese zodpovědnost.

info@builder.cz
Vydává Grafika Publishing, s.r.o.
Copyright (c) 1997-2005 Všechna práva vyhrazena
Pro diskuzní fóra využíváme software z phorum.org