![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите новичку (насчет ТриВью и процедур)
Perf2k2 © (2005-10-14 12:53:00)Привет всем.
При создании формы вызываю процедуру:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
TreeView_DrawElements;
end;
Код TreeView_DrawElements:
procedure TreeView_DrawElements();
begin
// Создаем древо
frmMain.TreeView1.Items.Clear;
frmMain.TreeView1.Items.Add(nil,'Приветствие');
frmMain.TreeView1.Items.Item[0].ImageIndex:=1;
frmMain.TreeView1.Items.Item[0].SelectedIndex:=1;
frmMain.TreeView1.Items.Item[0].StateIndex:=100;
frmMain.TreeView1.Items.Add(nil,'Дела юридического отдела');
frmMain.TreeView1.Items.Item[1].StateIndex:=200;
// Вот здесь выдает ошибку Undeclared identifier: 'TreeView1' и Missing operator or semicolon
frmMain.TreeView1.Items.AddChild(TreeView1.Items.Item[1],'В производстве');
frmMain.TreeView1.Items.Item[2].ImageIndex:=2;
frmMain.TreeView1.Items.Item[2].SelectedIndex:=2;
frmMain.TreeView1.Items.Item[2].StateIndex:=210;
Подскажите почему он именно на этой строке ошибку пишет, ведь до этого в процедуре тоже есть ссылка на ТриВью и все нормально.
Perf2k2 (2005-10-14 14:14:00) [1]> я так понимаю, что ты решил сориентироваться в Делфи методом научного тыка ?)
:)) У меня по-другому не получается... Нет, я конечно подчерпнул некие полезные вещи из книги, но вот именно процесс впихивания своих процедур в программу там как-то странно описан )
И вообще по логике вещей он ни на что ругаться не должен. Никаких параметров в функцию передавать не надо, все имена правильно написано. Чего этому Делфи еще нужно для счастья? Вообще после ВБ какой-то очень странный язык :)
Digitman (2005-10-14 13:43:00) [2]
> Perf2k2
я так понимаю, что ты решил сориентироваться в Делфи методом научного тыка ?)
Perf2k2 (2005-10-14 13:36:00) [3]> Врёшь, в таком случае компилятор говорит
Ну в общем да, именно так он и говорил :)
Я поменял как ты указал, вот только теперь он говорит
[Error] Unit1.pas(50): Unsatisfied forward or external declaration: 'TfrmMain.TreeView_DrawElements'
Что за потепня... И выдает сообщение Expected '=' but '(' found
procedure TreeView1Click(Sender: TObject);
procedure mnuFileExitClick(Sender: TObject);
procedure btnSearchClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TfrmMain.TreeView_DrawElements();
procedure cbFIOClick(Sender: TObject);
procedure cbSKClick(Sender: TObject);
procedure cbAvtoClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
Плохиш (2005-10-14 13:17:00) [4]
> Perf2k2 (14.10.05 13:07) [5]
> > Сделай TreeView_DrawElements методом формы TfrmMain
> А можно по-подробней? Она у меня объявлена в type:
Врёшь, в таком случае компилятор говорит, что procedure TreeView_DrawElements(); не имеет реализации. Или строка
procedure TreeView_DrawElements();
выглядит как
procedure TfrmMain.TreeView_DrawElements();
Использование абстрактной переменной frmMainв методах класса является потенциальным местом бага.
PS. Начни программирование в делфи с покупки и прочтения книги по теме.
Perf2k2 (2005-10-14 13:07:00) [5]> а в целом - код, мягко говоря, оставляет желать лучшего.
Ну так второй день за Делфями, перешал с ВБ :) Подскажите что не так - буду рад перенять опыт профессионалов.
> Сделай TreeView_DrawElements методом формы TfrmMain
А можно по-подробней? Она у меня объявлена в type:
procedure TreeView1Click(Sender: TObject);
procedure mnuFileExitClick(Sender: TObject);
procedure btnSearchClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TreeView_DrawElements();
procedure cbFIOClick(Sender: TObject);
procedure cbSKClick(Sender: TObject);
procedure cbAvtoClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
Digitman (2005-10-14 13:05:00) [6]frmMain.TreeView1.Items.AddChild( frmMain.TreeView1.Items.Item[1], 'В производстве');
а в целом - код, мягко говоря, оставляет желать лучшего.
Perf2k2 (2005-10-14 13:04:00) [7]Во блин, это моя невнимательность. Спаисбо.
Плохиш (2005-10-14 13:04:00) [8]Глюкокод :-(
Сделай TreeView_DrawElements методом формы TfrmMain
Плохиш (2005-10-14 13:03:00) [9]
> frmMain.TreeView1.Items.AddChild( TreeView1.Items