FlatWatfm.pas 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. unit FlatWatfm;
  2. interface
  3. {$I FlatStyle.inc}
  4. uses
  5. Windows, Messages, Forms, SysUtils, Dialogs, StdCtrls, Controls,
  6. Graphics, Classes, FlatUtils, FlatCtrls, FlatSysex;
  7. type
  8. TWaterForm = class(TForm)
  9. WaterList: TFlatListBox;
  10. SaveBtn: TFlatButton;
  11. CancelBtn: TFlatButton;
  12. TitleEdit: TFlatEdit;
  13. FWater: TFontDialog;
  14. FontBtn: TFlatButton;
  15. RowEdit: TFlatInteger;
  16. Draw3D: TFlatCheckBox;
  17. FlatWater: TFlatWater;
  18. EditBtn: TFlatButton;
  19. AddBtn: TFlatButton;
  20. WaterPage: TFlatImage;
  21. ClearBtn: TFlatButton;
  22. AlignEdit: TFlatComboBox;
  23. InsertBtn: TFlatButton;
  24. procedure WaterListChange(Sender: TObject; Text: TCaption);
  25. procedure FontBtnClick(Sender: TObject);
  26. procedure AddBtnClick(Sender: TObject);
  27. procedure EditBtnClick(Sender: TObject);
  28. procedure ClearBtnClick(Sender: TObject);
  29. procedure WaterListDblClick(Sender: TObject);
  30. procedure InsertBtnClick(Sender: TObject);
  31. private
  32. { Private declarations }
  33. FParam: TOtherParam;
  34. function GetClickParam: String;
  35. public
  36. { Public declarations }
  37. end;
  38. var
  39. WaterForm: TWaterForm;
  40. implementation
  41. {$R *.dfm}
  42. procedure TWaterForm.WaterListChange(Sender: TObject; Text: TCaption);
  43. var
  44. TitleValue : String;
  45. begin
  46. TitleValue := Text;
  47. GetTitleParam(FParam, TitleValue);
  48. TitleEdit.Text := TitleValue;
  49. Draw3D.Checked := FParam.Draw3D;
  50. RowEdit.Value := FParam.Row;
  51. case FParam.Align of
  52. wpLeft: AlignEdit.Text := '靠左';
  53. wpCenter: AlignEdit.Text := '居中';
  54. wpRight: AlignEdit.Text := '靠右';
  55. end;
  56. end;
  57. procedure TWaterForm.FontBtnClick(Sender: TObject);
  58. begin
  59. FWater.Font.Name := FParam.Name;
  60. FWater.Font.Size := FParam.Size;
  61. FWater.Font.Style := FParam.Style;
  62. FWater.Font.Color := FParam.Color;
  63. FWater.Font.Pitch := FParam.Pitch;
  64. if FWater.Execute then
  65. begin
  66. FParam.Name := FWater.Font.Name;
  67. FParam.Size := FWater.Font.Size;
  68. FParam.Style := FWater.Font.Style;
  69. FParam.Color := FWater.Font.Color;
  70. FParam.Pitch := FWater.Font.Pitch;
  71. end;
  72. end;
  73. function SetStyle(Value:TFontStyles):String;
  74. begin
  75. result := '';
  76. if fsBold in Value then
  77. result := '0';
  78. if fsItalic in Value then
  79. result := result + ',1';
  80. if fsUnderline in Value then
  81. result := result + ',2';
  82. if fsStrikeOut in Value then
  83. result := result + ',3';
  84. end;
  85. function SetPitch(Value:TFontPitch):word;
  86. begin
  87. result := 0;
  88. case Value of
  89. fpVariable:result := 1;
  90. fpFixed:result := 2;
  91. end;
  92. end;
  93. function TWaterForm.GetClickParam:String;
  94. begin
  95. FParam.Row := RowEdit.Value;
  96. FParam.Draw3D := Draw3D.Checked;
  97. if AlignEdit.Text = '靠左' then
  98. FParam.Align := wpLeft
  99. else if AlignEdit.Text = '居中' then
  100. FParam.Align := wpCenter
  101. else
  102. FParam.Align := wpRight;//靠右
  103. Result:= Format(TitleStart + '%s' + TitleEnd +
  104. TitleSize + '%d]' +
  105. TitleName + '%s]' +
  106. TitleStyle + '%s]' +
  107. TitleColor + '%d]' +
  108. TitleLow + '%d]' +
  109. TitlePitch + '%d]' +
  110. TitleDraw3D + '%d]' +
  111. TitleAlign + '%d]',
  112. [TitleEdit.Text,
  113. FParam.Size,
  114. FParam.Name,
  115. SetStyle(FParam.Style),
  116. TColor(FParam.Color),
  117. FParam.Row,
  118. SetPitch(FParam.Pitch),
  119. Ord(FParam.Draw3D),
  120. Ord(FParam.Align)]);
  121. end;
  122. procedure TWaterForm.AddBtnClick(Sender: TObject);
  123. begin
  124. if MessageBox(Handle,PChar('你想添加到列表吗?'),PChar('添加'),
  125. MB_ICONINFORMATION+MB_YESNO)=mrYes then
  126. begin
  127. WaterList.Items.Add(GetClickParam);
  128. FlatWater.Items.Assign(WaterList.Items);
  129. end;
  130. end;
  131. procedure TWaterForm.EditBtnClick(Sender: TObject);
  132. begin
  133. if MessageBox(Handle,PChar('你想编辑到列表吗?'),PChar('编辑'),
  134. MB_ICONINFORMATION+MB_YESNO)=mrYes then
  135. begin
  136. WaterList.Items.Strings[WaterList.ItemIndex] :=GetClickParam;
  137. FlatWater.Items.Assign(WaterList.Items);
  138. end;
  139. end;
  140. procedure TWaterForm.ClearBtnClick(Sender: TObject);
  141. begin
  142. if MessageBox(Handle,PChar('你想清除列表吗?'),PChar('清除'),
  143. MB_ICONINFORMATION+MB_YESNO)=mrYes then
  144. begin
  145. WaterList.Items.Clear;
  146. FlatWater.Items.Clear;
  147. end;
  148. end;
  149. procedure TWaterForm.WaterListDblClick(Sender: TObject);
  150. begin
  151. if MessageBox(Handle,PChar('你想删除当前选定吗?'),PChar('删除'),
  152. MB_ICONINFORMATION+MB_YESNO)=mrYes then
  153. begin
  154. FlatWater.Items.Delete(WaterList.ItemIndex);
  155. WaterList.Items.Delete(WaterList.ItemIndex);
  156. end;
  157. end;
  158. procedure TWaterForm.InsertBtnClick(Sender: TObject);
  159. begin
  160. if MessageBox(Handle,PChar('你想插入当前列表吗?'),PChar('插入'),
  161. MB_ICONINFORMATION+MB_YESNO)=mrYes then
  162. begin
  163. WaterList.Items.Insert(WaterList.ItemIndex,GetClickParam);
  164. FlatWater.Items.Assign(WaterList.Items);
  165. end;
  166. end;
  167. end.