- Prvo moras da kreiras objekat, sto si pretpostavljam vec uradio;
- moras da podesis svojstva komponente prilikom kreiranja;
Posto tebi treba svojstvo Name (mora biti unikatno) da bi se referisao na kreiranu komponentu onda ga generisi. Ja sam malo modifikovao Cantuov kod iz knjige Mastering Delphi da bih to postigao.
uses
StdCtrls;
procedure TForm1.FormMouseDown(
Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Btn: TButton;
begin
Btn := TButton.Create (Self);
Btn.Parent := Self;
Btn.Left := X;
Btn.Top := Y;
Btn.Width := Btn.Width + 50;
Btn.Name := ('Btn' + IntToStr (Form1.ComponentCount));
end;
Ja se nadam da ovde nema nekih preteranih nejasnoca. Kod mene kod savrseno dobro radi.
isto tako... postoje li ugradjene funkcije za ispitivanje da li je uneti podatak float, integer.....
To mozes vrlo jednostavno da uradis pomocu izuzetka. Imas formular, jedan Edit i jedno dugme. Evo nesto malo koda...
procedure TForm1.Button1Click(Sender: TObject);
var
Test: Integer;
begin
try
Test := StrToInt (Edit1.Text);
except
on Exception do
raise Exception.Create ('Niste uneli ceo broj. bla bla');
end;
end;
Unutar try bloka kazujes mu sta da radi. Ukoliko dodje do izuzetka on ispisuje on radi ono sto je navedeno u bloku except i prekida dalje izvrsenje koda. Rad sa izuzecima je prilicno slozena materija (posto su i izuzeci klase sa svojim metodama, svojstvima itd.)
Pored ove funkcije za konverziju (StrToInt) najcesce ces koristiti StrToFloat, StrToDate, StrToTime i obrnute funkcije.
http://www.activecollab.com - Alat za upravljanje projektima