Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> У меня затмение.........Требуется просветление 
:(
    Опции темы
User
Дата 8.2.2005, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 5.11.2004

Репутация: нет
Всего: нет



У меня есть TreeView и 4 четыре кнопки Button1, Button2, Button3, Button4. В TreeView есть такой список
Каталог
............Имя 1
............Имя 2
............Имя 3
............Имя 4
Мне необходимо при нажатии на Button1 что бы фокус падал на "Имя 1", при нажатии на Button2, фокус падал на "Имя 2". Неповерите, но на этом меня замкнуло просто - 2 часа просидел, так и не понял. Черт подери как говориться - требуется просветление. Скиньте примерчик как это сделать?
PM MAIL WWW   Вверх
Akella
Дата 8.2.2005, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Код

TreeView1.Select();
//-----------------------//
procedure Select(const Nodes: array of TTreeNode); overload; virtual;
procedure Select(Nodes: TList); overload; virtual;
procedure Select(Node: TTreeNode; ShiftState: TShiftState = []); overload; virtual;

Добавлено @ 10:29
smile
можно выделять жырным
нашел в DW6
Код

uses
 CommCtrl;

procedure SetNodeBoldState(Node: TTreeNode; Value: Boolean);
var
 TVItem: TTVItem;
begin
 if not Assigned(Node) then Exit;
 with TVItem do
 begin
   mask := TVIF_STATE or TVIF_HANDLE;
   hItem := Node.ItemId;
   stateMask := TVIS_BOLD;
   if Value then state := TVIS_BOLD  
   else  
     state := 0;
   TreeView_SetItem(Node.Handle, TVItem);
 end;
end;

// Example: Make the first node bold.
// Beispiel: Erster Eintrag fett machen.

procedure TForm1.Button1Click(Sender: TObject);
begin
 SetNodeBoldState(TreeView1.Items[0], True);
end;

PM MAIL   Вверх
User
Дата 8.2.2005, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 5.11.2004

Репутация: нет
Всего: нет



Вот, что вышло господа!

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
TreeView1: TTreeView;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer; // Поставить в TreeView1 свойство HideSelection = False
// если false, то в дереве выделенный элемент будет виден даже если
// фокус ввода находится у другого контрола.

begin
for i :=0 to TreeView1.Items.Count-1 do
if TreeView1.Items.Item[i].Text = 'Имя 1' then
TreeView1.Selected := TreeView1.Items.Item[i];
end;

procedure TForm1.Button2Click(Sender: TObject);
var
i : Integer; // Поставить в TreeView1 свойство HideSelection = False
// если false, то в дереве выделенный элемент будет виден даже если
// фокус ввода находится у другого контрола.
begin
for i :=0 to TreeView1.Items.Count-1 do
if TreeView1.Items.Item[i].Text = 'Имя 2' then
TreeView1.Selected := TreeView1.Items.Item[i];
end;

end.


Может кто знает как это сделать подругому, буду рад!

PM MAIL WWW   Вверх
~FoX~
Дата 8.2.2005, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



А просто так не поможет?
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
 TreeView1.Selected := TreeView1.Items.Item[1];
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
 TreeView1.Selected := TreeView1.Items.Item[2];
end;

Итемы, как водиться, начинаются с 0, это "Каталог" в твоем случае.


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
User
Дата 8.2.2005, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 5.11.2004

Репутация: нет
Всего: нет



Это конечно все правильно, но если ветки начать перемещать, то по мойму будит белеберда? Разве не так?
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0667 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.