Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Хочется выделять некоторые строчки в TTreeView жирным

Delphi , Компоненты и Классы , TTreeView

Хочется выделять некоторые строчки в TTreeView жирным


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;

Переделайте текст на русский язык:

Чтобы сделать некоторые строки в TTreeView жирными, вы можете использовать процедуру SetNodeBoldState, предоставленную в вашем коде. Однако, этоProcedure seems to be modified from its original Delphi version and doesn't work correctly.

Правильным способом установить жирный статус узла в TTreeView является использование свойства ItemData и константы TVIS_BOLD из unit CommCtrl. Вот обновленная версия вашего кода:

uses
  CommCtrl;

Процедура TForm1.SetNodeBoldState(Node: TTreeNode; Value: Boolean); begin if not Assigned(Node) then Exit; Node.Data := Integer(Value); end;

// Пример: сделайте первый узел жирным. // Beispiel: Erster Eintrag fett machen.

procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin for i := 0 to TreeView1.Items.Count - 1 do if TreeView1.Items[i].Selected then SetNodeBoldState(TreeView1.Items[i], True); end;

В обновленном коде процедура `SetNodeBoldState` устанавливает свойство `ItemData` узла в целочисленное значение, представляющее, должен ли узел быть жирным или нет. Процедура `Button1Click` демонстрирует, как использовать эту процедуру, установив все выбранные узлы в дереве в жирном состоянии.

Чтобы сделать конкретные узлы жирными без изменения их состояния выбора, вы можете изменить процедуру `SetNodeBoldState` следующим образом:

```pascal
procedure TForm1.SetNodeBoldState(Node: TTreeNode; Value: Boolean);
begin
  if not Assigned(Node) then Exit;
  Node.Data := Integer(Value);
end;

// Пример: сделайте первый узел жирным.
// Beispiel: Erster Eintrag fett machen.

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to TreeView1.Items.Count - 1 do
    if TreeView1.Items[i].IsSelected then
      SetNodeBoldState(TreeView1.Items[i], True);
end;

В этой версии процедура Button1Click устанавливает все узлы в дереве, которые выбраны в настоящее время, жирными.

В статье описывается способ выделять некоторые строки в TTreeView жирным способом, для этого создается процедура SetNodeBoldState, которая изменяет состояние узлов дерева.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TTreeView ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 06:45:34/0.0032861232757568/0