Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: AlexMPEI (статус: 1-ый класс)
Вопрос отправлен: 9 июля 2010, 18:11
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 28; последнее сообщение — 11 июля 2010, 18:46; участников в обсуждении: 5.

Страницы: [1] [2] [Следующая »]

min@y™

min@y™ (статус: Доктор наук), 9 июля 2010, 18:25 [#1]:

Стопудово, ошибка в 17-й строке.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Тов. Женька

Тов. Женька (статус: 3-ий класс), 9 июля 2010, 18:59 [#2]:

А ты ему Parent - то назначил? На чем он должен у тебя находиться?
AlexMPEI

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™

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™

min@y™ (статус: Доктор наук), 9 июля 2010, 19:42 [#8]:

Цитата (Вадим К):

Думаю, TStringList будет чудным заменителем.

Я тоже так думаю.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Rub

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™

min@y™ (статус: Доктор наук), 10 июля 2010, 13:47 [#10]:

Порой встречаю людей, которые из-за незнания матчасти изобретают такие унитазы со встроенными карбюраторами, что просто пипец нах... Меня это не радует.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Rub

Rub (статус: Посетитель), 10 июля 2010, 14:02 [#11]:

Во-первых, это не ответ. Во-вторых, я новичок в Delphi, но это и так понятно. А ты минай по-любому не владеешь всеми знаниями, я не говорю про дельфи, и в этих областях, в которых ты не шаришь, ты тоже изобретаешь эти унитазы с карбом. Так что нехер на других хрень говорить, коли в своем глазу бревно не видишь
min@y™

min@y™ (статус: Доктор наук), 10 июля 2010, 14:31 [#12]:

Цитата (Rub):

А ты минай по-любому не владеешь всеми знаниями

100% правда! Это ж невозможно.

Цитата (Rub):

ты тоже изобретаешь эти унитазы с карбом.

Неверно! Где доказательства?

Цитата (Rub):

Так что нехер на других хрень говорить, коли в своем глазу бревно не видишь

Сходил к зеркалу. Бревна не увидел. Не подскажешь, о умнейший, в каком глазу у меня бревно?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Rub

Rub (статус: Посетитель), 10 июля 2010, 15:07 [#13]:

Знаешь, я писал сюда не для того, чтобы разводить всякие подобные разговоры, если ты не можешь ответить на мой вопрос, то просто не пиши
min@y™

min@y™ (статус: Доктор наук), 10 июля 2010, 15:14 [#14]:

Цитата (Rub):

Знаешь, я писал сюда не для того, чтобы разводить всякие подобные разговоры

Даааааааааааа? А это чьи буквы?

Цитата (Rub):

А ты минай по-любому не владеешь всеми знаниями, я не говорю про дельфи, и в этих областях, в которых ты не шаришь, ты тоже изобретаешь эти унитазы с карбом. Так что нехер на других хрень говорить, коли в своем глазу бревно не видишь

Я хотел тебе помочь, а ты наезжаешь. И меня это не радует.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Rub

Rub (статус: Посетитель), 10 июля 2010, 15:29 [#15]:

icq 8866628 лучше сюда напиши, я тебя обрадую )))
min@y™

min@y™ (статус: Доктор наук), 10 июля 2010, 15:41 [#16]:

Цитата (Rub):

icq 8866628 лучше сюда напиши, я тебя обрадую

Оно мне надо?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Rub

Rub (статус: Посетитель), 10 июля 2010, 16:01 [#17]:

min@y™: если ты не можешь ответить на мой вопрос, то просто не пиши
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

Rub (статус: Посетитель), 10 июля 2010, 18:14 [#20]:

min@y™: В таком случае, процитируй свой ответ на мой вопрос

Страницы: [1] [2] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:26
Выполнено за 0.03 сек.