View Issue Details

IDProjectCategoryView StatusLast Update
0005131JEDI VCL00 JVCL Componentspublic2011-06-10 16:09
ReporterdeboseAssigned Toobones 
PrioritynormalSeveritytweakReproducibilityN/A
Status resolvedResolutionfixed 
Product VersionDaily / GIT 
Target Version3.40Fixed in Version3.40 
Summary0005131: JvRichEdit demo update.
Description1) underline button functionality enhanced by adding popup menu with underline styles.
2) added "Export to html.." menu item, to export RichEdit via JvRichEditToHtml component.
Additional Informationonly new thing I'm not sure about is PromptForFileName function from Dialogs.pas.
I checked it exist in D2010 and D7, but don't know how with D5 and D6.
Tagsdemo, examples, jvRichEdit

Activities

2010-01-24 20:44

 

JvRichEditDemo.patch (4,551 bytes)
Index: EditorMainFormU.dfm
===================================================================
--- EditorMainFormU.dfm	(revision 12678)
+++ EditorMainFormU.dfm	(working copy)
@@ -362,8 +362,10 @@
       AllowAllUp = True
       Caption = 'Underline'
       GroupIndex = 7
+      DropDownMenu = UnderlineStyle
       Hint = 'Underline'
       ImageIndex = 15
+      MarkDropDown = False
       Spacing = 1
       Left = 276
       Top = 5
@@ -532,6 +534,11 @@
         Caption = 'Save Selec&ted...'
         OnClick = FileSaveSelected
       end
+      object ExportToHtmlItem: TMenuItem
+        Tag = -1
+        Caption = 'Export to HTML...'
+        OnClick = ExportToHtmlItemClick
+      end
       object N1: TMenuItem
         Tag = -1
         Caption = '-'
@@ -1873,4 +1880,20 @@
     Left = 120
     Top = 128
   end
+  object UnderlineStyle: TJvPopupMenu
+    OnPopup = UnderlineStylePopup
+    Style = msXP
+    ImageMargin.Left = 0
+    ImageMargin.Top = 0
+    ImageMargin.Right = 0
+    ImageMargin.Bottom = 0
+    ImageSize.Height = 16
+    ImageSize.Width = 16
+    Left = 148
+    Top = 128
+  end
+  object JvRichEditToHtml1: TJvRichEditToHtml
+    Left = 176
+    Top = 128
+  end
 end
Index: EditorMainFormU.pas
===================================================================
--- EditorMainFormU.pas	(revision 12678)
+++ EditorMainFormU.pas	(working copy)
@@ -33,7 +33,9 @@
   ImgList, Controls, Menus, JvMenus, ComCtrls, ExtCtrls, Classes, ActiveX,
   JvComponent, JvAppEvent, JvMaskEdit, JvSpin, JvCombobox, JvColorCombo,
   JvSpeedBar, JvRichEdit, JvClipboardMonitor, JvExMask, JvExStdCtrls,
-  JvExExtCtrls, XPColorMenuItemPainter;
+  JvExExtCtrls, XPColorMenuItemPainter, 
+  JvComponentBase, JvExtComponent,
+  JvRichEditToHtml, JvDialogs;
 
 type
   TEditorMainForm = class(TForm)
@@ -118,6 +120,9 @@
     App: TJvAppEvents;
     FormatTabsItem: TMenuItem;
     JustifyBtn: TJvSpeedItem;
+    UnderlineStyle: TJvPopupMenu;
+    JvRichEditToHtml1: TJvRichEditToHtml;
+    ExportToHtmlItem: TMenuItem;
     procedure SelectionChange(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure ShowHint(Sender: TObject);
@@ -192,6 +197,8 @@
     procedure EditorGetDragDropEffect(Sender: TObject;
       ShiftState: TShiftState; var AllowedEffects: TRichDropEffects;
       var Handled: Boolean);
+    procedure ExportToHtmlItemClick(Sender: TObject);
+    procedure UnderlineStylePopup(Sender: TObject);
   private
     FFileName: string;
     FUpdating: Boolean;
@@ -254,6 +261,10 @@
     clSilver, clRed, clLime, clYellow, clBlue, clFuchsia, clAqua, clWhite,
     clWindow);
 
