Napisu jen to dulezite, mam vice dynamicky vytvorenych oken, stim by problem nemel byt, v oknech mam button a memo predstavuju si to tak ze po kliknu na tlacitko se odesle zprava. Nic sloziteho. Takze k procedure onclick na tlacitko jsem priradil proceduru TForm1.OdeslatForm, ale potrebuju aby pro kazde tlacitko bral text z jineho mema a tady prichazi problem kdyz vytvorim proceduru
procedure TForm1.OdeslatForm(Sender: TObject);
tak pote muzu pouzit btnSend.onClick:=OdeslatForm;
vse funguje, ale kdyz chci procedury, jak to jen rict nejak odlisit, tak pouziji
procedure TForm1.OdeslatForm(CisloF:integer;Sender: TObject);
v tom pripade by teda mela byt prirazena procedura k btnsend.onclick
btnSend[Cislo].onClick:=OdeslatForm(CisloF);
A ted se dostavame k memu problemu. Toto prirazeni nefunguje bude to nejspis Sendem ktery je uveden v procedure ale kdyz jsem u procedury
procedure TForm1.OdeslatForm(CisloF:integer;Sender: TObject);
nedeklaroval CisloF:integer
tak jsem nemusel uvadet sendera a fungovalo to. Proto se ptam jaky Sender mam napsat nebo jestli je to cele spatne napsane. Snazil jsem se abych to napsal strucne, ale jestli jsem vynechal neco duleziteho napiste.
Zhruba takhle to mam napsane, avsak s chybou kterou jsem popsal vyse.
var btnSend:array of TButton;
memoWri:array of TMemo;
formchat:array of TForm;
procedure TForm1.OdeslatForm(CisloF:integer;Sender: TObject);
begin
ClientSocket1.Socket.SendText(memoWri[CisloF].Lines.Strings[0]);
end;
procedure Tform1.FormCreate(Cislo:integer);
begin
formChat[Cislo]:=Tform.CreateNew(Form1);
formChat[Cislo].show;
memoWri[Cislo]:=TMemo.create(self);
memoWri[Cislo].Parent:=formChat[Cislo];
btnSend[Cislo]:=TButton.Create(self);
btnSend[Cislo].parent:=formChat[Cislo];
btnSend[Cislo].onClick:=OdeslatForm(Cislo); //Error: Not enough actual parameters
end;