fixing win32 getattributes method, updating test sample

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@844 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
skalogryz
2009-06-14 17:33:35 +00:00
parent a5c4b4e9bf
commit 1ab05002a9
6 changed files with 140 additions and 285 deletions

View File

@ -6,7 +6,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<TargetFileExt Value=""/> <TargetFileExt Value=""/>
<UseXPManifest Value="True"/> <UseXPManifest Value="True"/>
<ActiveEditorIndexAtStart Value="1"/> <ActiveEditorIndexAtStart Value="4"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -39,7 +39,7 @@
<UnitName Value="project1"/> <UnitName Value="project1"/>
<CursorPos X="32" Y="12"/> <CursorPos X="32" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="49"/> <UsageCount Value="50"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
@ -47,10 +47,10 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="Unit1"/> <UnitName Value="Unit1"/>
<CursorPos X="10" Y="10"/> <CursorPos X="26" Y="52"/>
<TopLine Value="1"/> <TopLine Value="41"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="49"/> <UsageCount Value="50"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
@ -135,7 +135,7 @@
<UnitName Value="CarbonGDIObjects"/> <UnitName Value="CarbonGDIObjects"/>
<CursorPos X="3" Y="1109"/> <CursorPos X="3" Y="1109"/>
<TopLine Value="1100"/> <TopLine Value="1100"/>
<UsageCount Value="24"/> <UsageCount Value="25"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="25" Y="150" ID="1"/> <Item0 X="25" Y="150" ID="1"/>
</Bookmarks> </Bookmarks>
@ -190,7 +190,7 @@
<UnitName Value="CarbonPrivate"/> <UnitName Value="CarbonPrivate"/>
<CursorPos X="17" Y="649"/> <CursorPos X="17" Y="649"/>
<TopLine Value="640"/> <TopLine Value="640"/>
<UsageCount Value="23"/> <UsageCount Value="24"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit20> </Unit20>
<Unit21> <Unit21>
@ -236,19 +236,19 @@
<Unit27> <Unit27>
<Filename Value="../../richmemo.pas"/> <Filename Value="../../richmemo.pas"/>
<UnitName Value="RichMemo"/> <UnitName Value="RichMemo"/>
<CursorPos X="3" Y="9"/> <CursorPos X="18" Y="181"/>
<TopLine Value="1"/> <TopLine Value="178"/>
<EditorIndex Value="4"/> <EditorIndex Value="4"/>
<UsageCount Value="20"/> <UsageCount Value="21"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit27> </Unit27>
<Unit28> <Unit28>
<Filename Value="../../wsrichmemo.pas"/> <Filename Value="../../wsrichmemo.pas"/>
<UnitName Value="WSRichMemo"/> <UnitName Value="WSRichMemo"/>
<CursorPos X="139" Y="28"/> <CursorPos X="1" Y="1"/>
<TopLine Value="11"/> <TopLine Value="1"/>
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<UsageCount Value="20"/> <UsageCount Value="21"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit28> </Unit28>
<Unit29> <Unit29>
@ -292,7 +292,7 @@
<UnitName Value="CarbonPaste"/> <UnitName Value="CarbonPaste"/>
<CursorPos X="43" Y="9"/> <CursorPos X="43" Y="9"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="33"/> <UsageCount Value="34"/>
</Unit34> </Unit34>
<Unit35> <Unit35>
<Filename Value="../../../fpc/rtl/objpas/sysutils/sysutilh.inc"/> <Filename Value="../../../fpc/rtl/objpas/sysutils/sysutilh.inc"/>
@ -317,10 +317,10 @@
<Unit38> <Unit38>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../win32/win32richmemo.pas"/>
<UnitName Value="Win32RichMemo"/> <UnitName Value="Win32RichMemo"/>
<CursorPos X="79" Y="177"/> <CursorPos X="1" Y="1"/>
<TopLine Value="168"/> <TopLine Value="1"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="10"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit38> </Unit38>
<Unit39> <Unit39>
@ -329,70 +329,73 @@
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<UsageCount Value="10"/> <UsageCount Value="11"/>
<Bookmarks Count="1">
<Item0 X="1" Y="99" ID="2"/>
</Bookmarks>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit39> </Unit39>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="29" HistoryIndex="28">
<Position1> <Position1>
<Filename Value="unit1.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="104" Column="1" TopLine="91"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="unit1.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="98" Column="21" TopLine="88"/> <Caret Line="96" Column="33" TopLine="81"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="14" Column="1" TopLine="25"/> <Caret Line="141" Column="53" TopLine="137"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="25" Column="11" TopLine="11"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="107" Column="15" TopLine="106"/> <Caret Line="26" Column="40" TopLine="1"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemo.pas"/>
<Caret Line="27" Column="53" TopLine="14"/> <Caret Line="158" Column="38" TopLine="142"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemo.pas"/>
<Caret Line="87" Column="47" TopLine="84"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../win32/win32richmemo.pas"/>
<Caret Line="18" Column="15" TopLine="1"/> <Caret Line="163" Column="36" TopLine="143"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="30" Column="25" TopLine="18"/> <Caret Line="158" Column="38" TopLine="141"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="121" Column="62" TopLine="120"/> <Caret Line="53" Column="20" TopLine="38"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../win32/win32richmemo.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="150" Column="42" TopLine="142"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="28" Column="33" TopLine="16"/> <Caret Line="53" Column="19" TopLine="38"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="30" Column="35" TopLine="16"/> <Caret Line="148" Column="24" TopLine="130"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="121" Column="60" TopLine="109"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="141" Column="19" TopLine="129"/> <Caret Line="100" Column="36" TopLine="90"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
@ -400,60 +403,56 @@
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="25" Column="29" TopLine="13"/> <Caret Line="48" Column="18" TopLine="33"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="26" Column="88" TopLine="13"/> <Caret Line="100" Column="48" TopLine="85"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="96" Column="84" TopLine="84"/> <Caret Line="119" Column="47" TopLine="104"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="107" Column="25" TopLine="95"/> <Caret Line="133" Column="47" TopLine="104"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="../../win32/win32richmemoproc.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="141" Column="1" TopLine="129"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="143" Column="81" TopLine="131"/> <Caret Line="48" Column="18" TopLine="33"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="32" Column="20" TopLine="20"/> <Caret Line="122" Column="1" TopLine="117"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="121" Column="60" TopLine="109"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../win32/win32richmemoproc.pas"/>
<Caret Line="143" Column="1" TopLine="131"/> <Caret Line="156" Column="1" TopLine="148"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../win32/win32richmemo.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="159" Column="19" TopLine="144"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../wsrichmemo.pas"/>
<Caret Line="24" Column="38" TopLine="17"/> <Caret Line="29" Column="20" TopLine="14"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../richmemo.pas"/>
<Caret Line="175" Column="30" TopLine="145"/> <Caret Line="197" Column="22" TopLine="184"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="../../win32/win32richmemo.pas"/> <Filename Value="../../richmemo.pas"/>
<Caret Line="124" Column="61" TopLine="115"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position29> </Position29>
<Position30>
<Filename Value="../../win32/win32richmemo.pas"/>
<Caret Line="139" Column="61" TopLine="123"/>
</Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -1,228 +1,108 @@
object Form1: TForm1 object Form1: TForm1
Left = 344 Left = 196
Height = 596 Height = 457
Top = 51 Top = 181
Width = 751 Width = 634
Align = alNone ActiveControl = RichMemo1
AllowDropFiles = False
AutoScroll = True
AutoSize = False
BorderIcons = [biSystemMenu, biMinimize, biMaximize]
BorderStyle = bsSizeable
BorderWidth = 0
Caption = 'Form1' Caption = 'Form1'
ClientHeight = 596 ClientHeight = 457
ClientWidth = 751 ClientWidth = 634
DefaultMonitor = dmActiveForm
DockSite = False
DragKind = dkDrag
DragMode = dmManual
Enabled = True
FormStyle = fsNormal
OnCreate = FormCreate OnCreate = FormCreate
ParentBiDiMode = True
ParentFont = False
Position = poDesigned
ShowInTaskBar = stDefault
UseDockManager = False
LCLVersion = '0.9.27' LCLVersion = '0.9.27'
WindowState = wsNormal
object RichMemo1: TRichMemo object RichMemo1: TRichMemo
Left = 24 Left = 8
Height = 432 Height = 366
Top = 24 Top = 8
Width = 704 Width = 619
Align = alNone
Alignment = taLeftJustify
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderStyle = bsSingle Font.Height = -13
Color = clWindow Font.Name = 'Tahoma'
DragCursor = crDrag
DragKind = dkDrag
DragMode = dmManual
Enabled = True
HideSelection = False HideSelection = False
Lines.Strings = ( Lines.Strings = (
'RichMemo1' 'RichMemo1'
) )
MaxLength = 0 ParentFont = False
ParentBidiMode = True
ParentColor = False
ParentFont = True
ParentShowHint = True
ReadOnly = False
ScrollBars = ssBoth ScrollBars = ssBoth
TabOrder = 0 TabOrder = 0
TabStop = True
Visible = True
WantReturns = True
WantTabs = False
WordWrap = False WordWrap = False
end end
object Button1: TButton object Button1: TButton
Left = 24 Left = 24
Height = 25 Height = 25
Top = 472 Top = 382
Width = 160 Width = 160
Align = alNone
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
AutoSize = False
Cancel = False
Caption = 'Make Bold and Red' Caption = 'Make Bold and Red'
Color = clBtnFace
Default = False
DragCursor = crDrag
DragKind = dkDrag
DragMode = dmManual
Enabled = True
ParentBidiMode = True
ModalResult = 0
OnClick = Button1Click OnClick = Button1Click
ParentFont = True
ParentShowHint = True
TabOrder = 1 TabOrder = 1
TabStop = True
Visible = True
end end
object Button2: TButton object Button2: TButton
Left = 192 Left = 192
Height = 25 Height = 25
Top = 472 Top = 382
Width = 97 Width = 97
Align = alNone
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
AutoSize = False
Cancel = False
Caption = 'Get Attribs' Caption = 'Get Attribs'
Color = clBtnFace
Default = False
DragCursor = crDrag
DragKind = dkDrag
DragMode = dmManual
Enabled = True
ParentBidiMode = True
ModalResult = 0
OnClick = Button2Click OnClick = Button2Click
ParentFont = True
ParentShowHint = True
TabOrder = 2 TabOrder = 2
TabStop = True
Visible = True
end end
object Button3: TButton object Button3: TButton
Left = 304 Left = 304
Height = 25 Height = 25
Top = 472 Top = 382
Width = 96 Width = 96
Align = alNone
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
AutoSize = False
Cancel = False
Caption = 'Select Font' Caption = 'Select Font'
Color = clBtnFace
Default = False
DragCursor = crDrag
DragKind = dkDrag
DragMode = dmManual
Enabled = True
ParentBidiMode = True
ModalResult = 0
OnClick = Button3Click OnClick = Button3Click
ParentFont = True
ParentShowHint = True
TabOrder = 3 TabOrder = 3
TabStop = True
Visible = True
end end
object Button4: TButton object Button4: TButton
Left = 112 Left = 528
Height = 25 Height = 25
Top = 552 Top = 382
Width = 75 Width = 75
Align = alNone Anchors = [akLeft, akBottom]
AutoSize = False
Cancel = False
Caption = 'Export' Caption = 'Export'
Color = clBtnFace
Default = False
DragCursor = crDrag
DragKind = dkDrag
DragMode = dmManual
Enabled = True
ParentBidiMode = True
ModalResult = 0
OnClick = Button4Click OnClick = Button4Click
ParentFont = True
ParentShowHint = True
TabOrder = 4 TabOrder = 4
TabStop = True
Visible = True
end end
object Button5: TButton object Button5: TButton
Left = 24 Left = 440
Height = 25 Height = 25
Top = 552 Top = 382
Width = 75 Width = 75
Align = alNone Anchors = [akLeft, akBottom]
AutoSize = False
Cancel = False
Caption = 'Import' Caption = 'Import'
Color = clBtnFace
Default = False
DragCursor = crDrag
DragKind = dkDrag
DragMode = dmManual
Enabled = True
ParentBidiMode = True
ModalResult = 0
OnClick = Button5Click OnClick = Button5Click
ParentFont = True
ParentShowHint = True
TabOrder = 5 TabOrder = 5
TabStop = True
Visible = True
end end
object Button6: TButton object Button6: TButton
Left = 24 Left = 24
Height = 25 Height = 25
Top = 504 Top = 415
Width = 160 Width = 160
Align = alNone Anchors = [akLeft, akBottom]
AutoSize = False
Cancel = False
Caption = 'Next Style Range' Caption = 'Next Style Range'
Color = clBtnFace
Default = False
DragCursor = crDrag
DragKind = dkDrag
DragMode = dmManual
Enabled = True
ParentBidiMode = True
ModalResult = 0
OnClick = Button6Click OnClick = Button6Click
ParentFont = True
ParentShowHint = True
TabOrder = 6 TabOrder = 6
TabStop = True
Visible = True
end end
object FontDialog1: TFontDialog object FontDialog1: TFontDialog
MinFontSize = 0 MinFontSize = 0
MaxFontSize = 0 MaxFontSize = 0
left = 696 left = 352
top = 472 top = 552
end end
object SaveDialog1: TSaveDialog object SaveDialog1: TSaveDialog
DefaultExt = '.rtf' DefaultExt = '.rtf'
Filter = 'RichText file (*.rtf)|*.rtf' Filter = 'RichText file (*.rtf)|*.rtf'
Options = [ofOverwritePrompt, ofEnableSizing, ofViewDetail] Options = [ofOverwritePrompt, ofEnableSizing, ofViewDetail]
left = 616 left = 280
top = 472 top = 552
end end
object OpenDialog1: TOpenDialog object OpenDialog1: TOpenDialog
DefaultExt = '.rtf' DefaultExt = '.rtf'
Filter = 'RichText file (*.rtf)|*.rtf' Filter = 'RichText file (*.rtf)|*.rtf'
left = 536 left = 208
top = 472 top = 552
end end
end end