+  UnderlineTypes: array[TUnderlineType] of string =
+     ('None', 'Solid', 'Word', 'Double', 'Dotted', 'Dash',
+    'DashDot', 'DashDotDot', 'Wave', 'Thick');
+
 function ColorName(Color: TColor): string;
 begin
   if (Color = clWindowText) or (Color = clWindow) or (Color = clDefault) then
@@ -699,6 +710,19 @@
       Add(Item);
     end;
   end;
+  with UnderlineStyle.Items do
+  begin
+    while Count > 0 do
+      Items[Count - 1].Free;
+    for I := 0 to 9 do
+    begin
+      Item := NewItem(UnderlineTypes[TUnderlineType(I)], scNone,
+        False, True, UnderlineButtonClick, 0, '');
+      Item.RadioItem := True;
+      Item.Tag := I;
+      Add(Item);
+    end;
+  end;
   FClipboardMonitor := TJvClipboardMonitor.Create(Self);
   FClipboardMonitor.OnChange := ClipboardChanged;
   SuperscriptBtn.Enabled := RichEditVersion >= 2;
@@ -1084,6 +1108,11 @@
 begin
   if FUpdating then
     Exit;
+  if Sender is TMenuItem then
+  begin
+    CurrText.UnderlineType := TUnderlineType(TMenuItem(Sender).Tag);
+  end
+  else
   if UnderlineBtn.Down then
     CurrText.Style := CurrText.Style + [fsUnderline]
   else
@@ -1238,4 +1267,30 @@
   Handled := True;
 end;
 
+procedure TEditorMainForm.ExportToHtmlItemClick(Sender: TObject);
+const
+  cHtmlExportFilter = 'HTML documents|*.HTML;*.HTM';
+  cHtmlExportTitle = 'Where to save exported HTML?';
+  cHtmlExportExt = 'HTML';
+var
+  tmpHtmlFilename: string;
+begin
+  if PromptForFileName(tmpHtmlFilename, cHtmlExportFilter,cHtmlExportExt,cHtmlExportTitle,
+    '',True) then
+  begin
+    JvRichEditToHtml1.ConvertToHtml(self.Editor, tmpHtmlFilename);
+    RichEditChange(nil);
+  end;
+end;
+
+procedure TEditorMainForm.UnderlineStylePopup(Sender: TObject);
+var
+  I: Integer;
+  UT: TUnderlineType;
+begin
+  UT := CurrText.UnderlineType;
+  for I := 0 to 9 do
+    UnderlineStyle.Items[I].Checked := (UT =  TUnderlineType(i) );
+end;
+
 end.
JvRichEditDemo.patch (4,551 bytes)

obones

2010-03-08 16:02

administrator   ~0017248

Thanks, this is now in SVN

Issue History

Date Modified Username Field Change
2010-01-24 20:44 debose New Issue
2010-01-24 20:44 debose File Added: JvRichEditDemo.patch
2010-01-24 22:19 debose Tag Attached: demo
2010-01-24 22:19 debose Tag Attached: examples
2010-01-24 22:20 debose Tag Attached: jvRichEdit
2010-03-08 16:02 obones Note Added: 0017248
2010-03-08 16:02 obones Assigned To => obones
2010-03-08 16:02 obones Status new => resolved
2010-03-08 16:02 obones Resolution open => fixed
2010-03-08 16:02 obones Fixed in Version => Daily / SVN
2010-03-08 16:02 obones Target Version => 3.40 - not yet released
2011-06-10 16:09 obones Fixed in Version Daily / SVN => 3.40