|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.09.2008, 16:35 | #1 |
Пользователь
Регистрация: 26.09.2008
Сообщений: 16
|
Вывод БД в TreeView?
Доброе время суток!
Необходим простой пример отображения БД MS SQL в TreeView (без батончика, TreeView загружается вместе с формой). Допустим я создал простую базу: TableTema: -ID -Tema TableRazdel: -ID -IDTema -Razdel TableQuestion: -ID -IDRazdel -Question -Answer Как эту базу отобразить в дереве? Если можно - прям по шагам. Сколько материала перерыл, но практически везде впечатление, что речь обращена к сведущим, но еще не совершенным в этом деле. :-( Последний раз редактировалось Snegovik; 26.09.2008 в 22:29. |
27.09.2008, 11:41 | #2 |
Пользователь
Регистрация: 26.09.2008
Сообщений: 16
|
Ну неужели никто не может сказать как это делается?
|
27.09.2008, 13:15 | #3 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Просто не хочется повторяться.
Вам ведь лень набрать в строке поиска по форуму "treeview"... Если сможете усмирить свою гордыню, добавьте в условия поиска еще и мой ник - я не слишком давно давал полный код этого дела какой-то девушке. Так что все на форуме уже давно есть. |
27.09.2008, 14:07 | #4 |
Пользователь
Регистрация: 26.09.2008
Сообщений: 16
|
Я и поиск рассматривал, в том числе и ваш ответ девушке (с ссылкой на какой то dfaq) . Только один пень все равно ничего не понял, о чем и написал в сообщении (да и поместил специально как "чайник" в раздел для студентов).
|
27.09.2008, 15:09 | #5 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Это ведь не чат. Сложного там ничего нет, нужно просто сесть и разобраться... Да, кстати, исходники "какого-то dfaq" выложены для всех желающих в теме: http://www.programmersforum.ru/showt...highlight=dfaq |
|
27.09.2008, 15:22 | #6 |
Пользователь
Регистрация: 26.09.2008
Сообщений: 16
|
mihali4 я согласен, это не чат. Тогда вы не возразите, если я по ходу кода вопросы позадаю? Первый вопрос: "procedure Tfmain.GetTree;" - как образуется? Ну я не знаю: это свойство компонента или еще что?
|
27.09.2008, 15:41 | #7 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Давайте с вами напишем для вашей программы такую процедуру: 1. Объявим ее и разместим объявление в том же разделе, где у вас, наверное, уже есть строка procedure Button1Click(Sender: TObject); (это все в разделе объявления формы: type TForm1 = class(TForm) ...) Наша, добавляемая строка, будет похожа: procedure PrivetVasePupkinu; Только параметров у нее нет. Это то, что в скобках. 2. Объявили, теперь нужно ее описать. Где-нибудь среди других процедур выбираем любое местечко, вклиниваемся и пишем ручками: procedure TForm1.PrivetVasePupkinu; begin ShowMessage('Вася, прювет!');//вот это мы добавили end; Готово - объявили и прописали. А красным - указали явно принадлежность к нашей форме. 3. Но ведь просто так она будет сидеть и молчать... Значит, ее нужно вызвать. Как? Ну, например, добавим на форму кнопку Button2, дважды шлепнем по ней мышкой и в образовавшийся "автоматом" скелет допишем: procedure TForm1.Button2Click(Sender: TObject); begin PrivetVasePupkinu;//это дописали end; Теперь при нажатии на Button2 будет исполняться наша процедура, которую мы создали вручную. Ну, а вызывать ее можно не только кнопкой, а из любого места кода программы... Зачем это нужно? Для сокращения длины кода, например. Предположим, что у вас два десятка кнопок на форме и вы хотите, чтобы нажатии на любую кнопку у вас Label1 менял шрифт на красный (если он черный) и наоборот. Варианта два - либо такое прописывать в обработчиках клацания у всех кнопок, либо "вынести во внешнюю процедуру" . То есть создать процедуру: procedure TForm1.ChangeLabelColor; begin if Label1.Font.Color=clRed then Label1.Font.Color:=clBlack else Label1.Font.Color:=clRed; end; И теперь уже не эти три строки вставлять в обработчиках для кнопок, а только одну - ChangeLabelColor; Самое классное, что такую процедуру можно сделать так, чтобы она распознавала, какая именно кнопка нажата. Но это - другой разговор. Последний раз редактировалось mihali4; 27.09.2008 в 15:52. |
|
27.09.2008, 16:36 | #8 |
Пользователь
Регистрация: 26.09.2008
Сообщений: 16
|
michli4, благодарю, что не отказались помочь!
Доступно объяснили, спасибо! Я решил по новому "запустить" код и сразу вопросы: 1.MyRecPtr: PMyRec; -- ругается что неописанный идентификатор 2.TQuest -- это ADOQuery 3.TTema, TRazdel -- это я так понимаю ADOTable 4.MyRecPtr -- о сущности этого элемента совсем ничего не понял Последний раз редактировалось Snegovik; 27.09.2008 в 16:40. |
27.09.2008, 16:42 | #9 |
Пользователь
Регистрация: 26.09.2008
Сообщений: 16
|
Может я ошибаюсь, нужно что то добавить в раздел uses, сразу после inteface?
|
27.09.2008, 17:22 | #10 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
MyRecPtr: PMyRec; Вот как раз этот вопрос я девушке подробно разъяснял. Не сочтите за труд посмотреть тот топик. Вообще, это проще простого! Общий подход - копируем имя идентификатора и делаем поиск по нему в моей программе. Смотрим, как и где он объявляется, какие делаются подготовительные действия (если они нужны), какими способами он используется. ADO у меня не используется. Запустите ехе-шник - программу из архива, почитайте файл помощи и многое станет ясно. Последний раз редактировалось mihali4; 27.09.2008 в 22:49. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
TreeView и БД | Constellation | БД в Delphi | 12 | 27.09.2008 15:22 |
TreeView | _SERGEYX_ | Общие вопросы Delphi | 1 | 01.09.2008 17:29 |
Treeview | forzi | Помощь студентам | 4 | 04.05.2008 23:50 |
Опять TreeView | Simply-Art | Компоненты Delphi | 2 | 20.07.2007 17:14 |