Recent

Author Topic: [SOLVED]Can I change the background color while editing the TreeView node text?  (Read 3193 times)

tomitomy

  • Sr. Member
  • ****
  • Posts: 251
Hi, I would like to change the background color when editing the TreeView node text, this can be achieved?

Or change the font color, Because their colors are too close.

Lazarus 1.8.0 RC4 GTK2
« Last Edit: November 07, 2017, 02:25:58 pm by tomitomy »

zeljko

  • Hero Member
  • *****
  • Posts: 1792
    • http://wiki.lazarus.freepascal.org/User:Zeljan
Re: Can I change the background color while editing the TreeView node text?
« Reply #1 on: October 27, 2017, 09:15:59 am »
It looks like gtk2 theme problem.

tomitomy

  • Sr. Member
  • ****
  • Posts: 251
Re: Can I change the background color while editing the TreeView node text?
« Reply #2 on: October 27, 2017, 11:00:35 am »
It looks like gtk2 theme problem.

Oh, It's bad news. Thank you zeljko.

tomitomy

  • Sr. Member
  • ****
  • Posts: 251
Re: Can I change the background color while editing the TreeView node text?
« Reply #3 on: November 02, 2017, 09:24:39 am »
I use TEdit instead of Naming Box to achieve my needs:

Code: Pascal  [Select][+][-]
  1. unit Unit1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls;
  9.  
  10. type
  11.  
  12.   { TForm1 }
  13.  
  14.   TForm1 = class(TForm)
  15.     Edit1: TEdit;
  16.     TreeView1: TTreeView;
  17.     procedure Edit1Exit(Sender: TObject);
  18.     procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  19.     procedure TreeView1Editing(Sender: TObject; Node: TTreeNode; var AllowEdit: Boolean);
  20.   private
  21.  
  22.   public
  23.  
  24.   end;
  25.  
  26. var
  27.   Form1: TForm1;
  28.  
  29. implementation
  30.  
  31. uses
  32.   LCLType;
  33.  
  34. {$R *.lfm}
  35.  
  36. { TForm1 }
  37.  
  38. procedure TForm1.TreeView1Editing(Sender: TObject; Node: TTreeNode; var AllowEdit: Boolean);
  39. var
  40.   ANode: TTreeNode;
  41.   ARect: TRect;
  42. begin
  43.   AllowEdit := False;
  44.  
  45.   ANode := TreeView1.Selected;
  46.   if ANode = nil then Exit;
  47.                
  48.   Edit1.Parent := TreeView1;
  49.   ARect := ANode.DisplayRect(True);
  50.   ARect.Right := TreeView1.Width;
  51.   Edit1.BoundsRect := ARect;
  52.  
  53.   Edit1.Text := ANode.Text;
  54.   Edit1.SelectAll;
  55.   Edit1.Show;    
  56.   Edit1.SetFocus;
  57. end;
  58.  
  59. procedure TForm1.Edit1Exit(Sender: TObject);  
  60. var
  61.   ANode: TTreeNode;
  62. begin
  63.   ANode := TreeView1.Selected;
  64.   if ANode = nil then Exit;
  65.  
  66.   ANode.Text := Edit1.Text ;
  67.   Edit1.Hide;
  68. end;
  69.  
  70. procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  71. begin
  72.   case Key of
  73.     VK_RETURN: Edit1.OnExit(Sender);
  74.     VK_ESCAPE: Edit1.Hide;
  75.   end;
  76. end;
  77.  
  78. end.

 

TinyPortal © 2005-2018