📄 treeteed.pas
字号:
{**********************************************}
{ TTree Component - Text Editor Dialog }
{ Copyright (c) 1998-2002 by David Berneda }
{**********************************************}
{$I TeeDefs.inc}
unit TreeTeEd;
{
Tree Text Editor dialog.
Used by shapes (TreeShEd.pas) and connections (TreeCoEd.pas)
}
interface
uses
{$IFNDEF LINUX}
Windows, Messages,
{$ENDIF}
SysUtils, Classes,
{$IFDEF CLX}
QGraphics, QControls, QForms, QDialogs, QStdCtrls, QComCtrls, QExtCtrls,
{$ELSE}
Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls,
{$ENDIF}
TeeTree, TeeProcs, TeCanvas, TeePenDlg;
type
TFormTeeText = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Label1: TLabel;
GroupBox1: TGroupBox;
Label19: TLabel;
Label20: TLabel;
Shape6: TShape;
Label22: TLabel;
Edit6: TEdit;
UpDown6: TUpDown;
Edit5: TEdit;
UpDown5: TUpDown;
Edit1: TEdit;
UpDown1: TUpDown;
Label4: TLabel;
Edit2: TEdit;
UpDown2: TUpDown;
Button1: TButton;
BOutline: TButtonPen;
GroupBox2: TGroupBox;
Label2: TLabel;
CBHorizAlign: TComboFlat;
Label7: TLabel;
CBVertAlign: TComboFlat;
Edit3: TEdit;
UpDown3: TUpDown;
Edit4: TEdit;
UpDown4: TUpDown;
Label5: TLabel;
Edit7: TEdit;
UpDown7: TUpDown;
Panel3: TPanel;
Panel2: TPanel;
Memo2: TMemo;
Panel1: TPanel;
Label3: TLabel;
Shape5: TShape;
Button2: TButton;
CBClip: TCheckBox;
procedure Button2Click(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure Edit6Change(Sender: TObject);
procedure Memo2Change(Sender: TObject);
procedure Shape6MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure BOutlineClick(Sender: TObject);
procedure CBHorizAlignChange(Sender: TObject);
procedure Shape5MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure CBClipClick(Sender: TObject);
procedure ButtonPen1Click(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Edit4Change(Sender: TObject);
procedure CBVertAlignChange(Sender: TObject);
procedure Edit7Change(Sender: TObject);
private
{ Private declarations }
Changing : Boolean;
IsConnection : Boolean;
public
{ Public declarations }
Tree1 : TCustomTree;
Connection1 : TTreeConnection;
end;
Procedure TreeEditText(AOwner:TComponent; AElement:TCustomTreeElement);
implementation
{$IFNDEF CLX}
{$R *.DFM}
{$ELSE}
{$R *.xfm}
{$ENDIF}
Uses TeeTranslate, TeeBrushDlg, TeeEdiGrad;
Procedure TreeEditText(AOwner:TComponent; AElement:TCustomTreeElement);
begin
with TFormTeeText.Create(AOwner) do
try
Align:=alNone;
BorderStyle:={$IFDEF CLX}fbsSizeable{$ELSE}bsSizeable{$ENDIF};
Position:=poScreenCenter;
Height:=200;
Width:=320;
if AElement is TTreeConnection then
Connection1:=TTreeConnection(AElement);
Tree1:=AElement.Tree;
ShowModal;
finally
Free;
end;
end;
procedure TFormTeeText.Button2Click(Sender: TObject);
var t : Integer;
begin
if IsConnection then EditTeeFont(Self,Connection1.Font)
else
With Tree1 do
if Selected.Count>0 then
begin
EditTeeFont(Self,Selected[0].Font);
for t:=1 to Selected.Count-1 do Selected[t].Font.Assign(Selected[0].Font);
end;
end;
procedure TFormTeeText.Edit5Change(Sender: TObject);
var t : Integer;
begin
if not Changing then
if IsConnection then Connection1.Font.Shadow.VertSize:=UpDown5.Position
else
With Tree1 do
for t:=0 to Selected.Count-1 do
Selected[t].Font.Shadow.VertSize:=UpDown5.Position;
end;
procedure TFormTeeText.Edit6Change(Sender: TObject);
var t : Integer;
begin
if not Changing then
if IsConnection then Connection1.Font.Shadow.HorizSize:=UpDown6.Position
else
With Tree1 do
for t:=0 to Selected.Count-1 do
Selected[t].Font.Shadow.HorizSize:=UpDown6.Position;
end;
procedure TFormTeeText.Memo2Change(Sender: TObject);
begin
if not Changing then
if IsConnection then Connection1.Text.Assign(Memo2.Lines)
else
With Tree1 do
if Selected.Count>0 then
Selected[0].Text.Assign(Memo2.Lines);
end;
procedure TFormTeeText.Shape6MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var t:Integer;
tmpColor:TColor;
begin
if IsConnection then
begin
tmpColor:=EditColor(Self,Connection1.Font.Shadow.Color);
Tree1.Connections.Selected.Font.Shadow.Color:=tmpColor;
end
else
begin
tmpColor:=EditColor(Self,Tree1.Selected[0].Font.Shadow.Color);
With Tree1 do
for t:=0 to Selected.Count-1 do Selected[t].Font.Shadow.Color:=tmpColor;
end;
Shape6.Brush.Color:=tmpColor;
end;
procedure TFormTeeText.FormShow(Sender: TObject);
var tmp:TCustomTreeElement;
begin
Changing:=True;
IsConnection:=Assigned(Connection1);
if IsConnection then tmp:=Connection1
else
if Assigned(Tree1) then tmp:=Tree1.Selected[0]
else tmp:=nil;
if Assigned(tmp) then
With tmp do
begin
Shape5.Brush.Color:=Font.Color;
Case HorizTextAlign of
htaLeft : CBHorizAlign.ItemIndex:=0;
htaCenter : CBHorizAlign.ItemIndex:=1;
htaRight : CBHorizAlign.ItemIndex:=2;
end;
Case VertTextAlign of
vtaTop : CBVertAlign.ItemIndex:=0;
vtaCenter : CBVertAlign.ItemIndex:=1;
vtaBottom : CBVertAlign.ItemIndex:=2;
end;
Memo2.Lines.Assign(Text);
UpDown6.Position:=Font.Shadow.HorizSize;
Shape6.Brush.Color:=Font.Shadow.Color;
UpDown1.Position:=Font.InterCharSize;
UpDown2.Position:=Text.Angle;
CBClip.Visible:=not IsConnection;
if CBClip.Visible then CBClip.Checked:=Text.ClipText;
BOutline.LinkPen(Font.Outline);
UpDown3.Position:=Text.HorizOffset;
UpDown4.Position:=Text.VertOffset;
end;
PageControl1.ActivePage:=TabSheet1;
Memo2.SetFocus;
Changing:=False;
end;
procedure TFormTeeText.FormCreate(Sender: TObject);
begin
TeeTranslateControl(Self);
Changing:=True;
end;
procedure TFormTeeText.Edit1Change(Sender: TObject);
var t:Integer;
begin
if not Changing then
if IsConnection then Connection1.Font.InterCharSize:=UpDown1.Position
else
With Tree1 do
for t:=0 to Selected.Count-1 do
Selected[t].Font.InterCharSize:=UpDown1.Position;
end;
procedure TFormTeeText.BOutlineClick(Sender: TObject);
var t : Integer;
begin
if IsConnection then
EditChartPen(Self,Connection1.Font.OutLine)
else
With Tree1 do
if Selected.Count>0 then
begin
EditChartPen(Self,Selected[0].Font.OutLine);
for t:=1 to Selected.Count-1 do
Selected[t].Font.OutLine.Assign(Selected[0].Font.OutLine);
end;
end;
procedure TFormTeeText.CBHorizAlignChange(Sender: TObject);
var t : Integer;
tmp : THorizTextAlign;
begin
Case CBHorizAlign.ItemIndex of
0: tmp:=htaLeft;
1: tmp:=htaCenter;
else
{2:} tmp:=htaRight;
end;
if IsConnection then Connection1.HorizTextAlign:=tmp
else
With Tree1 do
for t:=0 to Selected.Count-1 do Selected[t].HorizTextAlign:=tmp
end;
procedure TFormTeeText.Shape5MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var t:Integer;
tmpColor:TColor;
begin
if IsConnection then
begin
tmpColor:=EditColor(Self,Connection1.Font.Color);
Tree1.Connections.Selected.Font.Color:=tmpColor;
end
else
begin
tmpColor:=EditColor(Self,Tree1.Selected[0].Font.Color);
With Tree1.Selected do
for t:=0 to Count-1 do Items[t].Font.Color:=tmpColor;
end;
Shape5.Brush.Color:=tmpColor;
end;
procedure TFormTeeText.Button1Click(Sender: TObject);
var t : Integer;
begin
if IsConnection then
EditTeeGradient(Self,Connection1.Font.Gradient)
else
begin
if EditTeeGradient(Self,Tree1.Selected[0].Font.Gradient) then
With Tree1.Selected do
for t:=1 to Count-1 do
Items[t].Font.Gradient:=Items[0].Font.Gradient;
end;
end;
procedure TFormTeeText.Edit2Change(Sender: TObject);
var t : Integer;
begin
if not Changing then
if IsConnection then
Connection1.Text.Angle:=UpDown2.Position
else
begin
With Tree1.Selected do
for t:=0 to Count-1 do
Items[t].Text.Angle:=UpDown2.Position;
end;
end;
procedure TFormTeeText.CBClipClick(Sender: TObject);
var t : Integer;
begin
if not IsConnection then
With Tree1.Selected do
for t:=0 to Count-1 do Items[t].Text.ClipText:=CBClip.Checked;
end;
procedure TFormTeeText.ButtonPen1Click(Sender: TObject);
var t : Integer;
begin
if not IsConnection then
With Tree1.Selected do
for t:=1 to Count-1 do Items[t].Font.Outline:=Items[0].Font.Outline;
end;
procedure TFormTeeText.Edit3Change(Sender: TObject);
var t : Integer;
begin
if not Changing then
if IsConnection then
Connection1.Text.HorizOffset:=UpDown3.Position
else
With Tree1.Selected do
for t:=0 to Count-1 do Items[t].Text.HorizOffset:=UpDown3.Position;
end;
procedure TFormTeeText.Edit4Change(Sender: TObject);
var t : Integer;
begin
if not Changing then
if IsConnection then
Connection1.Text.VertOffset:=UpDown4.Position
else
With Tree1.Selected do
for t:=0 to Count-1 do Items[t].Text.VertOffset:=UpDown4.Position;
end;
procedure TFormTeeText.CBVertAlignChange(Sender: TObject);
var t:Integer;
tmp:TVertTextAlign;
begin
Case CBVertAlign.ItemIndex of
0: tmp:=vtaTop;
1: tmp:=vtaCenter;
else
{2:} tmp:=vtaBottom;
end;
if IsConnection then Connection1.VertTextAlign:=tmp
else
With Tree1 do
for t:=0 to Selected.Count-1 do Selected[t].VertTextAlign:=tmp
end;
procedure TFormTeeText.Edit7Change(Sender: TObject);
var t : Integer;
begin
if not Changing then
if IsConnection then
Connection1.Text.Transparency:=UpDown7.Position
else
With Tree1 do
for t:=0 to Selected.Count-1 do
Selected[t].Text.Transparency:=UpDown7.Position;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -