Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2009, 22:23   #1
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию Проблема с названием компонентов в delphi

Попробую объяснить:У меня на форме распологается иного компонентов MEMO, и есть переменная "a" (ей присвоен номер нужного Memo ).
Мне нужно записать текст в нужный MEMO

Memoa.text:='edcdsc'; - так конечно не прокатит ))

Как в нужное мне MEMO записать текст?

Надеюсь, что я правильно донес суть вопроса ))
BuT@JL вне форума Ответить с цитированием
Старый 26.03.2009, 22:27   #2
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Код:
FindComponent
Цитата:
FindComponent('Memo' + IntToStr(i)) as TMemo).text

Последний раз редактировалось Levsha100; 26.03.2009 в 22:30.
Levsha100 вне форума Ответить с цитированием
Старый 26.03.2009, 22:46   #3
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию

Levsha100 спасибо
BuT@JL вне форума Ответить с цитированием
Старый 26.03.2009, 23:32   #4
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию

только он почему то находит все memo, которые расположен на самой форме, а тех, которые расположены в PageControl он не находит???
Не знаешь как это исправить???

На всякий случай: В PageControl я создавал Memo с помощью в этого:
for j:=0 to a-1 do begin
with tmemo.create(application) do
begin
Parent := PageControl.Pages[j];
name:='Memo'+inttostr(j+1);
Left := 5;
Top := 12;
Width := 728;
Height := 70;
end;
Может в этом проблема???
BuT@JL вне форума Ответить с цитированием
Старый 27.03.2009, 00:13   #5
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию

Ну кто нибудь поможет... help me!!!
BuT@JL вне форума Ответить с цитированием
Старый 27.03.2009, 10:20   #6
Neobrat
Форумчанин
 
Регистрация: 10.12.2007
Сообщений: 124
По умолчанию

ну можешь пробижаться циклом по PageControl

procedure TForm1.BitBtn1Click(Sender: TObject);
var ixPages,ixControl:integer;
Pages:TTabSheet;
MyMemo:TMemo;
begin
for ixPages:=0 to PageControl1.PageCount-1 do
begin
Pages:=PageControl1.Pages[ixPages];
for ixControl:=0 to Pages.ControlCount-1 do
if Pages.Controls[ixControl] is TMemo then MyMemo:=Pages.Controls[ixControl] as TMemo;
end;
end;

MyMemo и есть твой найденый memo делай дальше с ним что хочешь
Русский язык не мой конёк
Neobrat вне форума Ответить с цитированием
Старый 27.03.2009, 13:10   #7
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию

А как сделать это: найти нужную вкладку по индексу, и скрыть её????
BuT@JL вне форума Ответить с цитированием
Старый 27.03.2009, 13:39   #8
Neobrat
Форумчанин
 
Регистрация: 10.12.2007
Сообщений: 124
По умолчанию

найто то вот просто

ixPages - идекс вкладки

PageControl1.Pages[ixPages] твоя вкладка..

а вот как сделать ее невидимой...
PageControl1.Pages[ixPages].Visible:=false; правдо это не скроет вкладку а только сделает на ней все компаненты невидимыми, и то если переключиться с одной вкладки обратно на эту все станет видимое..

вообшем там геморно.. если она в дальнейшем нафиг не нужна будет то просто удали ее...

PageControl1.Pages[ixPages].free;

иначе ищи или жди дальше )))
могу предположить сначало вкладку куда нить сохранить и удалить ее из PageControl а потом при не обходимости востановить ее..

но учти что при PageControl1.Pages[ixPages].free; индексация поменяеться))
Русский язык не мой конёк
Neobrat вне форума Ответить с цитированием
Старый 27.03.2009, 13:48   #9
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию

Просто вот так PageControl1.Pages[ixPages], я написать не могу потому что PageControl1 у меня еще не создан (делфи ругается неверный индификатор PageControl1). Я ведь её создаю PageControl1 при запуске приложения... извини что сразу не объяснил
BuT@JL вне форума Ответить с цитированием
Старый 27.03.2009, 14:06   #10
Neobrat
Форумчанин
 
Регистрация: 10.12.2007
Сообщений: 124
По умолчанию

ну можешь как тебе предлагали выше

var PageControl:TPageControl - найденый контрол
ControlIndex:integer; его индекс

PageControl:=FindComponent('PageCon trol' + IntToStr(ControlIndex)) as TPageControl;

можешь также как и раньше циклом обойти все..

for ix:=0 to Form1.ControlCount-1 do
begin
if Form1.Controls[ix] is TPageControl then PageControl:=Form1.Controls[ix] as TPageControl;
end;
Русский язык не мой конёк

Последний раз редактировалось Neobrat; 27.03.2009 в 14:09.
Neobrat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПРоблема с передачей и сохранением файлов с помощью indi компонентов albatros Работа с сетью в Delphi 4 18.02.2009 22:39
Проверить наличие листа с данным названием Sega Microsoft Office Excel 2 05.08.2008 17:18
Проблема с созданием компонентов dr.Chas Общие вопросы Delphi 4 25.04.2008 20:12
ActionToolBar. Проблема пересечения компонентов nimf Компоненты Delphi 0 18.10.2007 10:42
Выгрузка в файл с динамическим названием. Квэнди БД в Delphi 0 24.06.2007 15:39