Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Вниздинамический массив из компонентов Найти похожие ветки
← →
Suvit (2005-01-20 11:20) [0]есть такой код для Билдера
Memo* memos[]={Memo1,Memo2};
memos[((TComponent*)Sender)->Tag]->Lines->LoadFromFile
Подскажите как его переделать для Delphi, интересует как можно в делфи легко создать массив из некоторых компонентов формы.
← →
Poirot © (2005-01-20 11:24) [1]memo : array of TMemo
SetLength(memo, 2);
memo[0] = Memo1;
memo[1] = Memo2;
Что-то вроде этого..
memos[((Sender as TComponent ).Tag].Lines.LoadFromFile()
← →
Suvit (2005-01-20 11:27) [2]т.е. в если мемов будет к примеру 100 мне надо каждый элемент завоить руками?
а как нибудь такmemos = [ Memo1, Memo2, ... Memo100];
нельзя?
← →
Style © (2005-01-20 11:30) [3]
> а как нибудь так
> memos = [ Memo1, Memo2, ... Memo100];
> нельзя?
А это что ни руками???
А тебе какая разница как руками вводить - Так или Сяк ??? :)))
← →
Poirot © (2005-01-20 11:32) [4]боюсь что нет... хотя в последних делфях аля 2005 всё мб и возможно...
← →
Suvit (2005-01-20 11:32) [5]
> А это что ни руками???
>
> А тебе какая разница как руками вводить - Так или Сяк ???
> :)))
понял, буду использовать TComponent.Conponents
← →
Poirot © (2005-01-20 11:37) [6]ЗЫ:
>>Memo* memos[]={Memo1,Memo2};
По IMHO Это не динамический массив, а как раз статический:) елси я ничего не путаю)
← →
Suvit (2005-01-20 11:44) [7]
> ЗЫ:
> >>Memo* memos[]={Memo1,Memo2};
> По IMHO Это не динамический массив, а как раз статический:)
> елси я ничего не путаю)
+1
динамический как так
(Memo*)* memos
← →
Style © (2005-01-20 11:47) [8]На наслаждайся :)))
type
TMemoArray = array of TMemo;
...
function TForm1.AddArr(const Args: array of TMemo): TMemoArray;
begin
SetLength(result, Length(Args));
CopyMemory(result,@Args, sizeof(Args));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ar: TMemoArray;
begin
ar := AddArr([Memo1, Memo2,Memo3]);
ar[0].Lines.Text := "Ops";
end;
← →
Poirot © (2005-01-20 11:47) [9]неа... не динамический... при таком объявлении это статика.. ибо память видуляется в стеке под этот массив, а вот если делать через new тогда просто так присвоить не получится...
конечно я ненаю, что там борланд с С придумал в биледре, но в С всю жизть было так именно:)
(Memo*)* memos - это совершенно другое объявление
← →
Suvit (2005-01-20 11:53) [10]
> неа... не динамический... при таком объявлении это статика..
> ибо память видуляется в стеке под этот массив, а вот если
> делать через new тогда просто так присвоить не получится...
> конечно я ненаю, что там борланд с С придумал в биледре,
> но в С всю жизть было так именно:)
> (Memo*)* memos - это совершенно другое объявление
понял, можно вызывать TMemo.Create
только им потом leftы и topы надо будет выставлять, что лень сделать :))
← →
Poirot © (2005-01-20 11:58) [11]Сделай проще. Сделай не массив а что-то типа списка связангого и работай сн им, а для удобства инкапсулируй это всё в какой нить класс и сделай у него дефолтным свойство напрмиер
property Items[Index:Integer]:TMemo read GerProc write GetProc; default;
и всё буит так как ты хочешь:) ООП блин:)
← →
Suvit (2005-01-20 12:32) [12]да я уже TObjectList взял, только получать из него плохо, все время кастовать приходиться
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.032 c