View File

@ -1,64 +1,34 @@
{ This is an automatically generated lazarus resource file } { This is an automatically generated lazarus resource file }
LazarusResources.Add('TForm1','FORMDATA',[ LazarusResources.Add('TForm1','FORMDATA',[
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'X'#1#6'Height'#3'T'#2#3'Top'#2'3'#5'Width' 'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#196#0#6'Height'#3#201#1#3'Top'#3#181#0#5
+#3#239#2#5'Align'#7#6'alNone'#14'AllowDropFiles'#8#10'AutoScroll'#9#8'AutoSi' +'Width'#3'z'#2#13'ActiveControl'#7#9'RichMemo1'#7'Caption'#6#5'Form1'#12'Cli'
+'ze'#8#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#10'biMaximize'#0#11 +'entHeight'#3#201#1#11'ClientWidth'#3'z'#2#8'OnCreate'#7#10'FormCreate'#10'L'
+'BorderStyle'#7#10'bsSizeable'#11'BorderWidth'#2#0#7'Caption'#6#5'Form1'#12 +'CLVersion'#6#6'0.9.27'#0#9'TRichMemo'#9'RichMemo1'#4'Left'#2#8#6'Height'#3
+'ClientHeight'#3'T'#2#11'ClientWidth'#3#239#2#14'DefaultMonitor'#7#12'dmActi' +'n'#1#3'Top'#2#8#5'Width'#3'k'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'
+'veForm'#8'DockSite'#8#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'E' +#8'akBottom'#0#11'Font.Height'#2#243#9'Font.Name'#6#6'Tahoma'#13'HideSelecti'
+'nabled'#9#9'FormStyle'#7#8'fsNormal'#8'OnCreate'#7#10'FormCreate'#14'Parent' +'on'#8#13'Lines.Strings'#1#6#9'RichMemo1'#0#10'ParentFont'#8#10'ScrollBars'#7
+'BiDiMode'#9#10'ParentFont'#8#8'Position'#7#10'poDesigned'#13'ShowInTaskBar' +#6'ssBoth'#8'TabOrder'#2#0#8'WordWrap'#8#0#0#7'TButton'#7'Button1'#4'Left'#2
+#7#9'stDefault'#14'UseDockManager'#8#10'LCLVersion'#6#6'0.9.27'#11'WindowSta' +#24#6'Height'#2#25#3'Top'#3'~'#1#5'Width'#3#160#0#7'Anchors'#11#6'akLeft'#8
+'te'#7#8'wsNormal'#0#9'TRichMemo'#9'RichMemo1'#4'Left'#2#24#6'Height'#3#176#1 +'akBottom'#0#7'Caption'#6#17'Make Bold and Red'#7'OnClick'#7#12'Button1Click'
+#3'Top'#2#24#5'Width'#3#192#2#5'Align'#7#6'alNone'#9'Alignment'#7#13'taLeftJ' +#8'TabOrder'#2#1#0#0#7'TButton'#7'Button2'#4'Left'#3#192#0#6'Height'#2#25#3
+'ustify'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Border' +'Top'#3'~'#1#5'Width'#2'a'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6
+'Style'#7#8'bsSingle'#5'Color'#7#8'clWindow'#10'DragCursor'#7#6'crDrag'#8'Dr' +#11'Get Attribs'#7'OnClick'#7#12'Button2Click'#8'TabOrder'#2#2#0#0#7'TButton'
+'agKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#13'HideSelection' +#7'Button3'#4'Left'#3'0'#1#6'Height'#2#25#3'Top'#3'~'#1#5'Width'#2'`'#7'Anch'
+#8#13'Lines.Strings'#1#6#9'RichMemo1'#0#9'MaxLength'#2#0#14'ParentBidiMode'#9 +'ors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#11'Select Font'#7'OnClick'#7#12
+#11'ParentColor'#8#10'ParentFont'#9#14'ParentShowHint'#9#8'ReadOnly'#8#10'Sc' +'Button3Click'#8'TabOrder'#2#3#0#0#7'TButton'#7'Button4'#4'Left'#3#16#2#6'He'
+'rollBars'#7#6'ssBoth'#8'TabOrder'#2#0#7'TabStop'#9#7'Visible'#9#11'WantRetu' +'ight'#2#25#3'Top'#3'~'#1#5'Width'#2'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0
+'rns'#9#8'WantTabs'#8#8'WordWrap'#8#0#0#7'TButton'#7'Button1'#4'Left'#2#24#6 +#7'Caption'#6#6'Export'#7'OnClick'#7#12'Button4Click'#8'TabOrder'#2#4#0#0#7
+'Height'#2#25#3'Top'#3#216#1#5'Width'#3#160#0#5'Align'#7#6'alNone'#7'Anchors' +'TButton'#7'Button5'#4'Left'#3#184#1#6'Height'#2#25#3'Top'#3'~'#1#5'Width'#2
+#11#6'akLeft'#8'akBottom'#0#8'AutoSize'#8#6'Cancel'#8#7'Caption'#6#17'Make B' +'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#6'Import'#7'OnClick'#7
+'old and Red'#5'Color'#7#9'clBtnFace'#7'Default'#8#10'DragCursor'#7#6'crDrag' +#12'Button5Click'#8'TabOrder'#2#5#0#0#7'TButton'#7'Button6'#4'Left'#2#24#6'H'
+#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'ParentBid' +'eight'#2#25#3'Top'#3#159#1#5'Width'#3#160#0#7'Anchors'#11#6'akLeft'#8'akBot'
+'iMode'#9#11'ModalResult'#2#0#7'OnClick'#7#12'Button1Click'#10'ParentFont'#9 +'tom'#0#7'Caption'#6#16'Next Style Range'#7'OnClick'#7#12'Button6Click'#8'Ta'
+#14'ParentShowHint'#9#8'TabOrder'#2#1#7'TabStop'#9#7'Visible'#9#0#0#7'TButto' +'bOrder'#2#6#0#0#11'TFontDialog'#11'FontDialog1'#11'MinFontSize'#2#0#11'MaxF'
+'n'#7'Button2'#4'Left'#3#192#0#6'Height'#2#25#3'Top'#3#216#1#5'Width'#2'a'#5 +'ontSize'#2#0#4'left'#3'`'#1#3'top'#3'('#2#0#0#11'TSaveDialog'#11'SaveDialog'
+'Align'#7#6'alNone'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#8'AutoSize'#8#6'Ca' +'1'#10'DefaultExt'#6#4'.rtf'#6'Filter'#6#27'RichText file (*.rtf)|*.rtf'#7'O'
+'ncel'#8#7'Caption'#6#11'Get Attribs'#5'Color'#7#9'clBtnFace'#7'Default'#8#10 +'ptions'#11#17'ofOverwritePrompt'#14'ofEnableSizing'#12'ofViewDetail'#0#4'le'
+'DragCursor'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7 +'ft'#3#24#1#3'top'#3'('#2#0#0#11'TOpenDialog'#11'OpenDialog1'#10'DefaultExt'
+'Enabled'#9#14'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#12'Button2' +#6#4'.rtf'#6'Filter'#6#27'RichText file (*.rtf)|*.rtf'#4'left'#3#208#0#3'top'
+'Click'#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#2#7'TabStop'#9#7 +#3'('#2#0#0#0
+'Visible'#9#0#0#7'TButton'#7'Button3'#4'Left'#3'0'#1#6'Height'#2#25#3'Top'#3
+#216#1#5'Width'#2'`'#5'Align'#7#6'alNone'#7'Anchors'#11#6'akLeft'#8'akBottom'
+#0#8'AutoSize'#8#6'Cancel'#8#7'Caption'#6#11'Select Font'#5'Color'#7#9'clBtn'
+'Face'#7'Default'#8#10'DragCursor'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'Dra'
+'gMode'#7#8'dmManual'#7'Enabled'#9#14'ParentBidiMode'#9#11'ModalResult'#2#0#7
+'OnClick'#7#12'Button3Click'#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrde'
+'r'#2#3#7'TabStop'#9#7'Visible'#9#0#0#7'TButton'#7'Button4'#4'Left'#2'p'#6'H'
+'eight'#2#25#3'Top'#3'('#2#5'Width'#2'K'#5'Align'#7#6'alNone'#8'AutoSize'#8#6
+'Cancel'#8#7'Caption'#6#6'Export'#5'Color'#7#9'clBtnFace'#7'Default'#8#10'Dr'
+'agCursor'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'E'
+'nabled'#9#14'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#12'Button4C'
+'lick'#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#4#7'TabStop'#9#7
+'Visible'#9#0#0#7'TButton'#7'Button5'#4'Left'#2#24#6'Height'#2#25#3'Top'#3'('
+#2#5'Width'#2'K'#5'Align'#7#6'alNone'#8'AutoSize'#8#6'Cancel'#8#7'Caption'#6
+#6'Import'#5'Color'#7#9'clBtnFace'#7'Default'#8#10'DragCursor'#7#6'crDrag'#8
+'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'ParentBidiM'
+'ode'#9#11'ModalResult'#2#0#7'OnClick'#7#12'Button5Click'#10'ParentFont'#9#14
+'ParentShowHint'#9#8'TabOrder'#2#5#7'TabStop'#9#7'Visible'#9#0#0#7'TButton'#7
+'Button6'#4'Left'#2#24#6'Height'#2#25#3'Top'#3#248#1#5'Width'#3#160#0#5'Alig'
+'n'#7#6'alNone'#8'AutoSize'#8#6'Cancel'#8#7'Caption'#6#16'Next Style Range'#5
+'Color'#7#9'clBtnFace'#7'Default'#8#10'DragCursor'#7#6'crDrag'#8'DragKind'#7
+#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'ParentBidiMode'#9#11'Mo'
+'dalResult'#2#0#7'OnClick'#7#12'Button6Click'#10'ParentFont'#9#14'ParentShow'
+'Hint'#9#8'TabOrder'#2#6#7'TabStop'#9#7'Visible'#9#0#0#11'TFontDialog'#11'Fo'
+'ntDialog1'#11'MinFontSize'#2#0#11'MaxFontSize'#2#0#4'left'#3#184#2#3'top'#3
+#216#1#0#0#11'TSaveDialog'#11'SaveDialog1'#10'DefaultExt'#6#4'.rtf'#6'Filter'
+#6#27'RichText file (*.rtf)|*.rtf'#7'Options'#11#17'ofOverwritePrompt'#14'of'
+'EnableSizing'#12'ofViewDetail'#0#4'left'#3'h'#2#3'top'#3#216#1#0#0#11'TOpen'
+'Dialog'#11'OpenDialog1'#10'DefaultExt'#6#4'.rtf'#6'Filter'#6#27'RichText fi'
+'le (*.rtf)|*.rtf'#4'left'#3#24#2#3'top'#3#216#1#0#0#0
]); ]);

View File

@ -45,10 +45,14 @@ implementation
{ TForm1 } { TForm1 }
procedure TForm1.Button1Click(Sender: TObject); procedure TForm1.Button1Click(Sender: TObject);
var
fp : TFontParams;
begin begin
Caption := Format('sel start %d, sel length %d', [RichMemo1.SelStart, RichMemo1.SelLength]); Caption := Format('sel start %d, sel length %d', [RichMemo1.SelStart, RichMemo1.SelLength]);
RichMemo1.SetTextAttributes( RichMemo1.GetTextAttributes(RichMemo1.SelStart, fp);
RichMemo1.SelStart, RichMemo1.SelLength, GetFontParams(clRed, [fsBold]) ); fp.Color := clRed;
fp.Style := [fsBold];
RichMemo1.SetTextAttributes(RichMemo1.SelStart, RichMemo1.SelLength, fp);
end; end;
procedure TForm1.Button2Click(Sender: TObject); procedure TForm1.Button2Click(Sender: TObject);

View File

@ -25,7 +25,7 @@ type
published published
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND; override; class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND; override;
class function GetTextAttributes(const AWinControl: TWinControl; TextStart: Integer; class function GetTextAttributes(const AWinControl: TWinControl; TextStart: Integer;
var Params: TIntFontParams): Boolean; virtual; var Params: TIntFontParams): Boolean; override;
class procedure SetTextAttributes(const AWinControl: TWinControl; TextStart, TextLen: Integer; class procedure SetTextAttributes(const AWinControl: TWinControl; TextStart, TextLen: Integer;
const Params: TIntFontParams); override; const Params: TIntFontParams); override;
class procedure SetHideSelection(const AWinControl: TWinControl; AHideSelection: Boolean); override; class procedure SetHideSelection(const AWinControl: TWinControl; AHideSelection: Boolean); override;
@ -147,7 +147,10 @@ var
OrigLen : Integer; OrigLen : Integer;
NeedLock : Boolean; NeedLock : Boolean;
begin begin
if not Assigned(RichEditManager) or not Assigned(AWinControl) then Exit; if not Assigned(RichEditManager) or not Assigned(AWinControl) then begin
Result := false;
Exit;
end;
RichEditManager.GetSelection(AWinControl.Handle, OrigStart, OrigLen); RichEditManager.GetSelection(AWinControl.Handle, OrigStart, OrigLen);

View File

@ -96,7 +96,7 @@ end;
procedure CharFormatToFontParams(const fmt: TCHARFORMAT; var Params: TIntFontParams); procedure CharFormatToFontParams(const fmt: TCHARFORMAT; var Params: TIntFontParams);
begin begin
Params.Name := fmt.szFaceName; Params.Name := fmt.szFaceName;
Params.Size := fmt.cbSize; Params.Size := Round(fmt.yHeight/TwipsInFontSize);
Params.Color := fmt.crTextColor; Params.Color := fmt.crTextColor;
Params.Style := EffectsToFontStyles(fmt.dwEffects); Params.Style := EffectsToFontStyles(fmt.dwEffects);
end; end;
@ -154,8 +154,7 @@ begin
fmt.cbSize := sizeof(fmt); fmt.cbSize := sizeof(fmt);
fmt.dwMask := CFM_COLOR or CFM_FACE or CFM_SIZE or CFM_EFFECTS; fmt.dwMask := CFM_COLOR or CFM_FACE or CFM_SIZE or CFM_EFFECTS;
mask := SendMessage(RichEditWnd, EM_GETCHARFORMAT, w, PtrInt(@fmt)); SendMessage(RichEditWnd, EM_GETCHARFORMAT, w, PtrInt(@fmt));
if mask = 0 then Exit;
CharFormatToFontParams(fmt, Params); CharFormatToFontParams(fmt, Params);
Result := true; Result := true;