|
Вопрос # 4 404/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
создаю TListBox в своем классе в качестве локальной переменной. если еспользую Create с nil или self валится с ошибкой (см ниже). Как быть?
---------------------------
Debugger Exception Notification
---------------------------
Project DSPlayerTestProject.exe raised exception class EInvalidOperation with message 'Control '' has no parent window'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
 |
Вопрос задал: AlexMPEI (статус: 1-ый класс)
Вопрос отправлен: 9 июля 2010, 18:11
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 28; последнее сообщение — 11 июля 2010, 18:46; участников в обсуждении: 5.
Страницы: [1] [2] [Следующая »]
|
min@y™ (статус: Доктор наук), 9 июля 2010, 18:25 [#1]:
Стопудово, ошибка в 17-й строке.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Тов. Женька (статус: 3-ий класс), 9 июля 2010, 18:59 [#2]:
А ты ему Parent - то назначил? На чем он должен у тебя находиться?
|
|
AlexMPEI (статус: 1-ый класс), 9 июля 2010, 19:21 [#3]:
Да, я уже разобрался, он требует ParentWindow. но в том-то и дело что я его использую только для хранения данных и он у меня не видим. Я его динамически создаю и убиваю. можно как-то обойти это требование ParentWindow со стороны TListBox?
ItemsList := TListBox.Create(nil);
без этой строки выпадает эксепшн:
ItemsList.ParentWindow := hndl; (hndl = Handle)
|
|
Тов. Женька (статус: 3-ий класс), 9 июля 2010, 19:31 [#4]:
1. TL := TListBox.Create(Self);
TL.Width := 100;
TL.Left := 8;
TL.Top := 8;
TL.Height := 100;
TL.ParentWindow := Form1.Handle;
2. TL := TListBox.Create(Self);
TL.Width := 100;
TL.Left := 8;
TL.Top := 8;
TL.Height := 100;
TL.Parent := Form1;
И так и так работает.
|
|
min@y™ (статус: Доктор наук), 9 июля 2010, 19:34 [#5]:
Цитата (AlexMPEI):
но в том-то и дело что я его использую только для хранения данных и он у меня не видим. Я его динамически создаю и убиваю.
А зачем ты используешь ВИЗУАЛЬНЫЙ компонент для хранения данных, если этот компонент не виден? Ж8-0
Ну-ка давай поподробней!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Тов. Женька (статус: 3-ий класс), 9 июля 2010, 19:35 [#6]:
А зачем нужен невидимый визуальный компонент?
|
|
Вадим К (статус: Академик), 9 июля 2010, 19:38 [#7]:
Думаю, TStringList будет чудным заменителем.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 9 июля 2010, 19:42 [#8]:
Цитата (Вадим К):
Думаю, TStringList будет чудным заменителем.
Я тоже так думаю.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Rub (статус: Посетитель), 10 июля 2010, 13:29 [#9]:
Тов. Женька, а как воткнуть строки-то?
TL := TListBox.Create(Self);
TL.Width := 100;
TL.Left := 8;
TL.Top := 8;
TL.Height := 100;
TL.Parent := Form1;
Правда вместо listbox использую combobox, а строки воткнуь не могу. У меня проблема с этим + есть еще один вопрос: У меня в форме цикл, который создает заданное количество строк, в каждой строке 2 поля Edit и 2 поля ComboBox и вопрос: Delphi сам выставит индексы типа Combobox1, Combobox2, ....?
|
|
min@y™ (статус: Доктор наук), 10 июля 2010, 13:47 [#10]:
Порой встречаю людей, которые из-за незнания матчасти изобретают такие унитазы со встроенными карбюраторами, что просто пипец нах... Меня это не радует.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Rub (статус: Посетитель), 10 июля 2010, 14:02 [#11]:
Во-первых, это не ответ. Во-вторых, я новичок в Delphi, но это и так понятно. А ты минай по-любому не владеешь всеми знаниями, я не говорю про дельфи, и в этих областях, в которых ты не шаришь, ты тоже изобретаешь эти унитазы с карбом. Так что нехер на других хрень говорить, коли в своем глазу бревно не видишь
|
|
min@y™ (статус: Доктор наук), 10 июля 2010, 14:31 [#12]:
Цитата (Rub):
А ты минай по-любому не владеешь всеми знаниями
100% правда! Это ж невозможно.
Цитата (Rub):
ты тоже изобретаешь эти унитазы с карбом.
Неверно! Где доказательства?
Цитата (Rub):
Так что нехер на других хрень говорить, коли в своем глазу бревно не видишь
Сходил к зеркалу. Бревна не увидел. Не подскажешь, о умнейший, в каком глазу у меня бревно?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Rub (статус: Посетитель), 10 июля 2010, 15:07 [#13]:
Знаешь, я писал сюда не для того, чтобы разводить всякие подобные разговоры, если ты не можешь ответить на мой вопрос, то просто не пиши
|
|
min@y™ (статус: Доктор наук), 10 июля 2010, 15:14 [#14]:
Цитата (Rub):
Знаешь, я писал сюда не для того, чтобы разводить всякие подобные разговоры
Даааааааааааа? А это чьи буквы?
Цитата (Rub):
А ты минай по-любому не владеешь всеми знаниями, я не говорю про дельфи, и в этих областях, в которых ты не шаришь, ты тоже изобретаешь эти унитазы с карбом. Так что нехер на других хрень говорить, коли в своем глазу бревно не видишь
Я хотел тебе помочь, а ты наезжаешь. И меня это не радует.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Rub (статус: Посетитель), 10 июля 2010, 15:29 [#15]:
icq 8866628 лучше сюда напиши, я тебя обрадую )))
|
|
min@y™ (статус: Доктор наук), 10 июля 2010, 15:41 [#16]:
Цитата (Rub):
icq 8866628 лучше сюда напиши, я тебя обрадую
Оно мне надо?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Rub (статус: Посетитель), 10 июля 2010, 16:01 [#17]:
min@y™: если ты не можешь ответить на мой вопрос, то просто не пиши
|
|
min@y™ (статус: Доктор наук), 10 июля 2010, 17:35 [#18]:
Цитата (Rub):
если ты не можешь ответить на мой вопрос, то просто не пиши
Всё правильно. Я не пишу, когда не могу ответить на вопрос. В данном случае я ответить на вопрос могу, поэтому и пишу.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Тов. Женька (статус: 3-ий класс), 10 июля 2010, 18:13 [#19]:
Rub, на будущее пожелание тебе: хочешь спросить что-то - лучше заведи отдельную тему, возможно кому-то она тоже будет важна и так ее будет проще найти.
По поводу твоего первого вопроса на счет combobox:
procedure TForm1.FormCreate(Sender: TObject);
var
Cb : TComboBox;
i : Integer;
begin
Cb := TComboBox.Create(Self);
Cb.Left := 8;
Cb.Top := 8;
Cb.Width := 100;
Cb.Height := 100;
Cb.Parent := Form1;
for i := 0 to 9 do
Cb.Items.Add('String #' + IntToStr(i));
end;
По поводу вопроса о цикле и строках.
Совершенно не понял, каким образом ты размещаешь в строках Edit и ComboBox. Приведи лучше код, возможно,так будет проще тебя понять. Но, возможно, следующий ниже код тебе поможет:
l := 8;
t := 8;
for i := 0 to 9 do
begin
with TComboBox.Create(self) do
begin
Left := l;
Top := t;
Width := 100;
Height := 100;
Name := 'Cb'+IntToStr(i);
Parent := Form1;
for j := 0 to 9 do
Items.Add(Name + ' string #' + IntToStr(j));
l := l + 108;
end;
end;
|
|
Rub (статус: Посетитель), 10 июля 2010, 18:14 [#20]:
min@y™: В таком случае, процитируй свой ответ на мой вопрос
|
Страницы: [1] [2] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|