Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Alex6911
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 81
1

Выскакивает ошибка

26.02.2011, 19:18. Просмотров 734. Ответов 8
Метки нет (Все метки)

Помогите разобраться.
Создал класс TMyClass на основе класса ListBox.Добавил класс TTreeView.
Мне необходимо заполнить дерево узлами, (в моем примере указан один узел) и скопировать имена узлов в MyClass (он же ListBox, повторюсь)

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
type
  TForm1 = class(TForm)
    tv1: TTreeView;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
TMyClass=class(TListBox)
  private
 tv:TTreeView;
end;
 
var
  Form1: TForm1;
  MyClass:TMyClass ;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
var
  Node:TTreeNode;
begin
 MyClass:=TMyClass.Create(Self);
 MyClass.Parent:=Self;
 //создаю дерево и пишу в корень узел с именем "1-я строка"
 MyClass.tv:=TTreeView.Create(Self);
 MyClass.tv.Items.Add(nil,'1-я строка');
 
 //пишу в MyClass (типа ListBox) имя первого узла дерева
 // в данном случае это будет имя - "1-я строка"
 Node:= MyClass.tv.Items[0];
 MyClass.Items.Add(Node.Text);
 
end;
 
end.
Delphi
1
MyClass.tv.Items.Add(nil,'1-я строка');
В этом месте выскакивает ошибка.

Подскажите, что не так?

Добавлено через 1 час 23 минуты
Помогите!!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2011, 19:18
Ответы с готовыми решениями:

Выскакивает ошибка
Всем привет. В моей программе данные должны вводится в таблицу и расчет...

выскакивает ошибка
begin DataModule1.TableMatch.Cancel StateBrowse(Sender); end; ...

Try except end. Почему выскакивает ошибка Delphi?
procedure TForm1.Button1Click(Sender: TObject); var q:Integer; begin try ...

Выскакивает ошибка i/o 105 что делать?
unit Unit1; interface uses Windows, Messages, SysUtils, Variants,...

Выскакивает ошибка доступа после прохождения setlength
Добрый вечер. Выскакивает ошибка доступа после прохождения setlength(mas,i+1)....

8
ArtGrek
425 / 53 / 15
Регистрация: 31.12.2010
Сообщений: 191
26.02.2011, 19:29 2
попробуи так
Код
TMyClass=class(TListBox)
 tv:TTreeView;
end;


 MyClass.tv:=TTreeView.Create(Self);
Parent ...
 MyClass.tv.Items.Add(nil,'1-я строка');
1
Alex6911
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 81
26.02.2011, 22:37  [ТС] 3
ArtGrek,
Спасибо что ответил. Да делал я хозяев разных. Ни как. Видимо что то в принципе не так делаю.
0
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
26.02.2011, 22:59 4
Alex6911, ну ты хоть бы перевел ошибку, выдает что нет родительского окна.
Задай родителя!
Delphi
1
2
3
4
5
 MyClass:=TMyClass.Create(Self);
 MyClass.Parent:=form1;
 MyClass.tv:=TTreeView.Create(Self);
 MyClass.tv.Parent:=form1;
 MyClass.tv.Items.Add(nil,'1-Гї ñòðîêГ*');
1
Alex6911
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 81
26.02.2011, 23:31  [ТС] 5
anonimus,
Спасибо. Заработало. Странно, где то я лоханулся. Я вроде пробовал так. Только родителя писал не Form1 а Self. Сейчас и с Self все работает

Добавлено через 10 минут
anonimus,
Подскажи. Как сделать MyClass отдельным юнитом. Что бы я мог пользоваться им на основной форме?
0
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
26.02.2011, 23:45 6
зачем его в отдельный юнит? 3 строчки, даже методов нет
ну если уж очень хочется то создавай новый unit
пиши туда
Delphi
1
2
3
4
TMyClass=class(TListBox)
  private
 tv:TTreeView;
end;
в uses подключи StdCtrls, ComCtrls (для TListBox и TTreeView) сохраняй, потом будешь его подключать в uses своей программе
1
Alex6911
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 81
26.02.2011, 23:52  [ТС] 7
anonimus,
Это ясно. Просто код я дал простейший. Я хочу сделать так, что бы обмен данными между TTreeView и ListBox (записывание имен узлов в список, редактирование списка) происходил в отдельном классе, описанном в отдельном юните, а результат обмена выводился на основную форму.
Как быть тогда с родителями? Как правильно организовать взаимодействие моего класса с формой?
0
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
27.02.2011, 00:01 8
так же как и сейчас, создавать ты же будешь на основной форме
1
Alex6911
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 81
27.02.2011, 00:03  [ТС] 9
anonimus,
Ладно, спасибо за консультацию. Буду пробовать. Хотя пока не выходит
0
27.02.2011, 00:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2011, 00:03

При поиске пустой ячейки Excel и последующей записи в неё переменной, выскакивает ошибка
Здравствуйте уважаемые форумчане. В процессе написания программы столкнулся с...

При работе программы выскакивает ошибка "Stack Overflow"
Такая проблемка. При работе программы выскакивает ошибка "Stack Overflow"....

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru