W niektórych przypadkach np. kiedy chcemy mieć na formularzu dużo komponentów tego samego rodzaju (np. 200 pól Edit)...o wiele wygodniej byłoby.. zamiast przeciągać je z palety...po prostu je napisać( napisać kod ) ...Czy delphi daje taką możliwośc???Jeśli tak to w którym pliku należy pisać i co z tym potem zrobić aby program zamienił kod w wizualne komponenty na formularzu?????
Pisać łatwiej? wątpie. Jak nie chcesz wstawić 200 editów na formę to wstaw jeden, skopiuj (po prostu zaznacz i Ctrl+C) i wklejaj do woli (Ctrl+V). Nastpępnie View->Aligment Palette, zaznaczasz wszystkie komponenty i układasz je sobie. A jeśli chcesz bawić się w pisanie ręczne to możesz... klikasz prawym na formę i wybierasz 'View as text' i tam wklepujesz ręcznie komponenty i ich właściwości. Potem klikasz prawym na kod i wybierasz 'View as form'... i już.
[dopisane]
A ja się nie domysliłem, że chodzi o dymaniczne :-P
Trzybobry!
Domyslam sie, ze chodzi o komponenty dynamiczne. Tak mi sie zdaje, ze o to Ci chodzi. Zajrzyj do artykulow o Delphi. Tam to jest.
Pozdrawiam.
brzydkim zwyczajem delphi jest to że użytkownik ma pośredni tylko wpływ na nazwy/numery komponentów...jeśli chciałbym zmieniać nazwy 200tu komponentów, albo nawet tylko ich numery (np z Edit1 na Edit101 itd) to zajęłoby mi to mnóstwo czasu i kosztowało trochę nerwów. Prościej jest w Edytorze Worda (ew +Excel) napisać sobie wszystko tak jak ja chcę i powielić stosując np. odpowiedni ciąg liczb naturalnych jako numery kolejnych komponentów (to Excelem robi się łatwo), mogę również obliczać parametry rozmieszczenia komponentów na formularzu
kl
Sam sobie odpowiadasz na pytanie. Jeśli nie chesz tworzyć komponentów dynamicznie (co pewnie byłoby prostrze) to zobacz jak delphi zapisuje właściwości komponentów w pliku *.DFM (lewy Alt+F12) i powielaj to sposobem, który opisałeś.
Proponuje jednak dynamicznie... pętelka itd.
dzięki za radę ....wyprubuję..
Dynamiczne będą dużo prościej:
var
edit: array[0..200] of TEdit;
i: integer;
begin
for i:=0 to 200 do
begin
edit[i]:=Tedit.create;
//tutaj inne właściwości
edit[i].show;
end;
end;
Jeszcze w uses musi być wpisana biblioteka, w której są edity... Controls, czy coś. Nie pamiętam...
Ale sprawdzisz, wstawiając edita na formę i zobaczysz, co do uses Ci się dodało.
Nie trzeba używać tablicy. Chyba, że chce się szybko odwoływać do tych komponetów w tej samej procedurze. Inaczej chyba nie ma sensu. Wystarczy tak:
var
edit: TEdit;
i: integer;
Potem szukać editów za pomocą FindComponent. I jeszcze po stworzeniu edita nadać mu nazwę np. w tym przypadku:
edit.Name := 'edit' + IntToStr(i);