Názory ke článku Vytváření komponent za běhu programu
Proč tak neefektivní kód? Proč deklarujete novou třídu TTlacitko typu record? V tomto případě je naprosto bez významu, mnohem lepší je místo tlacitko: array of TTlacitko zapsat přímo tlacitko: array of TButton. A proč k eventu OnClick jste přiřadil FormClick? Mnohem lepší je vytvořit novou proceduru např. tlacitkoklik(sender: TObject).
No to, že tam je record je proto např. kdyby si někdo tam chtěl ještě ke každému tlačítku přidat nějaké údaje nebo tak. A to onClick v tom máš pravdu, na to by mohla být procedura.
Pokud jsem správně pochopil, tak tento článek je určen začátečníkům a ty record spíše plete, protože dál v článku o record není žádná zmíňka.
Tohle není pro začátečníky! Toto je tipy a triky v Delphi to znamená, že tu jsou různé věci z různých oblastí. O recordech třídách atd se mají zabývat tam někde v seriálech o Delphi.
Jo, master má pravdu, toto jsou tipy a triky a tedy pro ty, co již mají s Delphi zkušenosti.
Ja bych chtel dodat toto self neni podminkou pro ty kteri to neznaj a componentu bych delal radeji do dll library ktera se da menit rozsirovat a podobne samotnou aplikaci bych vybavil jen zakladnimi componenty , ale popis jinac dobrej .
Mohli by ste nekdo napsat jak by vypadala ta procedura na to tlactkoklik ?? ... me se to na ten formluar taky nelibi a nevim jak udelat tu proceduru
17. 9. 2007
Sám jsem měl podobný problém, tak jsem zjišťoval, jak to udělat, až jsem to nakonec zjistil:
Do deklarace formuláře do části private declarations se napíše:
procedure tlacitkoklik (sender: TObject);
Při vytváření tlačítka mu pak tuto proceduru přiřadíme:
Tlacitko[i].button.OnClick:=tlacitkoklik;
A nakonec tu proceduru implementujeme:
Procedure TForm1.tlacitkoklik (sender: TObject);
begin
blablabla-co to má dělat;
end;
P.S: Já jsem v delphi začátečník (mám zkušnosti z jiných jazyků) a nevím, proč bych se to nemohl učit zrovna z tohoto kurzu, přijde mi nejlepší z těch, co jsem na netu našel.
7. 12. 2009
ahoj, rád bych se zeptal jak by se to mělo udělat, kdybych chtěl v programu potom tuhle vytvořenou komponentu opět měnit. třeba změnit její caption? nevím jak k ní přistupovat.
{skoušel jsem Tcomponent(findcomponent("jmeno vytvorené komponenty")).destroy. víc mi kompiler nějak nepovolil. TAkže ji vytvořím, najdu a rozbyju, ale přece ji nebudu vytvářed pořád znova :-) díky, pokud se vám podaří mi pomoci}
7. 12. 2009
nemám tlačítka v poli, protože předem nevím, kolik by jich asi tak mohlo být.