Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.041 c
4-1102521653
ЛапотьВДельфи
2004-12-08 19:00
2005.01.30
Раздача прав доступа к папкам в WinNT (XP)


3-1103765055
Vader
2004-12-23 04:24
2005.01.30
ADO и dbExpress использование для локальных БД


4-1102658807
Andrey V.
2004-12-10 09:06
2005.01.30
Запуск из ДОСовской программы


1-1105568578
nachinaushiy
2005-01-13 01:22
2005.01.30
Помогите кто-нибудь....


3-1104314031
yaric
2004-12-29 12:53
2005.01.30
Странная ошибка TPFibDatabase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский