Помогите мне разобраться с TreeView'ом как получать уникальные номера элементов для дальнейшего обращениея к ним, те мне надо добавлять итемы в одну ветку потом в др.. потом мне надо добавить в одну из ранних (на пример) так вот как мне обратиться к конкретнкой ветке? по логике надо запомнить ее ид, но как его узнать и как потом через него к этой ветке обращаться? а если использовать поле data то как найти эту ветку с определённым значением data и добавить туды ещё итемов?? Delphi 7
Доброе время суток, Agny! В приложении есть небольшой кусочек кода который работает с TTreeView-ом. Там есть добавление элемента внутрь выделенного, удаление выделенного (и всех детей), а также поиск узла по его имени.
Приложение: Ответ отправлен: 25.11.2004, 11:47 Отправитель: lerthe61
Вопрос № 1969
Уважаемые эксперты как можно узнать индекс ярлыка на рабочем столе для манипуляции
Здравствуйте, Михан! С "Рабочим столом" можно работать, как с объектом типа ListView, только используя WinAPI (с помощью LVM_* функций), а не класс-обертку TListView. В этом ListView хранятся все необходимые параметры ярлыков. Ответ отправлен: 26.11.2004, 16:28 Отправитель: Boriss Отвечает sir henry
Добрый день, Михан! Вопрос непонятен. Просканируйте папку "Рабочий стол" и манипулируйте ярлыками сколько влезет - это обычные файлы. А вот манипулировать ярлыками типа "Мой компьютер" дурной тон. Ответ отправлен: 26.11.2004, 05:41 Отправитель: sir henry
Вопрос № 1970
Добрый день!!! У меня вот какая проблема: На форме 6 Edit`ов и 6 CheckBox`ов. Нужно при нажатии, например, на 3 CheckBox выполнить Edit3.Enabled ... и т. д. Пробывал написать процедуру (внизу) не работет. Подскажите пожалуйста, что не так. Если можно рабочий пример procedure TForm3.CheckBoxChange(I: integer); var Edits: Array [1..5] of TEdit; Check: Array [1..5] of TCheckBox; begin If (Check[I] as TCheckBox).Checked then begin (Edits[I] as TEdit).Enabled:= TRUE; (Edits[I] as TEdit).Color:= clWindow; end else begin (Edits[I] as Tedit).Enabled:= FALSE; (Edits[I] as TEdit).Color:= clSilver; end; end;
Приветствую Вас, Lo4der! А почему вы собственно говоря думаете что это должно работать? Также неплохо было бы почитать FAQ "Как правильно задавать вопросы", так как вы не написали что именно происходит при выполнении вашей процедуры (несложно догадаться правда что там будет Access Violation :). А все дело в том что вы пытаетесь сделать достаточно абсурдную вещь - изменить свойства несозданных компонентов. Сейчас я попробую вам обьяснить: procedure TForm3.CheckBoxChange(I: integer); var Edits: Array [1..5] of TEdit; Check: Array [1..5] of TCheckBox; // Здесь вы обьявили ЛОКАЛЬНО два массива с необходимыми вам //обьектами, но ведь сами обьекты еще не созданы и //следовательно и память под них не выделена // Вероятней всего, по тому что вы написали, нужно было //ГЛОБАЛЬНО создать эти масивы и заполнять по мере создания компонентов begin If
(Check[I] as TCheckBox).Checked then begin (Edits[I] as TE
dit).Enabled:= TRUE; (Edits[I] as TEdit).Color:= clWindow; end else begin (Edits[I] as Tedit).Enabled:= FALSE; (Edits[I] as TEdit).Color:= clSilver; end; //Здесь в целом все правильно (кстати можно обойтись без приведения типов) end; Ответ отправлен: 26.11.2004, 10:55 Отправитель: lerthe61 Отвечает Alien
Доброе время суток, Lo4der! Если уш ты к контролам по индексам хошь обращаться то делай FindControl а то ты так определил массив TEdit'ов которых реально не существует. Лучше так: Edit1.Enabled:=CheckBox1.Checked; Ответ отправлен: 26.11.2004, 06:23 Отправитель: Alien Отвечает Boriss
Доброе время суток, Lo4der! При желании эти CheckBoxes можно определить как массив, программно разместить на форме (или где), и определить для них один обработчик
Приложение: Ответ отправлен: 26.11.2004, 16:39 Отправитель: Boriss
Вопрос № 1971
Уважаемые эксперты! Я программист начинающий, поэтому не сердитесь на ламерский вопрос: Есть БД Access подключаюсь к ней через ADO. В БД две таблицы связанны отношением "один ко многим" по ключевому полю первой таблицы. Как с помощью ADO компонент реализовать модификацию, удаление и добавление записей чтобы соблюдалась ссылочная целостность? Помогите пожалуйста, покажите хоть кусочек кода!!! А то я до сих пор работала с IB, а с этим ну не выходит никак. Заранее спасибо!
Доброе время суток, tanyxa! Это лучше всего сделать в программе Access. Там это просто. Создаешь отношения и ставишь галочки на "Обеспечение целостности данных". Тогда сама база будет следить за этим делом. Модификация, удаление и т.п. операции можно проводить как обычно SQL командами.
Ответ отправлен: 26.11.2004, 13:47 Отправитель: sir henry
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.