Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Вниз

Run-time-компонент не хочет определяться...   Найти похожие ветки 

 
Maximus   (2003-01-06 21:06) [0]

Видите ли, в моем приложении часть компонентов Run-time, а именно добрая половина всех Label создается после определенного момента. Так вот, после того как они создались, мне с ними надо бы поработать, но… Увы! Прога их не видит!.. Я пытаюсь их так найти:
{Code Begin}
var
I : Integer;
N : String;
begin
for I := 0 to FormMain.ComponentCount - 1 do
if Components[I] is TLabel then
begin
N := Components[I].Name;
ShowMessage(N);
end;
end;
{Code End}
Вижу имена всех лейблок, которые налепил до помпиляции... А тех, что создались попутно - нет!..
Подскажите, ПЛИЗ, что делать?


 
Rouse_   (2003-01-06 21:29) [1]

При динамическом создании ты забыл по видимому присвоить компоненту имя, исправь это.

Желаю успехов


 
Maximus   (2003-01-06 23:18) [2]

Нет, я не забыл имя указать. Оно есть, и у всех разное.


 
Song   (2003-01-07 09:53) [3]

Видимо когда создавал, не указал AOwner


 
Геннадий   (2003-01-07 10:01) [4]

Проверь свойсвто Parent для создаваемых объектов.

(создаём в методе формы)
var
LA : array [1..2] of TLabel;

begin

LA[1]:= TLabel.Create(Self);
LA[1].Parent:= Self;
LA[2]:= TLabel.Create(Self);
LA[2].Parent:= Self;

LA[1].Visible:= True/False;
// ну и так далее...

end;


Удачи!


 
Юрий Зотов   (2003-01-07 10:27) [5]

> Геннадий © (07.01.03 10:01)

Sorry, а при чем тут Parent? Вы код в вопросе смотрели? Из него однозначно следует - форма не назначен Owner"ом меток, вот и вся причина. И никакой Parent к ней никакого отношения не имеет.


 
Maximus   (2003-01-07 10:27) [6]

У меня есть и Parent и имя, вот:

{Сама процедура}
procedure CreateLabel(AName: String; ACaption: String; ALeft: Integer; ATop: Integer);
var
lTemp: TLabel;
begin
lTemp := TLabel.Create(fMain.bMain);
lTemp.Parent := fMain.bMain; // это TPanel, на котором создается TLabel
lTemp.AutoSize := True;
lTemp.Caption := ACaption;
lTemp.Left := ALeft;
lTemp.Top := ATop;
lTemp.Name := AName;
lTemp.OnClick := fMain.lButtonClick;
end;


{Ее использование}
procedure SetPairsSchedule;
var
I: Integer;
begin
with fMain.FLessonsBase do
begin
for I := 1 to 4 do
begin
CreateLabel("lMon" + IntToStr(I), FAMon[I], 48, 30 + I * 16);
CreateLabel("lTue" + IntToStr(I), FATue[I], 48, 102 + I * 16);
CreateLabel("lWed" + IntToStr(I), FAWed[I], 48, 174 + I * 16);
CreateLabel("lThu" + IntToStr(I), FAThu[I], 224, 30 + I * 16);
CreateLabel("lFri" + IntToStr(I), FAFri[I], 224, 102 + I * 16);
CreateLabel("lSat" + IntToStr(I), FASat[I], 224, 174 + I * 16);
end;
end;
end;


Вот, эта процедура находится в отдельном модуле, все в ней работает все она создает. Но когда готовое приложение уже запущено, то найти созданные этой процедурой лейблы я не могу.
Может у кого есть какие мнения? Просто даже интересно стало, в чем дело? Что я упустил??? всем спасибо заранее!..


 
Юрий Зотов   (2003-01-07 10:35) [7]

lTemp := TLabel.Create(fMain.bMain);

Owner"ом метки становится панель bMain и метка попадает имеено в ее список Components. А потом Вы пытаетесь найти ее в списке Components самой формы, где ее, конечно, нет.

Исправьте так, вот и все:
lTemp := TLabel.Create(fMain);



 
Anatoly Podgoretsky   (2003-01-07 10:38) [8]

Значит воговиршь владелей fMain.bMain, а ишешь у fMain


 
Maximus   (2003-01-07 11:25) [9]

To: Юрий Зотов
Огромное спасибо, Юрий!.. Очень Вам признателен за помощь!!! Благодаря Вам, школа в которой я учусь не останется без программы-напоминалки расписания!.. :))) Спасибо!
Если смогу быть чем-то полезен - пишите: maximus.b@mtu-net.ru



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.061 c
14-49277
AL2002
2002-12-06 11:35
2003.01.16
---|Ветка была без названия|---


14-49249
gsu
2002-12-26 20:15
2003.01.16
А почему ?


1-48973
maxim2
2003-01-06 13:11
2003.01.16
Не могу засунуть прогу в Tray компонентом CoolTrayIcon


14-49295
TTCustomDelphiMaster
2002-12-27 17:25
2003.01.16
Париж де нотердам


1-49055
Dms
2003-01-08 11:50
2003.01.16
Ограничения размера INI файла





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский