mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-21 22:59:27 +02:00
IDE: extended the character map with unicode tables from Theo (issue #12992)
git-svn-id: trunk@18384 -
This commit is contained in:
parent
64ffa702f8
commit
4ee9b91633
@ -1,183 +1,119 @@
|
||||
object CharacterMapDialog: TCharacterMapDialog
|
||||
Left = 612
|
||||
Height = 421
|
||||
Top = 233
|
||||
Width = 471
|
||||
HelpContext = 0
|
||||
ActiveControl = StringGrid1
|
||||
Align = alNone
|
||||
AllowDropFiles = False
|
||||
AutoScroll = True
|
||||
AutoSize = False
|
||||
BorderIcons = [biSystemMenu, biMinimize, biMaximize]
|
||||
BorderStyle = bsSizeable
|
||||
Left = 370
|
||||
Height = 432
|
||||
Top = 128
|
||||
Width = 484
|
||||
ActiveControl = PageControl1
|
||||
Caption = 'CharacterMapDialog'
|
||||
ChildSizing.LeftRightSpacing = 0
|
||||
ChildSizing.TopBottomSpacing = 0
|
||||
ChildSizing.HorizontalSpacing = 0
|
||||
ChildSizing.VerticalSpacing = 0
|
||||
ChildSizing.ControlsPerLine = 0
|
||||
ClientHeight = 421
|
||||
ClientWidth = 471
|
||||
DockSite = False
|
||||
DragKind = dkDrag
|
||||
DragMode = dmManual
|
||||
Enabled = True
|
||||
Font.Height = 0
|
||||
Font.Style = []
|
||||
ClientHeight = 432
|
||||
ClientWidth = 484
|
||||
FormStyle = fsStayOnTop
|
||||
KeyPreview = True
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
ParentBiDiMode = True
|
||||
ParentFont = False
|
||||
Position = poScreenCenter
|
||||
ShowInTaskBar = stDefault
|
||||
UseDockManager = False
|
||||
LCLVersion = '0.9.27'
|
||||
WindowState = wsNormal
|
||||
object CharInfoLabel: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Side = asrBottom
|
||||
object ButtonPanel: TButtonPanel
|
||||
Left = 6
|
||||
Height = 18
|
||||
Top = 349
|
||||
Width = 459
|
||||
HelpContext = 0
|
||||
Align = alBottom
|
||||
Alignment = taLeftJustify
|
||||
Anchors = [akLeft, akBottom]
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 0
|
||||
BorderSpacing.Top = 0
|
||||
BorderSpacing.Right = 0
|
||||
BorderSpacing.Bottom = 0
|
||||
BorderSpacing.Around = 6
|
||||
BorderSpacing.CellAlignHorizontal = ccaFill
|
||||
BorderSpacing.CellAlignVertical = ccaFill
|
||||
Caption = 'CharInfoLabel'
|
||||
DragCursor = crDrag
|
||||
DragMode = dmManual
|
||||
Enabled = True
|
||||
Layout = tlTop
|
||||
ParentBidiMode = True
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
ParentShowHint = True
|
||||
ShowAccelChar = True
|
||||
Transparent = True
|
||||
Visible = True
|
||||
WordWrap = False
|
||||
OptimalFill = False
|
||||
Height = 48
|
||||
Top = 378
|
||||
Width = 472
|
||||
TabOrder = 0
|
||||
ShowButtons = [pbClose, pbHelp]
|
||||
end
|
||||
object CharactersGroupbox: TGroupBox
|
||||
object PageControl1: TPageControl
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = CharInfoLabel
|
||||
AnchorSideBottom.Control = ButtonPanel
|
||||
Left = 6
|
||||
Height = 337
|
||||
Height = 366
|
||||
Top = 6
|
||||
Width = 459
|
||||
HelpContext = 0
|
||||
Align = alClient
|
||||
AutoSize = False
|
||||
BorderSpacing.Left = 0
|
||||
BorderSpacing.Top = 0
|
||||
BorderSpacing.Right = 0
|
||||
BorderSpacing.Bottom = 0
|
||||
Width = 472
|
||||
ActivePage = TabSheet1
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BorderSpacing.Around = 6
|
||||
BorderSpacing.CellAlignHorizontal = ccaFill
|
||||
BorderSpacing.CellAlignVertical = ccaFill
|
||||
Caption = 'Characters'
|
||||
ChildSizing.LeftRightSpacing = 0
|
||||
ChildSizing.TopBottomSpacing = 0
|
||||
ChildSizing.HorizontalSpacing = 0
|
||||
ChildSizing.VerticalSpacing = 0
|
||||
ChildSizing.ControlsPerLine = 0
|
||||
ClientHeight = 318
|
||||
ClientWidth = 455
|
||||
Ctl3D = False
|
||||
DockSite = False
|
||||
DragCursor = crDrag
|
||||
DragKind = dkDrag
|
||||
DragMode = dmManual
|
||||
Enabled = True
|
||||
ParentBidiMode = True
|
||||
ParentColor = True
|
||||
ParentCtl3D = False
|
||||
ParentFont = True
|
||||
ParentShowHint = True
|
||||
TabOrder = 0
|
||||
TabStop = False
|
||||
Visible = True
|
||||
object StringGrid1: TStringGrid
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 306
|
||||
Top = 6
|
||||
Width = 443
|
||||
HelpContext = 0
|
||||
Align = alClient
|
||||
Anchors = []
|
||||
AutoAdvance = aaRight
|
||||
AutoEdit = True
|
||||
AutoFillColumns = False
|
||||
BorderSpacing.Left = 0
|
||||
BorderSpacing.Top = 0
|
||||
BorderSpacing.Right = 0
|
||||
BorderSpacing.Bottom = 0
|
||||
BorderSpacing.Around = 6
|
||||
BorderSpacing.CellAlignHorizontal = ccaFill
|
||||
BorderSpacing.CellAlignVertical = ccaFill
|
||||
BorderStyle = bsSingle
|
||||
ColCount = 17
|
||||
DefaultColWidth = 16
|
||||
DefaultDrawing = True
|
||||
DragCursor = crDrag
|
||||
DragKind = dkDrag
|
||||
DragMode = dmManual
|
||||
Enabled = True
|
||||
ExtendedSelect = True
|
||||
FixedColor = clBtnFace
|
||||
FixedCols = 1
|
||||
FixedRows = 1
|
||||
Flat = False
|
||||
GridLineWidth = 1
|
||||
HeaderHotZones = [gzFixedCols]
|
||||
HeaderPushZones = [gzFixedCols]
|
||||
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll]
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
ParentShowHint = True
|
||||
RowCount = 15
|
||||
ScrollBars = ssAutoBoth
|
||||
TabOrder = 0
|
||||
TabStop = True
|
||||
TitleFont.Height = 0
|
||||
TitleFont.Style = []
|
||||
TitleStyle = tsLazarus
|
||||
UseXORFeatures = False
|
||||
Visible = True
|
||||
OnMouseDown = StringGrid1MouseDown
|
||||
OnMouseMove = StringGrid1MouseMove
|
||||
TabIndex = 0
|
||||
TabOrder = 1
|
||||
object TabSheet1: TTabSheet
|
||||
Caption = 'ANSI'
|
||||
ClientHeight = 336
|
||||
ClientWidth = 468
|
||||
object CharInfoLabel: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 17
|
||||
Top = 313
|
||||
Width = 456
|
||||
Align = alBottom
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'CharInfoLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
object StringGrid1: TStringGrid
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 288
|
||||
Top = 0
|
||||
Width = 468
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
ColCount = 17
|
||||
DefaultColWidth = 16
|
||||
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll]
|
||||
RowCount = 15
|
||||
TabOrder = 0
|
||||
OnMouseDown = StringGrid1MouseDown
|
||||
OnMouseMove = StringGrid1MouseMove
|
||||
end
|
||||
end
|
||||
object TabSheet2: TTabSheet
|
||||
Caption = 'Unicode'
|
||||
ClientHeight = 336
|
||||
ClientWidth = 468
|
||||
object UnicodeCharInfoLabel: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 17
|
||||
Top = 313
|
||||
Width = 126
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'UnicodeCharInfoLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
object StringGrid2: TStringGrid
|
||||
Left = 0
|
||||
Height = 288
|
||||
Top = 0
|
||||
Width = 468
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
ColCount = 16
|
||||
DefaultColWidth = 26
|
||||
DefaultRowHeight = 26
|
||||
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll]
|
||||
RowCount = 15
|
||||
TabOrder = 0
|
||||
OnMouseDown = StringGrid2MouseDown
|
||||
OnMouseMove = StringGrid2MouseMove
|
||||
end
|
||||
object cbUniRange: TComboBox
|
||||
Left = 253
|
||||
Height = 24
|
||||
Top = 305
|
||||
Width = 212
|
||||
Anchors = [akRight, akBottom]
|
||||
AutoComplete = False
|
||||
ItemHeight = 0
|
||||
ItemWidth = 0
|
||||
OnSelect = cbUniRangeSelect
|
||||
TabOrder = 1
|
||||
Text = 'cbUniRange'
|
||||
end
|
||||
end
|
||||
end
|
||||
object ButtonPanel: TButtonPanel
|
||||
Left = 6
|
||||
Height = 48
|
||||
Top = 373
|
||||
Width = 459
|
||||
HelpContext = 0
|
||||
Align = alBottom
|
||||
AutoSize = True
|
||||
ButtonOrder = boDefault
|
||||
TabOrder = 1
|
||||
DefaultButton = pbOK
|
||||
ShowButtons = [pbClose, pbHelp]
|
||||
ShowGlyphs = [pbOK, pbCancel, pbClose, pbHelp]
|
||||
Visible = True
|
||||
end
|
||||
end
|
||||
|
@ -1,66 +1,44 @@
|
||||
{ This is an automatically generated lazarus resource file }
|
||||
{ Das ist eine automatisch erzeugte Lazarus-Ressourcendatei }
|
||||
|
||||
LazarusResources.Add('TCharacterMapDialog','FORMDATA',[
|
||||
'TPF0'#19'TCharacterMapDialog'#18'CharacterMapDialog'#4'Left'#3'd'#2#6'Height'
|
||||
+#3#165#1#3'Top'#3#233#0#5'Width'#3#215#1#11'HelpContext'#2#0#13'ActiveContro'
|
||||
+'l'#7#11'StringGrid1'#5'Align'#7#6'alNone'#14'AllowDropFiles'#8#10'AutoScrol'
|
||||
+'l'#9#8'AutoSize'#8#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#10'bi'
|
||||
+'Maximize'#0#11'BorderStyle'#7#10'bsSizeable'#7'Caption'#6#18'CharacterMapDi'
|
||||
+'alog'#28'ChildSizing.LeftRightSpacing'#2#0#28'ChildSizing.TopBottomSpacing'
|
||||
+#2#0#29'ChildSizing.HorizontalSpacing'#2#0#27'ChildSizing.VerticalSpacing'#2
|
||||
+#0#27'ChildSizing.ControlsPerLine'#2#0#12'ClientHeight'#3#165#1#11'ClientWid'
|
||||
+'th'#3#215#1#8'DockSite'#8#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'
|
||||
+#7'Enabled'#9#11'Font.Height'#2#0#10'Font.Style'#11#0#9'FormStyle'#7#11'fsSt'
|
||||
+'ayOnTop'#10'KeyPreview'#9#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormSh'
|
||||
+'ow'#14'ParentBiDiMode'#9#10'ParentFont'#8#8'Position'#7#14'poScreenCenter'
|
||||
+#13'ShowInTaskBar'#7#9'stDefault'#14'UseDockManager'#8#10'LCLVersion'#6#6'0.'
|
||||
+'9.27'#11'WindowState'#7#8'wsNormal'#0#6'TLabel'#13'CharInfoLabel'#22'Anchor'
|
||||
'TPF0'#19'TCharacterMapDialog'#18'CharacterMapDialog'#4'Left'#3'r'#1#6'Height'
|
||||
+#3#176#1#3'Top'#3#128#0#5'Width'#3#228#1#13'ActiveControl'#7#12'PageControl1'
|
||||
+#7'Caption'#6#18'CharacterMapDialog'#12'ClientHeight'#3#176#1#11'ClientWidth'
|
||||
+#3#228#1#9'FormStyle'#7#11'fsStayOnTop'#10'KeyPreview'#9#8'OnCreate'#7#10'Fo'
|
||||
+'rmCreate'#6'OnShow'#7#8'FormShow'#8'Position'#7#14'poScreenCenter'#10'LCLVe'
|
||||
+'rsion'#6#6'0.9.27'#0#12'TButtonPanel'#11'ButtonPanel'#4'Left'#2#6#6'Height'
|
||||
+#2'0'#3'Top'#3'z'#1#5'Width'#3#216#1#8'TabOrder'#2#0#11'ShowButtons'#11#7'pb'
|
||||
+'Close'#6'pbHelp'#0#0#0#12'TPageControl'#12'PageControl1'#22'AnchorSideLeft.'
|
||||
+'Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight'
|
||||
+'.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideB'
|
||||
+'ottom.Control'#7#11'ButtonPanel'#4'Left'#2#6#6'Height'#3'n'#1#3'Top'#2#6#5
|
||||
+'Width'#3#216#1#10'ActivePage'#7#9'TabSheet1'#7'Anchors'#11#5'akTop'#6'akLef'
|
||||
+'t'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#8'TabIndex'#2#0#8
|
||||
+'TabOrder'#2#1#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#4'ANSI'#12'ClientHei'
|
||||
+'ght'#3'P'#1#11'ClientWidth'#3#212#1#0#6'TLabel'#13'CharInfoLabel'#22'Anchor'
|
||||
+'SideLeft.Control'#7#5'Owner'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2
|
||||
+#6#6'Height'#2#18#3'Top'#3']'#1#5'Width'#3#203#1#11'HelpContext'#2#0#5'Align'
|
||||
+#7#8'alBottom'#9'Alignment'#7#13'taLeftJustify'#7'Anchors'#11#6'akLeft'#8'ak'
|
||||
+'Bottom'#0#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0
|
||||
+#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.A'
|
||||
+'round'#2#6'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacin'
|
||||
+'g.CellAlignVertical'#7#7'ccaFill'#7'Caption'#6#13'CharInfoLabel'#10'DragCur'
|
||||
+'sor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#6'Layout'#7#5'tlTop'
|
||||
+#14'ParentBidiMode'#9#11'ParentColor'#8#10'ParentFont'#9#14'ParentShowHint'#9
|
||||
+#13'ShowAccelChar'#9#11'Transparent'#9#7'Visible'#9#8'WordWrap'#8#11'Optimal'
|
||||
+'Fill'#8#0#0#9'TGroupBox'#18'CharactersGroupbox'#22'AnchorSideLeft.Control'#7
|
||||
+#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7
|
||||
+#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contro'
|
||||
+'l'#7#13'CharInfoLabel'#4'Left'#2#6#6'Height'#3'Q'#1#3'Top'#2#6#5'Width'#3
|
||||
+#203#1#11'HelpContext'#2#0#5'Align'#7#8'alClient'#8'AutoSize'#8#18'BorderSpa'
|
||||
+'cing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'Bor'
|
||||
+'derSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#6'!BorderSpacing.CellAlig'
|
||||
+'nHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#7
|
||||
+'Caption'#6#10'Characters'#28'ChildSizing.LeftRightSpacing'#2#0#28'ChildSizi'
|
||||
+'ng.TopBottomSpacing'#2#0#29'ChildSizing.HorizontalSpacing'#2#0#27'ChildSizi'
|
||||
+'ng.VerticalSpacing'#2#0#27'ChildSizing.ControlsPerLine'#2#0#12'ClientHeight'
|
||||
+#3'>'#1#11'ClientWidth'#3#199#1#5'Ctl3D'#8#8'DockSite'#8#10'DragCursor'#7#6
|
||||
+'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'P'
|
||||
+'arentBidiMode'#9#11'ParentColor'#9#11'ParentCtl3D'#8#10'ParentFont'#9#14'Pa'
|
||||
+'rentShowHint'#9#8'TabOrder'#2#0#7'TabStop'#8#7'Visible'#9#0#11'TStringGrid'
|
||||
+#11'StringGrid1'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSideBottom'
|
||||
+'.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#3'2'#1#3'Top'#2#6#5'Width'#3#187
|
||||
+#1#11'HelpContext'#2#0#5'Align'#7#8'alClient'#7'Anchors'#11#0#11'AutoAdvance'
|
||||
+#7#7'aaRight'#8'AutoEdit'#9#15'AutoFillColumns'#8#18'BorderSpacing.Left'#2#0
|
||||
+#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bott'
|
||||
+'om'#2#0#20'BorderSpacing.Around'#2#6'!BorderSpacing.CellAlignHorizontal'#7#7
|
||||
+'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#11'BorderStyle'#7
|
||||
+#8'bsSingle'#8'ColCount'#2#17#15'DefaultColWidth'#2#16#14'DefaultDrawing'#9
|
||||
+#10'DragCursor'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'
|
||||
+#7'Enabled'#9#14'ExtendedSelect'#9#10'FixedColor'#7#9'clBtnFace'#9'FixedCols'
|
||||
+#2#1#9'FixedRows'#2#1#4'Flat'#8#13'GridLineWidth'#2#1#14'HeaderHotZones'#11
|
||||
+#11'gzFixedCols'#0#15'HeaderPushZones'#11#11'gzFixedCols'#0#7'Options'#11#15
|
||||
+'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmo'
|
||||
+'othScroll'#0#11'ParentColor'#8#10'ParentFont'#9#14'ParentShowHint'#9#8'RowC'
|
||||
+'ount'#2#15#10'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#0#7'TabStop'#9#16
|
||||
+'TitleFont.Height'#2#0#15'TitleFont.Style'#11#0#10'TitleStyle'#7#9'tsLazarus'
|
||||
+#14'UseXORFeatures'#8#7'Visible'#9#11'OnMouseDown'#7#20'StringGrid1MouseDown'
|
||||
+#11'OnMouseMove'#7#20'StringGrid1MouseMove'#0#0#0#12'TButtonPanel'#11'Button'
|
||||
+'Panel'#4'Left'#2#6#6'Height'#2'0'#3'Top'#3'u'#1#5'Width'#3#203#1#11'HelpCon'
|
||||
+'text'#2#0#5'Align'#7#8'alBottom'#8'AutoSize'#9#11'ButtonOrder'#7#9'boDefaul'
|
||||
+'t'#8'TabOrder'#2#1#13'DefaultButton'#7#4'pbOK'#11'ShowButtons'#11#7'pbClose'
|
||||
+#6'pbHelp'#0#10'ShowGlyphs'#11#4'pbOK'#8'pbCancel'#7'pbClose'#6'pbHelp'#0#7
|
||||
+'Visible'#9#0#0#0
|
||||
+#6#6'Height'#2#17#3'Top'#3'9'#1#5'Width'#3#200#1#5'Align'#7#8'alBottom'#7'An'
|
||||
+'chors'#11#6'akLeft'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6
|
||||
+#13'CharInfoLabel'#11'ParentColor'#8#0#0#11'TStringGrid'#11'StringGrid1'#20
|
||||
+'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBotto'
|
||||
+'m'#4'Left'#2#0#6'Height'#3' '#1#3'Top'#2#0#5'Width'#3#212#1#7'Anchors'#11#5
|
||||
+'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8'ColCount'#2#17#15'DefaultColWid'
|
||||
+'th'#2#16#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLin'
|
||||
+'e'#10'goHorzLine'#14'goSmoothScroll'#0#8'RowCount'#2#15#8'TabOrder'#2#0#11
|
||||
+'OnMouseDown'#7#20'StringGrid1MouseDown'#11'OnMouseMove'#7#20'StringGrid1Mou'
|
||||
+'seMove'#0#0#0#9'TTabSheet'#9'TabSheet2'#7'Caption'#6#7'Unicode'#12'ClientHe'
|
||||
+'ight'#3'P'#1#11'ClientWidth'#3#212#1#0#6'TLabel'#20'UnicodeCharInfoLabel'#22
|
||||
+'AnchorSideLeft.Control'#7#5'Owner'#18'AnchorSideTop.Side'#7#9'asrBottom'#4
|
||||
+'Left'#2#6#6'Height'#2#17#3'Top'#3'9'#1#5'Width'#2'~'#7'Anchors'#11#6'akLeft'
|
||||
+#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#20'UnicodeCharInfoL'
|
||||
+'abel'#11'ParentColor'#8#0#0#11'TStringGrid'#11'StringGrid2'#4'Left'#2#0#6'H'
|
||||
+'eight'#3' '#1#3'Top'#2#0#5'Width'#3#212#1#7'Anchors'#11#5'akTop'#6'akLeft'#7
|
||||
+'akRight'#8'akBottom'#0#8'ColCount'#2#16#15'DefaultColWidth'#2#26#16'Default'
|
||||
+'RowHeight'#2#26#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'go'
|
||||
+'VertLine'#10'goHorzLine'#14'goSmoothScroll'#0#8'RowCount'#2#15#8'TabOrder'#2
|
||||
+#0#11'OnMouseDown'#7#20'StringGrid2MouseDown'#11'OnMouseMove'#7#20'StringGri'
|
||||
+'d2MouseMove'#0#0#9'TComboBox'#10'cbUniRange'#4'Left'#3#253#0#6'Height'#2#24
|
||||
+#3'Top'#3'1'#1#5'Width'#3#212#0#7'Anchors'#11#7'akRight'#8'akBottom'#0#12'Au'
|
||||
+'toComplete'#8#10'ItemHeight'#2#0#9'ItemWidth'#2#0#8'OnSelect'#7#16'cbUniRan'
|
||||
+'geSelect'#8'TabOrder'#2#1#4'Text'#6#10'cbUniRange'#0#0#0#0#0
|
||||
]);
|
||||
|
@ -37,8 +37,8 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons,
|
||||
StdCtrls, LCLType, GraphType, LazarusIDEStrConsts, EditorOptions,
|
||||
EnvironmentOpts, Grids, IDEContextHelpEdit, ButtonPanel;
|
||||
StdCtrls, LCLType, LCLProc, GraphType, LazarusIDEStrConsts, EditorOptions,
|
||||
EnvironmentOpts, Grids, IDEContextHelpEdit, ButtonPanel, ComCtrls;
|
||||
|
||||
type
|
||||
TOnInsertCharacterEvent = procedure (const C: TUTF8Char) of object;
|
||||
@ -47,9 +47,15 @@ type
|
||||
|
||||
TCharacterMapDialog = class(TForm)
|
||||
ButtonPanel: TButtonPanel;
|
||||
CharactersGroupbox: TGroupbox;
|
||||
CharInfoLabel: TLabel;
|
||||
cbUniRange: TComboBox;
|
||||
UnicodeCharInfoLabel: TLabel;
|
||||
PageControl1: TPageControl;
|
||||
StringGrid1: TStringGrid;
|
||||
StringGrid2: TStringGrid;
|
||||
TabSheet1: TTabSheet;
|
||||
TabSheet2: TTabSheet;
|
||||
procedure cbUniRangeSelect(Sender: TObject);
|
||||
procedure HelpButtonClick(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
@ -57,6 +63,10 @@ type
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||||
Y: Integer);
|
||||
procedure StringGrid2MouseDown(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
procedure StringGrid2MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||||
Y: Integer);
|
||||
private
|
||||
FOnInsertCharacter: TOnInsertCharacterEvent;
|
||||
procedure FillCharMap;
|
||||
@ -72,6 +82,173 @@ var
|
||||
|
||||
implementation
|
||||
|
||||
type TUnicodeRange = record
|
||||
S: longint;
|
||||
E: longint;
|
||||
PG: string[50];
|
||||
end;
|
||||
|
||||
const
|
||||
MaxUnicodeRanges = 151;
|
||||
UnicodeRanges: array[0..MaxUnicodeRanges] of TUnicodeRange = (
|
||||
|
||||
(S: $0020; E: $007F; PG: 'Basic Latin'),
|
||||
(S: $00A0; E: $00FF; PG: 'Latin-1 Supplement'),
|
||||
(S: $0100; E: $017F; PG: 'Latin Extended-A'),
|
||||
(S: $0180; E: $024F; PG: 'Latin Extended-B'),
|
||||
(S: $0250; E: $02AF; PG: 'IPA Extensions'),
|
||||
(S: $02B0; E: $02FF; PG: 'Spacing Modifier Letters'),
|
||||
(S: $0300; E: $036F; PG: 'Combining Diacritical Marks'),
|
||||
(S: $0370; E: $03FF; PG: 'Greek and Coptic'),
|
||||
(S: $0400; E: $04FF; PG: 'Cyrillic'),
|
||||
(S: $0500; E: $052F; PG: 'Cyrillic Supplement'),
|
||||
(S: $0530; E: $058F; PG: 'Armenian'),
|
||||
(S: $0590; E: $05FF; PG: 'Hebrew'),
|
||||
(S: $0600; E: $06FF; PG: 'Arabic'),
|
||||
(S: $0700; E: $074F; PG: 'Syriac'),
|
||||
(S: $0750; E: $077F; PG: 'Arabic Supplement'),
|
||||
(S: $0780; E: $07BF; PG: 'Thaana'),
|
||||
(S: $07C0; E: $07FF; PG: 'NKo'),
|
||||
(S: $0900; E: $097F; PG: 'Devanagari'),
|
||||
(S: $0980; E: $09FF; PG: 'Bengali'),
|
||||
(S: $0A00; E: $0A7F; PG: 'Gurmukhi'),
|
||||
(S: $0A80; E: $0AFF; PG: 'Gujarati'),
|
||||
(S: $0B00; E: $0B7F; PG: 'Oriya'),
|
||||
(S: $0B80; E: $0BFF; PG: 'Tamil'),
|
||||
(S: $0C00; E: $0C7F; PG: 'Telugu'),
|
||||
(S: $0C80; E: $0CFF; PG: 'Kannada'),
|
||||
(S: $0D00; E: $0D7F; PG: 'Malayalam'),
|
||||
(S: $0D80; E: $0DFF; PG: 'Sinhala'),
|
||||
(S: $0E00; E: $0E7F; PG: 'Thai'),
|
||||
(S: $0E80; E: $0EFF; PG: 'Lao'),
|
||||
(S: $0F00; E: $0FFF; PG: 'Tibetan'),
|
||||
(S: $1000; E: $109F; PG: 'Myanmar'),
|
||||
(S: $10A0; E: $10FF; PG: 'Georgian'),
|
||||
(S: $1100; E: $11FF; PG: 'Hangul Jamo'),
|
||||
(S: $1200; E: $137F; PG: 'Ethiopic'),
|
||||
(S: $1380; E: $139F; PG: 'Ethiopic Supplement'),
|
||||
(S: $13A0; E: $13FF; PG: 'Cherokee'),
|
||||
(S: $1400; E: $167F; PG: 'Unified Canadian Aboriginal Syllabics'),
|
||||
(S: $1680; E: $169F; PG: 'Ogham'),
|
||||
(S: $16A0; E: $16FF; PG: 'Runic'),
|
||||
(S: $1700; E: $171F; PG: 'Tagalog'),
|
||||
(S: $1720; E: $173F; PG: 'Hanunoo'),
|
||||
(S: $1740; E: $175F; PG: 'Buhid'),
|
||||
(S: $1760; E: $177F; PG: 'Tagbanwa'),
|
||||
(S: $1780; E: $17FF; PG: 'Khmer'),
|
||||
(S: $1800; E: $18AF; PG: 'Mongolian'),
|
||||
(S: $1900; E: $194F; PG: 'Limbu'),
|
||||
(S: $1950; E: $197F; PG: 'Tai Le'),
|
||||
(S: $1980; E: $19DF; PG: 'New Tai Lue'),
|
||||
(S: $19E0; E: $19FF; PG: 'Khmer Symbols'),
|
||||
(S: $1A00; E: $1A1F; PG: 'Buginese'),
|
||||
(S: $1B00; E: $1B7F; PG: 'Balinese'),
|
||||
(S: $1D00; E: $1D7F; PG: 'Phonetic Extensions'),
|
||||
(S: $1D80; E: $1DBF; PG: 'Phonetic Extensions Supplement'),
|
||||
(S: $1DC0; E: $1DFF; PG: 'Combining Diacritical Marks Supplement'),
|
||||
(S: $1E00; E: $1EFF; PG: 'Latin Extended Additional'),
|
||||
(S: $1F00; E: $1FFF; PG: 'Greek Extended'),
|
||||
(S: $2000; E: $206F; PG: 'General Punctuation'),
|
||||
(S: $2070; E: $209F; PG: 'Superscripts and Subscripts'),
|
||||
(S: $20A0; E: $20CF; PG: 'Currency Symbols'),
|
||||
(S: $20D0; E: $20FF; PG: 'Combining Diacritical Marks for Symbols'),
|
||||
(S: $2100; E: $214F; PG: 'Letterlike Symbols'),
|
||||
(S: $2150; E: $218F; PG: 'Number Forms'),
|
||||
(S: $2190; E: $21FF; PG: 'Arrows'),
|
||||
(S: $2200; E: $22FF; PG: 'Mathematical Operators'),
|
||||
(S: $2300; E: $23FF; PG: 'Miscellaneous Technical'),
|
||||
(S: $2400; E: $243F; PG: 'Control Pictures'),
|
||||
(S: $2440; E: $245F; PG: 'Optical Character Recognition'),
|
||||
(S: $2460; E: $24FF; PG: 'Enclosed Alphanumerics'),
|
||||
(S: $2500; E: $257F; PG: 'Box Drawing'),
|
||||
(S: $2580; E: $259F; PG: 'Block Elements'),
|
||||
(S: $25A0; E: $25FF; PG: 'Geometric Shapes'),
|
||||
(S: $2600; E: $26FF; PG: 'Miscellaneous Symbols'),
|
||||
(S: $2700; E: $27BF; PG: 'Dingbats'),
|
||||
(S: $27C0; E: $27EF; PG: 'Miscellaneous Mathematical Symbols-A'),
|
||||
(S: $27F0; E: $27FF; PG: 'Supplemental Arrows-A'),
|
||||
(S: $2800; E: $28FF; PG: 'Braille Patterns'),
|
||||
(S: $2900; E: $297F; PG: 'Supplemental Arrows-B'),
|
||||
(S: $2980; E: $29FF; PG: 'Miscellaneous Mathematical Symbols-B'),
|
||||
(S: $2A00; E: $2AFF; PG: 'Supplemental Mathematical Operators'),
|
||||
(S: $2B00; E: $2BFF; PG: 'Miscellaneous Symbols and Arrows'),
|
||||
(S: $2C00; E: $2C5F; PG: 'Glagolitic'),
|
||||
(S: $2C60; E: $2C7F; PG: 'Latin Extended-C'),
|
||||
(S: $2C80; E: $2CFF; PG: 'Coptic'),
|
||||
(S: $2D00; E: $2D2F; PG: 'Georgian Supplement'),
|
||||
(S: $2D30; E: $2D7F; PG: 'Tifinagh'),
|
||||
(S: $2D80; E: $2DDF; PG: 'Ethiopic Extended'),
|
||||
(S: $2E00; E: $2E7F; PG: 'Supplemental Punctuation'),
|
||||
(S: $2E80; E: $2EFF; PG: 'CJK Radicals Supplement'),
|
||||
(S: $2F00; E: $2FDF; PG: 'Kangxi Radicals'),
|
||||
(S: $2FF0; E: $2FFF; PG: 'Ideographic Description Characters'),
|
||||
(S: $3000; E: $303F; PG: 'CJK Symbols and Punctuation'),
|
||||
(S: $3040; E: $309F; PG: 'Hiragana'),
|
||||
(S: $30A0; E: $30FF; PG: 'Katakana'),
|
||||
(S: $3100; E: $312F; PG: 'Bopomofo'),
|
||||
(S: $3130; E: $318F; PG: 'Hangul Compatibility Jamo'),
|
||||
(S: $3190; E: $319F; PG: 'Kanbun'),
|
||||
(S: $31A0; E: $31BF; PG: 'Bopomofo Extended'),
|
||||
(S: $31C0; E: $31EF; PG: 'CJK Strokes'),
|
||||
(S: $31F0; E: $31FF; PG: 'Katakana Phonetic Extensions'),
|
||||
(S: $3200; E: $32FF; PG: 'Enclosed CJK Letters and Months'),
|
||||
(S: $3300; E: $33FF; PG: 'CJK Compatibility'),
|
||||
(S: $3400; E: $4DBF; PG: 'CJK Unified Ideographs Extension A'),
|
||||
(S: $4DC0; E: $4DFF; PG: 'Yijing Hexagram Symbols'),
|
||||
(S: $4E00; E: $9FFF; PG: 'CJK Unified Ideographs'),
|
||||
(S: $A000; E: $A48F; PG: 'Yi Syllables'),
|
||||
(S: $A490; E: $A4CF; PG: 'Yi Radicals'),
|
||||
(S: $A700; E: $A71F; PG: 'Modifier Tone Letters'),
|
||||
(S: $A720; E: $A7FF; PG: 'Latin Extended-D'),
|
||||
(S: $A800; E: $A82F; PG: 'Syloti Nagri'),
|
||||
(S: $A840; E: $A87F; PG: 'Phags-pa'),
|
||||
(S: $AC00; E: $D7AF; PG: 'Hangul Syllables'),
|
||||
(S: $D800; E: $DB7F; PG: 'High Surrogates'),
|
||||
(S: $DB80; E: $DBFF; PG: 'High Private Use Surrogates'),
|
||||
(S: $DC00; E: $DFFF; PG: 'Low Surrogates'),
|
||||
(S: $E000; E: $F8FF; PG: 'Private Use Area'),
|
||||
(S: $F900; E: $FAFF; PG: 'CJK Compatibility Ideographs'),
|
||||
(S: $FB00; E: $FB4F; PG: 'Alphabetic Presentation Forms'),
|
||||
(S: $FB50; E: $FDFF; PG: 'Arabic Presentation Forms-A'),
|
||||
(S: $FE00; E: $FE0F; PG: 'Variation Selectors'),
|
||||
(S: $FE10; E: $FE1F; PG: 'Vertical Forms'),
|
||||
(S: $FE20; E: $FE2F; PG: 'Combining Half Marks'),
|
||||
(S: $FE30; E: $FE4F; PG: 'CJK Compatibility Forms'),
|
||||
(S: $FE50; E: $FE6F; PG: 'Small Form Variants'),
|
||||
(S: $FE70; E: $FEFF; PG: 'Arabic Presentation Forms-B'),
|
||||
(S: $FF00; E: $FFEF; PG: 'Halfwidth and Fullwidth Forms'),
|
||||
(S: $FFF0; E: $FFFF; PG: 'Specials'),
|
||||
(S: $10000; E: $1007F; PG: 'Linear B Syllabary'),
|
||||
(S: $10080; E: $100FF; PG: 'Linear B Ideograms'),
|
||||
(S: $10100; E: $1013F; PG: 'Aegean Numbers'),
|
||||
(S: $10140; E: $1018F; PG: 'Ancient Greek Numbers'),
|
||||
(S: $10300; E: $1032F; PG: 'Old Italic'),
|
||||
(S: $10330; E: $1034F; PG: 'Gothic'),
|
||||
(S: $10380; E: $1039F; PG: 'Ugaritic'),
|
||||
(S: $103A0; E: $103DF; PG: 'Old Persian'),
|
||||
(S: $10400; E: $1044F; PG: 'Deseret'),
|
||||
(S: $10450; E: $1047F; PG: 'Shavian'),
|
||||
(S: $10480; E: $104AF; PG: 'Osmanya'),
|
||||
(S: $10800; E: $1083F; PG: 'Cypriot Syllabary'),
|
||||
(S: $10900; E: $1091F; PG: 'Phoenician'),
|
||||
(S: $10A00; E: $10A5F; PG: 'Kharoshthi'),
|
||||
(S: $12000; E: $123FF; PG: 'Cuneiform'),
|
||||
(S: $12400; E: $1247F; PG: 'Cuneiform Numbers and Punctuation'),
|
||||
(S: $1D000; E: $1D0FF; PG: 'Byzantine Musical Symbols'),
|
||||
(S: $1D100; E: $1D1FF; PG: 'Musical Symbols'),
|
||||
(S: $1D200; E: $1D24F; PG: 'Ancient Greek Musical Notation'),
|
||||
(S: $1D300; E: $1D35F; PG: 'Tai Xuan Jing Symbols'),
|
||||
(S: $1D360; E: $1D37F; PG: 'Counting Rod Numerals'),
|
||||
(S: $1D400; E: $1D7FF; PG: 'Mathematical Alphanumeric Symbols'),
|
||||
(S: $20000; E: $2A6DF; PG: 'CJK Unified Ideographs Extension B'),
|
||||
(S: $2F800; E: $2FA1F; PG: 'CJK Compatibility Ideographs Supplement'),
|
||||
(S: $E0000; E: $E007F; PG: 'Tags'),
|
||||
(S: $E0100; E: $E01EF; PG: 'Variation Selectors Supplement')
|
||||
//(S: $F0000; E: $FFFFF; PG: 'Supplementary Private Use Area-A'),
|
||||
//(S: $100000; E: $10FFFF; PG: 'Supplementary Private Use Area-B')
|
||||
);
|
||||
|
||||
|
||||
procedure ShowCharacterMap(AOnInsertChar: TOnInsertCharacterEvent);
|
||||
begin
|
||||
if CharacterMapDialog = nil then
|
||||
@ -86,11 +263,11 @@ end;
|
||||
procedure TCharacterMapDialog.FormCreate(Sender: TObject);
|
||||
begin
|
||||
Caption := lisCharacterMap;
|
||||
CharactersGroupbox.Caption := lisCharacterMap;
|
||||
|
||||
ButtonPanel.HelpButton.OnClick := @HelpButtonClick;
|
||||
//EnvironmentOptions.IDEWindowLayoutList.Apply(Self, Name);
|
||||
CharInfoLabel.Caption := '-';
|
||||
UnicodeCharInfoLabel.Caption := '-';
|
||||
FillCharMap;
|
||||
end;
|
||||
|
||||
@ -99,12 +276,46 @@ begin
|
||||
ShowContextHelpForIDE(Self);
|
||||
end;
|
||||
|
||||
function RoundUp(Value, Divi:integer):integer;
|
||||
begin
|
||||
if Value mod Divi=0 then
|
||||
Result:=Value div Divi else
|
||||
Result:=(Value div Divi)+1;
|
||||
end;
|
||||
|
||||
procedure TCharacterMapDialog.cbUniRangeSelect(Sender: TObject);
|
||||
var cnt, x, y :integer;
|
||||
S,E:Integer;
|
||||
begin
|
||||
S:=UnicodeRanges[cbUniRange.ItemIndex].S;
|
||||
E:=UnicodeRanges[cbUniRange.ItemIndex].E;
|
||||
StringGrid2.Clear;
|
||||
StringGrid2.ColCount:=16;
|
||||
StringGrid2.RowCount:=RoundUp(E-S,16);
|
||||
cnt:=0;
|
||||
for y:=0 to StringGrid2.RowCount-1 do
|
||||
for x:=0 to StringGrid2.ColCount-1 do
|
||||
begin
|
||||
if S+Cnt<=E then
|
||||
StringGrid2.Cells[x,y]:=UnicodeToUTF8(S+Cnt);
|
||||
inc(cnt);
|
||||
end;
|
||||
StringGrid2.AutoSizeColumns;
|
||||
end;
|
||||
|
||||
procedure TCharacterMapDialog.FormShow(Sender: TObject);
|
||||
var i:integer;
|
||||
begin
|
||||
StringGrid1.Font.Name := EditorOpts.EditorFont;
|
||||
StringGrid2.Font.Name := EditorOpts.EditorFont;
|
||||
StringGrid1.Font.Size := 10;
|
||||
StringGrid2.Font.Size := 10;
|
||||
|
||||
StringGrid1.AutoSizeColumns;
|
||||
|
||||
for i:=0 to MaxUnicodeRanges do cbUniRange.Items.Add(UnicodeRanges[i].PG);
|
||||
cbUniRange.ItemIndex:=0;
|
||||
cbUniRangeSelect(nil);
|
||||
end;
|
||||
|
||||
procedure TCharacterMapDialog.StringGrid1MouseDown(Sender: TObject;
|
||||
@ -140,6 +351,40 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCharacterMapDialog.StringGrid2MouseDown(Sender: TObject;
|
||||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
var
|
||||
Row, Col: Integer;
|
||||
begin
|
||||
if (Button = mbLeft) and (StringGrid2.MouseToGridZone(X, Y) = gzNormal) then
|
||||
begin
|
||||
StringGrid2.MouseToCell(X, Y, Col, Row);
|
||||
if Assigned(OnInsertCharacter) then
|
||||
OnInsertCharacter(StringGrid2.Cells[Col, Row]);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCharacterMapDialog.StringGrid2MouseMove(Sender: TObject;
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
var Row, Col, i: Integer;
|
||||
S:Cardinal;
|
||||
tmp,tmp2:String;
|
||||
begin
|
||||
if StringGrid2.MouseToGridZone(X, Y) = gzNormal then
|
||||
begin
|
||||
StringGrid2.MouseToCell(X, Y, Col, Row);
|
||||
S:=UnicodeRanges[cbUniRange.ItemIndex].S+(Col)+(Row*16);
|
||||
tmp:=UnicodeToUTF8(S);
|
||||
tmp2:='';
|
||||
for i:=1 to Length(tmp) do tmp2:=tmp2+'$'+IntToHex(Ord(tmp[i]),2);
|
||||
UnicodeCharInfoLabel.Caption:='U+'+inttohex(S,4)+', UTF-8 = '+tmp2;
|
||||
end
|
||||
else
|
||||
begin
|
||||
CharInfoLabel.Caption := '-';
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCharacterMapDialog.FillCharMap;
|
||||
var
|
||||
R, C: Integer;
|
||||
|
Loading…
Reference in New Issue
Block a user