jvcllaz: Fix JvMM demos for Linux. Less hints and warnings.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6881 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2019-04-28 20:08:30 +00:00
parent d295accb2e
commit c04df98dba
29 changed files with 477 additions and 391 deletions

View File

@ -32,7 +32,7 @@ interface
uses uses
SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,
//DesignEditors, DesignIntf, DesignMenus, DesignWindows, //DesignEditors, DesignIntf, DesignMenus, DesignWindows,
JvId3v2Base, JvId3v2Types, JvComponent; JvId3v2Base, JvId3v2Types;
type type

View File

@ -373,7 +373,7 @@ end;
procedure TJvID3FramesEditor.NewFrameClick(Sender: TObject); procedure TJvID3FramesEditor.NewFrameClick(Sender: TObject);
var var
Selection: TStringList; //Selection: TStringList;
Frame: TJvID3Frame; Frame: TJvID3Frame;
begin begin
Frame := DoNewFrame; Frame := DoNewFrame;
@ -478,8 +478,8 @@ end;
procedure TJvID3FramesEditor.UpdateFrameList; procedure TJvID3FramesEditor.UpdateFrameList;
var var
ItemIndex, TopIndex: Integer; //ItemIndex, TopIndex: Integer;
Selection: TStringList; //Selection: TStringList;
EnableList: Boolean; EnableList: Boolean;
I: Integer; I: Integer;
Frame: TJvID3Frame; Frame: TJvID3Frame;

View File

@ -5,7 +5,7 @@ uses
Forms, Forms,
BmpAnimMainFormU in 'BmpAnimMainFormU.pas' {BmpAnimMainForm}; BmpAnimMainFormU in 'BmpAnimMainFormU.pas' {BmpAnimMainForm};
{$R *.RES} {$R *.res}
begin begin
Application.Initialize; Application.Initialize;

View File

@ -1,7 +1,7 @@
object JvFullColorCircleDlgMainFrm: TJvFullColorCircleDlgMainFrm object JvFullColorCircleDlgMainFrm: TJvFullColorCircleDlgMainFrm
Left = 498 Left = 836
Height = 394 Height = 394
Top = 236 Top = 214
Width = 343 Width = 343
BorderStyle = bsDialog BorderStyle = bsDialog
Caption = 'JvFullColorCircleDlgMainFrm' Caption = 'JvFullColorCircleDlgMainFrm'
@ -14,34 +14,55 @@ object JvFullColorCircleDlgMainFrm: TJvFullColorCircleDlgMainFrm
Position = poScreenCenter Position = poScreenCenter
LCLVersion = '2.1.0.0' LCLVersion = '2.1.0.0'
object Bevel: TBevel object Bevel: TBevel
Left = 16 AnchorSideLeft.Control = Memo
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = ComboBoxFileName
AnchorSideTop.Side = asrBottom
Left = 30
Height = 108 Height = 108
Top = 48 Top = 39
Width = 108 Width = 108
BorderSpacing.Left = 8
BorderSpacing.Top = 8
Style = bsRaised Style = bsRaised
end end
object Image: TImage object Image: TImage
Left = 20 AnchorSideLeft.Control = Bevel
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = Bevel
AnchorSideTop.Side = asrCenter
Left = 34
Height = 100 Height = 100
Top = 52 Top = 43
Width = 100 Width = 100
Center = True Center = True
end end
object LabelImage: TLabel object LabelImage: TLabel
Left = 24 AnchorSideLeft.Control = Owner
AnchorSideTop.Control = ComboBoxFileName
AnchorSideTop.Side = asrCenter
Left = 8
Height = 15 Height = 15
Top = 16 Top = 12
Width = 39 Width = 39
BorderSpacing.Left = 8
Caption = 'Image :' Caption = 'Image :'
Layout = tlCenter Layout = tlCenter
ParentColor = False ParentColor = False
end end
object Memo: TMemo object Memo: TMemo
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Bevel
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Bevel
AnchorSideRight.Side = asrBottom
Left = 8 Left = 8
Height = 65 Height = 72
Top = 160 Top = 155
Width = 129 Width = 152
Alignment = taCenter Alignment = taCenter
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderStyle = bsNone BorderStyle = bsNone
Lines.Strings = ( Lines.Strings = (
'Original image' 'Original image'
@ -52,10 +73,17 @@ object JvFullColorCircleDlgMainFrm: TJvFullColorCircleDlgMainFrm
TabOrder = 0 TabOrder = 0
end end
object ComboBoxFileName: TComboBox object ComboBoxFileName: TComboBox
Left = 72 AnchorSideLeft.Control = LabelImage
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 55
Height = 23 Height = 23
Top = 16 Top = 8
Width = 257 Width = 225
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
DropDownCount = 24 DropDownCount = 24
ItemHeight = 15 ItemHeight = 15
OnClick = ComboBoxFileNameSelect OnClick = ComboBoxFileNameSelect

View File

@ -97,7 +97,7 @@ var
Index: Integer; Index: Integer;
LSearchRec: TSearchRec; LSearchRec: TSearchRec;
begin begin
ImgDir := IncludeTrailingPathDelimiter(GetCurrentDir) + '..\..\design\JvCtrls\images\'; ImgDir := IncludeTrailingPathDelimiter(GetCurrentDir) + '../../design/JvCtrls/images/';
if FindFirst(ImgDir + '*.png', faAnyFile, LSearchRec) = 0 then if FindFirst(ImgDir + '*.png', faAnyFile, LSearchRec) = 0 then
repeat repeat
ComboBoxFileName.Items.Add(LSearchRec.Name); ComboBoxFileName.Items.Add(LSearchRec.Name);

View File

@ -1,14 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="11"/> <Version Value="12"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<General> <General>
<Flags> <Flags>
<UseDefaultCompilerOptions Value="True"/> <CompatibilityMode Value="True"/>
</Flags> </Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="JvFullColorCircleDialogPrj"/> <Title Value="JvFullColorCircleDialogPrj"/>
<Scaled Value="True"/> <Scaled Value="True"/>
<ResourceType Value="res"/> <ResourceType Value="res"/>

View File

@ -1,14 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="11"/> <Version Value="12"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<General> <General>
<Flags> <Flags>
<UseDefaultCompilerOptions Value="True"/> <CompatibilityMode Value="True"/>
</Flags> </Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="JvFullColorDialogPrj"/> <Title Value="JvFullColorDialogPrj"/>
<Scaled Value="True"/> <Scaled Value="True"/>
<ResourceType Value="res"/> <ResourceType Value="res"/>
@ -16,7 +15,6 @@
<XPManifest> <XPManifest>
<DpiAware Value="True"/> <DpiAware Value="True"/>
</XPManifest> </XPManifest>
<Icon Value="0"/>
</General> </General>
<BuildModes Count="1"> <BuildModes Count="1">
<Item1 Name="Default" Default="True"/> <Item1 Name="Default" Default="True"/>

View File

@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="11"/> <Version Value="12"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<General> <General>
<Flags>
<CompatibilityMode Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="JvID3v1Demo"/> <Title Value="JvID3v1Demo"/>
<ResourceType Value="res"/> <ResourceType Value="res"/>
<UseXPManifest Value="True"/> <UseXPManifest Value="True"/>

View File

@ -18,7 +18,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
OnDropFiles = FormDropFiles OnDropFiles = FormDropFiles
Position = poScreenCenter Position = poScreenCenter
ShowHint = True ShowHint = True
LCLVersion = '1.6.4.0' LCLVersion = '2.1.0.0'
object lblArtist: TLabel object lblArtist: TLabel
AnchorSideTop.Control = edtArtist AnchorSideTop.Control = edtArtist
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
@ -26,7 +26,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 30 Left = 30
Height = 15 Height = 15
Top = 131 Top = 141
Width = 28 Width = 28
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
Caption = '&Artist' Caption = '&Artist'
@ -40,7 +40,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 22 Left = 22
Height = 15 Height = 15
Top = 158 Top = 168
Width = 36 Width = 36
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
Caption = 'Al&bum' Caption = 'Al&bum'
@ -55,7 +55,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 36 Left = 36
Height = 15 Height = 15
Top = 185 Top = 195
Width = 22 Width = 22
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
Caption = '&Year' Caption = '&Year'
@ -68,7 +68,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 4 Left = 4
Height = 15 Height = 15
Top = 212 Top = 222
Width = 54 Width = 54
BorderSpacing.Left = 4 BorderSpacing.Left = 4
Caption = '&Comment' Caption = '&Comment'
@ -82,7 +82,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Control = cmbGenre AnchorSideRight.Control = cmbGenre
Left = 132 Left = 132
Height = 15 Height = 15
Top = 185 Top = 195
Width = 51 Width = 51
Alignment = taRightJustify Alignment = taRightJustify
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
@ -99,7 +99,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 15 Height = 15
Top = 77 Top = 87
Width = 52 Width = 52
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
Caption = 'lblHasTag' Caption = 'lblHasTag'
@ -112,7 +112,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 35 Left = 35
Height = 15 Height = 15
Top = 104 Top = 114
Width = 23 Width = 23
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
Caption = '&Title' Caption = '&Title'
@ -125,7 +125,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Control = sedTrack AnchorSideRight.Control = sedTrack
Left = 221 Left = 221
Height = 15 Height = 15
Top = 77 Top = 87
Width = 38 Width = 38
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
BorderSpacing.Right = 4 BorderSpacing.Right = 4
@ -141,7 +141,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 4 Left = 4
Height = 23 Height = 23
Top = 46 Top = 56
Width = 308 Width = 308
OnAcceptFileName = JvFilenameEdit1AcceptFileName OnAcceptFileName = JvFilenameEdit1AcceptFileName
FilterIndex = 0 FilterIndex = 0
@ -167,7 +167,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 62 Left = 62
Height = 23 Height = 23
Top = 100 Top = 110
Width = 250 Width = 250
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 4 BorderSpacing.Left = 4
@ -184,7 +184,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 62 Left = 62
Height = 23 Height = 23
Top = 154 Top = 164
Width = 250 Width = 250
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 4 BorderSpacing.Left = 4
@ -201,7 +201,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 62 Left = 62
Height = 23 Height = 23
Top = 127 Top = 137
Width = 250 Width = 250
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 4 BorderSpacing.Left = 4
@ -216,7 +216,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 62 Left = 62
Height = 23 Height = 23
Top = 181 Top = 191
Width = 58 Width = 58
BorderSpacing.Left = 4 BorderSpacing.Left = 4
BorderSpacing.Top = 4 BorderSpacing.Top = 4
@ -232,7 +232,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 62 Left = 62
Height = 23 Height = 23
Top = 208 Top = 218
Width = 250 Width = 250
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 4 BorderSpacing.Left = 4
@ -248,7 +248,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 187 Left = 187
Height = 23 Height = 23
Top = 181 Top = 191
Width = 125 Width = 125
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
BorderSpacing.Top = 4 BorderSpacing.Top = 4
@ -259,12 +259,12 @@ object JvID3v1MainForm: TJvID3v1MainForm
end end
object ToolBar1: TToolBar object ToolBar1: TToolBar
Left = 0 Left = 0
Height = 42 Height = 52
Top = 0 Top = 0
Width = 316 Width = 316
AutoSize = True AutoSize = True
ButtonHeight = 40 ButtonHeight = 50
ButtonWidth = 44 ButtonWidth = 50
Caption = 'ToolBar1' Caption = 'ToolBar1'
EdgeBorders = [ebBottom] EdgeBorders = [ebBottom]
Images = ImageList1 Images = ImageList1
@ -282,7 +282,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
ShowHint = True ShowHint = True
end end
object ToolButton2: TToolButton object ToolButton2: TToolButton
Left = 48 Left = 51
Hint = 'Save changes of the tag to the file' Hint = 'Save changes of the tag to the file'
Top = 0 Top = 0
Action = actSave Action = actSave
@ -290,7 +290,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
ShowHint = True ShowHint = True
end end
object ToolButton3: TToolButton object ToolButton3: TToolButton
Left = 92 Left = 101
Hint = 'Erase the tag of the file' Hint = 'Erase the tag of the file'
Top = 0 Top = 0
Action = actErase Action = actErase
@ -298,7 +298,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
ShowHint = True ShowHint = True
end end
object ToolButton4: TToolButton object ToolButton4: TToolButton
Left = 136 Left = 151
Hint = 'Toggle ''Always on Top''' Hint = 'Toggle ''Always on Top'''
Top = 0 Top = 0
Action = actOnTop Action = actOnTop
@ -306,7 +306,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
ShowHint = True ShowHint = True
end end
object ToolButton5: TToolButton object ToolButton5: TToolButton
Left = 184 Left = 201
Hint = 'Show ''About'' dialog' Hint = 'Show ''About'' dialog'
Top = 0 Top = 0
Action = actAbout Action = actAbout
@ -314,7 +314,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
ShowHint = True ShowHint = True
end end
object ToolButton6: TToolButton object ToolButton6: TToolButton
Left = 228 Left = 251
Hint = 'Close program' Hint = 'Close program'
Top = 0 Top = 0
Action = actExit Action = actExit
@ -329,7 +329,7 @@ object JvID3v1MainForm: TJvID3v1MainForm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 263 Left = 263
Height = 23 Height = 23
Top = 73 Top = 83
Width = 49 Width = 49
Alignment = taRightJustify Alignment = taRightJustify
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@ -381,8 +381,8 @@ object JvID3v1MainForm: TJvID3v1MainForm
object ImageList1: TImageList object ImageList1: TImageList
Height = 20 Height = 20
Width = 20 Width = 20
left = 72 left = 80
top = 32 top = 48
Bitmap = { Bitmap = {
4C69060000001400000014000000000000000000000000000000000000000000 4C69060000001400000014000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000

View File

@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="11"/> <Version Value="12"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<General> <General>
<Flags>
<CompatibilityMode Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="JvId3v2Demo"/> <Title Value="JvId3v2Demo"/>
<ResourceType Value="res"/> <ResourceType Value="res"/>
<UseXPManifest Value="True"/> <UseXPManifest Value="True"/>

View File

@ -12,11 +12,11 @@ object JvID3v2EditForm: TJvID3v2EditForm
OnCreate = FormCreate OnCreate = FormCreate
OnShow = FormShow OnShow = FormShow
Position = poMainFormCenter Position = poMainFormCenter
LCLVersion = '1.6.4.0' LCLVersion = '2.1.0.0'
object lsbNavigator: TListBox object lsbNavigator: TListBox
Left = 4 Left = 4
Height = 483 Height = 479
Top = 40 Top = 44
Width = 121 Width = 121
Align = alLeft Align = alLeft
BorderSpacing.Left = 4 BorderSpacing.Left = 4
@ -33,10 +33,11 @@ object JvID3v2EditForm: TJvID3v2EditForm
end end
object ToolBar1: TToolBar object ToolBar1: TToolBar
Left = 0 Left = 0
Height = 40 Height = 44
Top = 0 Top = 0
Width = 599 Width = 599
ButtonHeight = 36 AutoSize = True
ButtonHeight = 42
ButtonWidth = 72 ButtonWidth = 72
Caption = 'ToolBar1' Caption = 'ToolBar1'
Images = iml16 Images = iml16
@ -70,10 +71,10 @@ object JvID3v2EditForm: TJvID3v2EditForm
end end
object Notebook1: TNotebook object Notebook1: TNotebook
Left = 125 Left = 125
Height = 487 Height = 483
Top = 40 Top = 44
Width = 474 Width = 474
PageIndex = 1 PageIndex = 0
Align = alClient Align = alClient
TabOrder = 2 TabOrder = 2
object PgWinAmpTags: TPage object PgWinAmpTags: TPage

View File

@ -4,6 +4,9 @@
<Version Value="12"/> <Version Value="12"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<General> <General>
<Flags>
<CompatibilityMode Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<Title Value="JvPicClipDemo"/> <Title Value="JvPicClipDemo"/>
<Scaled Value="True"/> <Scaled Value="True"/>
@ -14,8 +17,8 @@
</XPManifest> </XPManifest>
<Icon Value="0"/> <Icon Value="0"/>
</General> </General>
<BuildModes> <BuildModes Count="1">
<Item Name="Default" Default="True"/> <Item1 Name="Default" Default="True"/>
</BuildModes> </BuildModes>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
@ -33,18 +36,18 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item2> </Item2>
</RequiredPackages> </RequiredPackages>
<Units> <Units Count="2">
<Unit> <Unit0>
<Filename Value="JvPicClipDemo.lpr"/> <Filename Value="JvPicClipDemo.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
</Unit> </Unit0>
<Unit> <Unit1>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="Form1"/> <ComponentName Value="Form1"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
</Unit> </Unit1>
</Units> </Units>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -87,13 +87,11 @@ end;
procedure TForm1.CreateCombinedImage(ABitmap: TBitmap; procedure TForm1.CreateCombinedImage(ABitmap: TBitmap;
out ANumCols, ANumRows: Integer); out ANumCols, ANumRows: Integer);
const
W = 24;
H = 24;
var var
pic: TPicture; pic: TPicture;
c, r, i: Integer; c, r, i: Integer;
L: TStrings; L: TStrings;
W, H: Integer;
begin begin
L := TStringList.Create; L := TStringList.Create;
try try
@ -132,6 +130,16 @@ begin
L.Add('../design/JvCustomControls/images/tjvvalidateedit.png'); // 32 L.Add('../design/JvCustomControls/images/tjvvalidateedit.png'); // 32
ANumCols := 8; ANumCols := 8;
ANumRows := 4; ANumRows := 4;
pic := TPicture.Create;
try
pic.LoadFromFile(L[0]);
W := pic.Width;
H := pic.Height;
finally
pic.Free;
end;
ABitmap.SetSize(ANumCols * W, ANumRows * H); ABitmap.SetSize(ANumCols * W, ANumRows * H);
ABitmap.Canvas.Brush.Color := clWhite; ABitmap.Canvas.Brush.Color := clWhite;
Abitmap.Canvas.FillRect(0, 0, ABitmap.Width, ABitmap.Height); Abitmap.Canvas.FillRect(0, 0, ABitmap.Width, ABitmap.Height);

View File

@ -7,7 +7,7 @@ object MainForm: TMainForm
ClientHeight = 358 ClientHeight = 358
ClientWidth = 459 ClientWidth = 459
OnCreate = FormCreate OnCreate = FormCreate
LCLVersion = '1.9.0.0' LCLVersion = '2.1.0.0'
object Bevel1: TBevel object Bevel1: TBevel
Left = 20 Left = 20
Height = 44 Height = 44
@ -15,9 +15,11 @@ object MainForm: TMainForm
Width = 176 Width = 176
end end
object JvSpecialProgress1: TJvSpecialProgress object JvSpecialProgress1: TJvSpecialProgress
AnchorSideTop.Control = Bevel1
AnchorSideTop.Side = asrCenter
Left = 32 Left = 32
Height = 15 Height = 15
Top = 24 Top = 27
Width = 150 Width = 150
Caption = 'JvSpecialProgress1' Caption = 'JvSpecialProgress1'
Position = 50 Position = 50

View File

@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="11"/> <Version Value="12"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<General> <General>
<Flags>
<CompatibilityMode Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="specialprogress_demo"/> <Title Value="specialprogress_demo"/>
<Scaled Value="True"/> <Scaled Value="True"/>
<ResourceType Value="res"/> <ResourceType Value="res"/>
@ -13,7 +15,6 @@
<XPManifest> <XPManifest>
<DpiAware Value="True"/> <DpiAware Value="True"/>
</XPManifest> </XPManifest>
<Icon Value="0"/>
</General> </General>
<BuildModes Count="1"> <BuildModes Count="1">
<Item1 Name="Default" Default="True"/> <Item1 Name="Default" Default="True"/>

View File

@ -110,7 +110,6 @@ type
protected protected
function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean; override; function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean; override;
function GetPalette: HPALETTE; override; function GetPalette: HPALETTE; override;
procedure AdjustSize; override;
procedure BufferedPaint; override; procedure BufferedPaint; override;
procedure DefineProperties(Filer: TFiler); override; procedure DefineProperties(Filer: TFiler); override;
procedure DoPaintImage; override; procedure DoPaintImage; override;
@ -121,6 +120,7 @@ type
public public
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
destructor Destroy; override; destructor Destroy; override;
procedure AdjustSize; override;
published published
property Align; property Align;
property Anchors; property Anchors;
@ -306,9 +306,11 @@ begin
end; end;
function TJvImageControl.DoPaletteChange: Boolean; function TJvImageControl.DoPaletteChange: Boolean;
{
var var
ParentForm: TCustomForm; ParentForm: TCustomForm;
Tmp: TGraphic; Tmp: TGraphic;
}
begin begin
Result := False; Result := False;
(*************** NOT CONVERTED *** (*************** NOT CONVERTED ***

View File

@ -192,8 +192,7 @@ implementation
uses uses
TypInfo, TypInfo,
Math, // JclMath, // for EnsureRange Math, // JclMath, // for EnsureRange
JvResources, JvResources;
JvJCLUtils; // for TryStrToInt
{$R *.lfm} {$R *.lfm}

View File

@ -79,7 +79,7 @@ type
procedure SetWantDrawBuffer(Value: Boolean); procedure SetWantDrawBuffer(Value: Boolean);
protected protected
procedure Paint; override; procedure Paint; override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override; procedure KeyDown(var Key: Word; {%H-}Shift: TShiftState); override;
procedure DoEnter; override; procedure DoEnter; override;
procedure DoExit; override; procedure DoExit; override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
@ -88,12 +88,12 @@ type
procedure DrawFocus; procedure DrawFocus;
procedure DrawFrame(X, Y: Integer); procedure DrawFrame(X, Y: Integer);
procedure SetFullColor(const Value: TJvFullColor); virtual; procedure SetFullColor(const Value: TJvFullColor); virtual;
procedure MouseColor(Shift: TShiftState; X, Y: Integer); virtual; procedure MouseColor({%H-}Shift: TShiftState; X, Y: Integer); virtual;
procedure AxisConfigChange; virtual; procedure AxisConfigChange; virtual;
procedure DrawBuffer; virtual; procedure DrawBuffer; virtual;
procedure ColorSpaceChange; virtual; procedure ColorSpaceChange; virtual;
procedure CalcSize; virtual; procedure CalcSize; virtual;
procedure KeyMove(KeyCode: TJvKeyCode; MoveCount: Integer); virtual; procedure KeyMove({%H-}KeyCode: TJvKeyCode; {%H-}MoveCount: Integer); virtual;
procedure InvalidateCursor; virtual; abstract; procedure InvalidateCursor; virtual; abstract;
property WantDrawBuffer: Boolean read FWantDrawBuffer write SetWantDrawBuffer; property WantDrawBuffer: Boolean read FWantDrawBuffer write SetWantDrawBuffer;
property MouseDragging: Boolean read FMouseDragging; property MouseDragging: Boolean read FMouseDragging;
@ -241,7 +241,7 @@ type
X, Y: Integer); override; X, Y: Integer); override;
procedure MouseColor(Shift: TShiftState; procedure MouseColor(Shift: TShiftState;
X, Y: Integer); override; X, Y: Integer); override;
procedure KeyMove(KeyCode: TJvKeyCode; MoveCount: Integer); override; procedure KeyMove({%H-}KeyCode: TJvKeyCode; {%H-}MoveCount: Integer); override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override; procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure TrackBarColorChange(Sender: TObject); override; procedure TrackBarColorChange(Sender: TObject); override;
public public
@ -669,7 +669,7 @@ type
procedure SetSelected(const Value: TJvFullColor); procedure SetSelected(const Value: TJvFullColor);
procedure SetSelectedIndex(const Value: Integer); procedure SetSelectedIndex(const Value: Integer);
procedure SetBrush(const Value: TBrush); procedure SetBrush(const Value: TBrush);
procedure MouseLeave(var Msg: TLMMouse); message LM_MOUSELEAVE; // procedure MouseLeave(var Msg: TLMMouse); message LM_MOUSELEAVE;
procedure CMHintShow(var Msg: TLMessage); message CM_HINTSHOW; procedure CMHintShow(var Msg: TLMessage); message CM_HINTSHOW;
protected protected
procedure Paint; override; procedure Paint; override;
@ -765,7 +765,7 @@ function AxisConfigToString(AxisConfig: TJvFullColorAxisConfig;
ItemFormat: TJvFullColorAxisConfigFormat; AColorSpace: TJvColorSpace): string; ItemFormat: TJvFullColorAxisConfigFormat; AColorSpace: TJvColorSpace): string;
var var
Str: string; Str: string;
AxisConfigs: TJvFullColorAxisConfigs; //AxisConfigs: TJvFullColorAxisConfigs;
begin begin
Str := GetEnumName(TypeInfo(TJvFullColorAxisConfig), Ord(AxisConfig)); Str := GetEnumName(TypeInfo(TJvFullColorAxisConfig), Ord(AxisConfig));
case ItemFormat of case ItemFormat of
@ -774,7 +774,7 @@ begin
afIndent: afIndent:
Result := Str; Result := Str;
else else
AxisConfigs := TabAxisConfigs[AxisConfig]; //AxisConfigs := TabAxisConfigs[AxisConfig];
Result := Format('[%s] = %s ; [%s] = %s ; [%s] = %s', Result := Format('[%s] = %s ; [%s] = %s ; [%s] = %s',
[Str[3], AColorSpace.AxisName[axIndex0], Str[4], [Str[3], AColorSpace.AxisName[axIndex0], Str[4],
AColorSpace.AxisName[axIndex1], Str[5], AColorSpace.AxisName[axIndex2]]); AColorSpace.AxisName[axIndex1], Str[5], AColorSpace.AxisName[axIndex2]]);
@ -1175,6 +1175,7 @@ begin
// Delphi TColor is (MSB) 00BBGGRR (LSB) // Delphi TColor is (MSB) 00BBGGRR (LSB)
// Line^[IndexX] := RGBToBGR(ConvertToColor(TempColor)); // Line^[IndexX] := RGBToBGR(ConvertToColor(TempColor));
P^ := RGBToBGR(ConvertToColor(TempColor)); P^ := RGBToBGR(ConvertToColor(TempColor));
PColorRGBA(P)^.a := 255;
inc(P); inc(P);
end; end;
end; end;
@ -1592,7 +1593,7 @@ begin
end; end;
// (outchy) don't remove, Bitmap colors are stocked as (MSB) 00RRGGBB (LSB) // (outchy) don't remove, Bitmap colors are stocked as (MSB) 00RRGGBB (LSB)
// Delphi TColor is (MSB) 00BBGGRR (LSB) // Delphi TColor is (MSB) 00BBGGRR (LSB)
Line^[X] := RGBToBGR(ConvertToColor(Magic1 or (Magic2 shl 8) or (Magic3 shl 16))); Line^[X] := RGBToBGR(ConvertToColor(Magic1 or (Magic2 shl 8) or (Magic3 shl 16))) + $FF000000;
// P^ := RGBToBGR(ConvertToColor(Magic1 or (Magic2 shl 8) or (Magic3 shl 16))); // P^ := RGBToBGR(ConvertToColor(Magic1 or (Magic2 shl 8) or (Magic3 shl 16)));
// inc(P); // inc(P);
end end
@ -2843,6 +2844,7 @@ begin
spLeft: spLeft:
begin begin
ShapeTop := (h - FShapeHeight) div 2; ShapeTop := (h - FShapeHeight) div 2;
ShapeLeft := 0;
TextLeft := FShapeWidth + FSpacing; TextLeft := FShapeWidth + FSpacing;
TextTop := (h - TextHeight(FCaption)) div 2; TextTop := (h - TextHeight(FCaption)) div 2;
end; end;
@ -3495,13 +3497,14 @@ begin
end; end;
end; end;
{
procedure TJvFullColorGroup.MouseLeave(var Msg: TLMMouse); procedure TJvFullColorGroup.MouseLeave(var Msg: TLMMouse);
begin begin
FMouseIndex := -1; FMouseIndex := -1;
Msg.Result := 1; Msg.Result := 1;
Refresh; Refresh;
end; end;
}
{$IFDEF RTL200_UP} {$IFDEF RTL200_UP}
// for D2009 "Use Controls.PHintInfo" warning // for D2009 "Use Controls.PHintInfo" warning
type type
@ -3518,7 +3521,7 @@ var
AColorID: TJvFullColorSpaceID; AColorID: TJvFullColorSpaceID;
AColorSpace: TJvColorSpace; AColorSpace: TJvColorSpace;
begin begin
AHintInfo := PHintInfo(Msg.LParam); AHintInfo := {%H-}PHintInfo(PtrInt(Msg.LParam));
ColorIndex := -1; ColorIndex := -1;
CalcRects(XPos, YPos, XInc, YInc); CalcRects(XPos, YPos, XInc, YInc);
@ -3691,7 +3694,7 @@ var
XOffset, YOffset, XInc, YInc: Integer; XOffset, YOffset, XInc, YInc: Integer;
X, Y: Integer; X, Y: Integer;
lEdge: TJvFullColorEdge; lEdge: TJvFullColorEdge;
ClipRect: TRect; lClipRect: TRect;
procedure BevelRect(const R: TRect; Style: TJvFullColorEdge; procedure BevelRect(const R: TRect; Style: TJvFullColorEdge;
FillStyle: TBrushStyle; FillColor: TColor); FillStyle: TBrushStyle; FillColor: TColor);
@ -3738,7 +3741,7 @@ begin
Y := YOffset; Y := YOffset;
X := XOffset; X := XOffset;
ClipRect := Canvas.ClipRect; lClipRect := Canvas.ClipRect;
Index := 0; Index := 0;
while Index < Items.Count do while Index < Items.Count do
@ -3772,9 +3775,9 @@ begin
for IndexY := 0 to RowCount do for IndexY := 0 to RowCount do
begin begin
Rectangle( Rectangle(
Max(ClipRect.Left, 1), Max(lClipRect.Left, 1),
Max(Y - YInc + 1, 1), Max(Y - YInc + 1, 1),
Min(ClipRect.Right, Self.Width - 2), Min(lClipRect.Right, Self.Width - 2),
Min(Y, Self.Height - 2) Min(Y, Self.Height - 2)
); );
X := XOffset; X := XOffset;

View File

@ -164,7 +164,6 @@ type
implementation implementation
uses uses
JvResources,
Controls, SysUtils, JvFullColorForm, JvFullColorCircleForm; Controls, SysUtils, JvFullColorForm, JvFullColorCircleForm;
//=== { TJvFullColorDialog } ================================================= //=== { TJvFullColorDialog } =================================================

View File

@ -1,31 +1,32 @@
object JvFullColorFrm: TJvFullColorFrm object JvFullColorFrm: TJvFullColorFrm
Left = 373 Left = 373
Height = 388 Height = 454
Top = 274 Top = 274
Width = 712 Width = 922
ActiveControl = ColorBox ActiveControl = ColorBox
AutoSize = True
BorderIcons = [biSystemMenu] BorderIcons = [biSystemMenu]
BorderStyle = bsDialog BorderStyle = bsDialog
Caption = 'Color Spaces Editor, Choose your color' Caption = 'Color Spaces Editor, Choose your color'
ClientHeight = 388 ClientHeight = 454
ClientWidth = 712 ClientWidth = 922
Color = clBtnFace Color = clBtnFace
DesignTimePPI = 120
Font.Color = clWindowText Font.Color = clWindowText
KeyPreview = True KeyPreview = True
OnCreate = FormCreate OnCreate = FormCreate
OnShow = FormShow OnShow = FormShow
LCLVersion = '2.1.0.0'
object LabelColorSpace: TLabel object LabelColorSpace: TLabel
AnchorSideLeft.Control = JvColorSpaceCombo AnchorSideLeft.Control = JvColorSpaceCombo
AnchorSideTop.Control = Owner AnchorSideTop.Control = Owner
Left = 12 Left = 15
Height = 15 Height = 20
Top = 8 Top = 10
Width = 112 Width = 150
BorderSpacing.Top = 8 BorderSpacing.Top = 10
Caption = '&Current Color Space :' Caption = '&Current Color Space :'
Font.Color = clWindowText
ParentColor = False ParentColor = False
ParentFont = False
end end
object LabelDrawOld: TLabel object LabelDrawOld: TLabel
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
@ -33,15 +34,17 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideRight.Control = LabelDrawNew AnchorSideRight.Control = LabelDrawNew
AnchorSideBottom.Control = JvColorSpaceCombo AnchorSideBottom.Control = JvColorSpaceCombo
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 270 Left = 338
Height = 23 Height = 36
Top = 27 Top = 35
Width = 61 Width = 76
Anchors = [akTop, akRight, akBottom] Anchors = [akTop, akRight, akBottom]
AutoSize = False AutoSize = False
BorderSpacing.Left = 16 BorderSpacing.Left = 20
Color = clBlack Color = clBlack
Font.Color = clWindowText
ParentColor = False ParentColor = False
ParentFont = False
Transparent = False Transparent = False
OnClick = LabelDrawOldClick OnClick = LabelDrawOldClick
end end
@ -53,115 +56,131 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = JvColorSpaceCombo AnchorSideBottom.Control = JvColorSpaceCombo
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 331 Left = 414
Height = 23 Height = 36
Top = 27 Top = 35
Width = 61 Width = 76
Anchors = [akTop, akRight, akBottom] Anchors = [akTop, akRight, akBottom]
AutoSize = False AutoSize = False
Color = clWhite Color = clWhite
Font.Color = clWindowText
ParentColor = False ParentColor = False
ParentFont = False
Transparent = False Transparent = False
end end
object LabelOld: TLabel object LabelOld: TLabel
AnchorSideLeft.Control = LabelDrawOld AnchorSideLeft.Control = LabelDrawOld
AnchorSideTop.Control = LabelColorSpace AnchorSideTop.Control = LabelColorSpace
Left = 270 Left = 338
Height = 15 Height = 20
Top = 8 Top = 10
Width = 22 Width = 29
Caption = 'Old:' Caption = 'Old:'
Font.Color = clWindowText
ParentColor = False ParentColor = False
ParentFont = False
end end
object LabelNew: TLabel object LabelNew: TLabel
AnchorSideLeft.Control = LabelDrawNew AnchorSideLeft.Control = LabelDrawNew
AnchorSideTop.Control = LabelColorSpace AnchorSideTop.Control = LabelColorSpace
Left = 331 Left = 414
Height = 15 Height = 20
Top = 8 Top = 10
Width = 27 Width = 36
Caption = 'New:' Caption = 'New:'
Font.Color = clWindowText
ParentColor = False ParentColor = False
ParentFont = False
end end
object GroupBoxSettings: TGroupBox object GroupBoxSettings: TGroupBox
AnchorSideLeft.Control = JvColorSpaceCombo AnchorSideLeft.Control = JvColorSpaceCombo
AnchorSideTop.Control = JvColorSpaceCombo AnchorSideTop.Control = JvColorSpaceCombo
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 12 Left = 15
Height = 246 Height = 308
Top = 62 Top = 86
Width = 380 Width = 475
BorderSpacing.Top = 12 BorderSpacing.Top = 15
BorderSpacing.Right = 16 BorderSpacing.Right = 20
Caption = ' Settings ... ' Caption = ' Settings ... '
ClientHeight = 226 ClientHeight = 290
ClientWidth = 376 ClientWidth = 467
Font.Color = clWindowText
ParentFont = False
TabOrder = 1 TabOrder = 1
object LabelAxis0: TLabel object LabelAxis0: TLabel
AnchorSideLeft.Control = GroupBoxSettings AnchorSideLeft.Control = GroupBoxSettings
AnchorSideTop.Control = GroupBoxSettings AnchorSideTop.Control = GroupBoxSettings
Left = 16 Left = 20
Height = 15 Height = 20
Top = 4 Top = 5
Width = 55 Width = 75
Alignment = taRightJustify Alignment = taRightJustify
BorderSpacing.Left = 16 BorderSpacing.Left = 20
BorderSpacing.Top = 4 BorderSpacing.Top = 5
Caption = 'LabelAxis0' Caption = 'LabelAxis0'
Font.Color = clWindowText
ParentColor = False ParentColor = False
ParentFont = False
end end
object LabelAxis1: TLabel object LabelAxis1: TLabel
AnchorSideLeft.Control = LabelAxis0 AnchorSideLeft.Control = LabelAxis0
AnchorSideTop.Control = ScrollBarAxis0 AnchorSideTop.Control = ScrollBarAxis0
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 16 Left = 20
Height = 15 Height = 20
Top = 59 Top = 75
Width = 55 Width = 75
Alignment = taRightJustify Alignment = taRightJustify
BorderSpacing.Top = 16 BorderSpacing.Top = 20
Caption = 'LabelAxis1' Caption = 'LabelAxis1'
Font.Color = clWindowText
ParentColor = False ParentColor = False
ParentFont = False
end end
object LabelAxis2: TLabel object LabelAxis2: TLabel
AnchorSideLeft.Control = LabelAxis0 AnchorSideLeft.Control = LabelAxis0
AnchorSideTop.Control = ScrollBarAxis1 AnchorSideTop.Control = ScrollBarAxis1
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 16 Left = 20
Height = 15 Height = 20
Top = 114 Top = 145
Width = 55 Width = 75
Alignment = taRightJustify Alignment = taRightJustify
BorderSpacing.Top = 16 BorderSpacing.Top = 20
Caption = 'LabelAxis2' Caption = 'LabelAxis2'
Font.Color = clWindowText
ParentColor = False ParentColor = False
ParentFont = False
end end
object LabelPredefined: TLabel object LabelPredefined: TLabel
AnchorSideLeft.Control = ColorBox AnchorSideLeft.Control = ColorBox
AnchorSideTop.Control = ScrollBarAxis2 AnchorSideTop.Control = ScrollBarAxis2
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 88 Left = 108
Height = 15 Height = 20
Top = 169 Top = 215
Width = 95 Width = 128
Alignment = taRightJustify Alignment = taRightJustify
Caption = '&Predefined colors:' Caption = '&Predefined colors:'
FocusControl = ColorBox FocusControl = ColorBox
Font.Color = clWindowText
ParentColor = False ParentColor = False
ParentFont = False
end end
object ScrollBarAxis0: TScrollBar object ScrollBarAxis0: TScrollBar
AnchorSideLeft.Control = LabelAxis0 AnchorSideLeft.Control = LabelAxis0
AnchorSideTop.Control = LabelAxis0 AnchorSideTop.Control = LabelAxis0
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = SpinEditAxis0 AnchorSideRight.Control = SpinEditAxis0
Left = 16 Left = 20
Height = 20 Height = 25
Top = 23 Top = 30
Width = 268 Width = 332
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 4 BorderSpacing.Top = 5
BorderSpacing.Right = 16 BorderSpacing.Right = 20
LargeChange = 16 LargeChange = 16
Max = 255 Max = 255
PageSize = 0 PageSize = 0
@ -175,12 +194,12 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ScrollBarAxis0 AnchorSideRight.Control = ScrollBarAxis0
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 16 Left = 20
Height = 20 Height = 25
Top = 78 Top = 100
Width = 268 Width = 332
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 4 BorderSpacing.Top = 5
LargeChange = 16 LargeChange = 16
Max = 255 Max = 255
PageSize = 0 PageSize = 0
@ -194,13 +213,13 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ScrollBarAxis1 AnchorSideRight.Control = ScrollBarAxis1
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 16 Left = 20
Height = 20 Height = 25
Top = 133 Top = 170
Width = 268 Width = 332
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 4 BorderSpacing.Top = 5
BorderSpacing.Bottom = 16 BorderSpacing.Bottom = 20
LargeChange = 16 LargeChange = 16
Max = 255 Max = 255
PageSize = 0 PageSize = 0
@ -212,14 +231,16 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = GroupBoxSettings AnchorSideRight.Control = GroupBoxSettings
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 300 Left = 372
Height = 23 Height = 30
Top = 22 Top = 27
Width = 60 Width = 75
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
BorderSpacing.Right = 16 BorderSpacing.Right = 20
Font.Color = clWindowText
MaxValue = 255 MaxValue = 255
OnChange = SpinEditChange OnChange = SpinEditChange
ParentFont = False
TabOrder = 1 TabOrder = 1
end end
object SpinEditAxis1: TSpinEdit object SpinEditAxis1: TSpinEdit
@ -229,13 +250,15 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = SpinEditAxis0 AnchorSideRight.Control = SpinEditAxis0
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 300 Left = 372
Height = 23 Height = 30
Top = 77 Top = 97
Width = 60 Width = 75
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
Font.Color = clWindowText
MaxValue = 255 MaxValue = 255
OnChange = SpinEditChange OnChange = SpinEditChange
ParentFont = False
TabOrder = 3 TabOrder = 3
end end
object SpinEditAxis2: TSpinEdit object SpinEditAxis2: TSpinEdit
@ -245,13 +268,15 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = SpinEditAxis0 AnchorSideRight.Control = SpinEditAxis0
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 300 Left = 372
Height = 23 Height = 30
Top = 132 Top = 167
Width = 60 Width = 75
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
Font.Color = clWindowText
MaxValue = 255 MaxValue = 255
OnChange = SpinEditChange OnChange = SpinEditChange
ParentFont = False
TabOrder = 5 TabOrder = 5
end end
object ColorBox: TColorBox object ColorBox: TColorBox
@ -259,15 +284,17 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideLeft.Side = asrCenter AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = LabelPredefined AnchorSideTop.Control = LabelPredefined
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 88 Left = 108
Height = 22 Height = 36
Top = 188 Top = 240
Width = 201 Width = 251
Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbPrettyNames] Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbPrettyNames]
BorderSpacing.Top = 4 BorderSpacing.Top = 5
BorderSpacing.Bottom = 16 BorderSpacing.Bottom = 20
ItemHeight = 16 Font.Color = clWindowText
ItemHeight = 20
OnSelect = ComboBoxPredefinedSelect OnSelect = ComboBoxPredefinedSelect
ParentFont = False
TabOrder = 6 TabOrder = 6
end end
end end
@ -279,16 +306,16 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = ButtonOK AnchorSideBottom.Control = ButtonOK
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 408 Left = 510
Height = 341 Height = 434
Top = 8 Top = 10
Width = 296 Width = 402
ColCount = 8 ColCount = 8
SquareSize = 30 SquareSize = 30
OnChange = JvFullColorGroupChange OnChange = JvFullColorGroupChange
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Right = 8 BorderSpacing.Right = 10
Constraints.MinWidth = 288 Constraints.MinWidth = 360
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
end end
@ -300,29 +327,33 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = ButtonOK AnchorSideBottom.Control = ButtonOK
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 408 Left = 510
Height = 341 Height = 434
Top = 8 Top = 10
Width = 296 Width = 402
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Right = 8 BorderSpacing.Right = 10
BevelInner = bvRaised BevelInner = bvRaised
BevelOuter = bvLowered BevelOuter = bvLowered
ClientHeight = 341 ClientHeight = 434
ClientWidth = 296 ClientWidth = 402
Font.Color = clWindowText
ParentFont = False
TabOrder = 2 TabOrder = 2
Visible = False Visible = False
object LabelAxis: TLabel object LabelAxis: TLabel
AnchorSideLeft.Control = PanelGraphic AnchorSideLeft.Control = PanelGraphic
AnchorSideTop.Control = JvColorAxisConfigCombo AnchorSideTop.Control = JvColorAxisConfigCombo
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 10 Left = 12
Height = 15 Height = 20
Top = 14 Top = 20
Width = 24 Width = 33
BorderSpacing.Left = 8 BorderSpacing.Left = 10
Caption = '&Axis:' Caption = '&Axis:'
Font.Color = clWindowText
ParentColor = False ParentColor = False
ParentFont = False
end end
object JvColorPanel: TJvFullColorPanel object JvColorPanel: TJvFullColorPanel
AnchorSideLeft.Control = PanelGraphic AnchorSideLeft.Control = PanelGraphic
@ -331,15 +362,15 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideRight.Control = PanelGraphic AnchorSideRight.Control = PanelGraphic
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = JvFullColorTrackBar AnchorSideBottom.Control = JvFullColorTrackBar
Left = 10 Left = 12
Height = 263 Height = 326
Top = 37 Top = 53
Width = 268 Width = 378
Anchors = [akTop, akLeft, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8 BorderSpacing.Left = 10
BorderSpacing.Top = 4 BorderSpacing.Top = 5
BorderSpacing.Right = 8 BorderSpacing.Right = 10
BorderSpacing.Bottom = 4 BorderSpacing.Bottom = 5
FullColor = 83886079 FullColor = 83886079
TabOrder = 1 TabOrder = 1
OnColorChange = JvColorPanelColorChange OnColorChange = JvColorPanelColorChange
@ -354,11 +385,12 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = PanelGraphic AnchorSideBottom.Control = PanelGraphic
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 10 Left = 12
Height = 27 Height = 38
Top = 304 Top = 384
Width = 268 Width = 378
BorderSpacing.Bottom = 8 Anchors = [akLeft, akRight, akBottom]
BorderSpacing.Bottom = 10
FullColor = 83886079 FullColor = 83886079
TabOrder = 2 TabOrder = 2
ArrowWidth = 8 ArrowWidth = 8
@ -367,18 +399,19 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideLeft.Control = LabelAxis AnchorSideLeft.Control = LabelAxis
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = PanelGraphic AnchorSideTop.Control = PanelGraphic
AnchorSideRight.Control = PanelGraphic AnchorSideRight.Control = JvColorPanel
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 42 Left = 55
Height = 23 Height = 36
Top = 10 Top = 12
Width = 244 Width = 335
Selected = acXYZ Selected = acXYZ
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 8 BorderSpacing.Left = 10
BorderSpacing.Top = 8 BorderSpacing.Top = 10
BorderSpacing.Right = 8 Font.Color = clWindowText
ItemHeight = 15 ItemHeight = 22
ParentFont = False
TabOrder = 0 TabOrder = 0
OnChange = ComboBoxAxisChange OnChange = ComboBoxAxisChange
end end
@ -388,61 +421,70 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideTop.Control = ButtonOK AnchorSideTop.Control = ButtonOK
AnchorSideRight.Control = GroupBoxSettings AnchorSideRight.Control = GroupBoxSettings
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 284 Left = 366
Height = 25 Height = 30
Top = 324 Top = 414
Width = 108 Width = 124
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
AutoSize = True AutoSize = True
Caption = 'ButtonGraphics' Caption = 'ButtonGraphics'
Constraints.MinWidth = 75 Constraints.MinWidth = 94
Font.Color = clWindowText
OnClick = ButtonGraphicsClick OnClick = ButtonGraphicsClick
ParentFont = False
TabOrder = 6 TabOrder = 6
end end
object ButtonOK: TButton object ButtonOK: TButton
AnchorSideLeft.Control = GroupBoxSettings AnchorSideLeft.Control = GroupBoxSettings
AnchorSideTop.Control = GroupBoxSettings AnchorSideTop.Control = GroupBoxSettings
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 12 Left = 15
Height = 25 Height = 30
Top = 324 Top = 414
Width = 75 Width = 94
AutoSize = True AutoSize = True
BorderSpacing.Top = 16 BorderSpacing.Top = 20
BorderSpacing.Bottom = 8 BorderSpacing.Bottom = 10
Caption = '&OK' Caption = '&OK'
Constraints.MinWidth = 75 Constraints.MinWidth = 94
Default = True Default = True
Font.Color = clWindowText
ModalResult = 1 ModalResult = 1
ParentFont = False
TabOrder = 3 TabOrder = 3
end end
object ButtonCancel: TButton object ButtonCancel: TButton
AnchorSideLeft.Control = ButtonOK AnchorSideLeft.Control = ButtonOK
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = ButtonOK AnchorSideTop.Control = ButtonOK
Left = 95 Left = 119
Height = 25 Height = 30
Top = 324 Top = 414
Width = 75 Width = 72
BorderSpacing.Left = 8 AutoSize = True
BorderSpacing.Left = 10
Cancel = True Cancel = True
Caption = 'Ca&ncel' Caption = 'Ca&ncel'
Font.Color = clWindowText
ModalResult = 2 ModalResult = 2
ParentFont = False
TabOrder = 4 TabOrder = 4
end end
object ButtonApply: TButton object ButtonApply: TButton
AnchorSideLeft.Control = ButtonCancel AnchorSideLeft.Control = ButtonCancel
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = ButtonOK AnchorSideTop.Control = ButtonOK
Left = 178 Left = 201
Height = 25 Height = 30
Top = 324 Top = 414
Width = 75 Width = 94
AutoSize = True AutoSize = True
BorderSpacing.Left = 8 BorderSpacing.Left = 10
Caption = '&Apply' Caption = '&Apply'
Constraints.MinWidth = 75 Constraints.MinWidth = 94
Font.Color = clWindowText
OnClick = ButtonApplyClick OnClick = ButtonApplyClick
ParentFont = False
TabOrder = 5 TabOrder = 5
end end
object JvColorSpaceCombo: TJvFullColorSpaceCombo object JvColorSpaceCombo: TJvFullColorSpaceCombo
@ -450,14 +492,16 @@ object JvFullColorFrm: TJvFullColorFrm
AnchorSideTop.Control = LabelColorSpace AnchorSideTop.Control = LabelColorSpace
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 12 Left = 15
Height = 23 Height = 36
Top = 27 Top = 35
Width = 244 Width = 305
BorderSpacing.Left = 12 BorderSpacing.Left = 15
BorderSpacing.Top = 4 BorderSpacing.Top = 5
Constraints.MinWidth = 210 Constraints.MinWidth = 262
ItemHeight = 15 Font.Color = clWindowText
ItemHeight = 22
ParentFont = False
TabOrder = 0 TabOrder = 0
OnSelect = JvComboBoxColorSpaceSelect OnSelect = JvComboBoxColorSpaceSelect
end end

View File

@ -120,7 +120,7 @@ type
implementation implementation
uses uses
JvResources; Math, JvResources;
{$R *.lfm} {$R *.lfm}
@ -155,8 +155,15 @@ begin
end; end;
procedure TJvFullColorFrm.FormShow(Sender: TObject); procedure TJvFullColorFrm.FormShow(Sender: TObject);
var
i, w: Integer;
begin begin
Position := poScreenCenter; Position := poScreenCenter;
w := 0;
for i := 0 to JvColorAxisConfigCombo.Items.Count-1 do
w := Max(w, JvColorAxisConfigCombo.Canvas.TextWidth(JvColorAxisConfigCombo.Items[i]));
JvColorAxisConfigCombo.Constraints.MinWidth := w + 40;;
AutoSize := true;
end; end;
procedure TJvFullColorFrm.Loaded; procedure TJvFullColorFrm.Loaded;

View File

@ -89,8 +89,6 @@ procedure RotateBitmap(SourceBitmap, DestBitmap: TBitmap; AColorDelta: TJvColorD
implementation implementation
uses
JvTypes;
function RotateColor(AColor: TJvFullColor; AColorDelta: TJvColorDelta): TJvFullColor; function RotateColor(AColor: TJvFullColor; AColorDelta: TJvColorDelta): TJvFullColor;
var var
@ -175,7 +173,7 @@ end;
procedure RotateBitmap(SourceBitmap, DestBitmap: TBitmap; AColorDelta: TJvColorDelta); procedure RotateBitmap(SourceBitmap, DestBitmap: TBitmap; AColorDelta: TJvColorDelta);
type type
TFullColorValue = array [TJvAxisIndex] of SmallInt; TFullColorValue = array [TJvAxisIndex] of SmallInt;
PFullColorValue = ^TFullColorValue; // PFullColorValue = ^TFullColorValue;
var var
OriginalPixelFormat: TPixelFormat; OriginalPixelFormat: TPixelFormat;
Colors: array [TJvAxisIndex,Byte] of TFullColorValue; Colors: array [TJvAxisIndex,Byte] of TFullColorValue;
@ -275,7 +273,7 @@ begin
if ColorFusion[axIndex2] < 0 then if ColorFusion[axIndex2] < 0 then
ColorFusion[axIndex2] := 0; ColorFusion[axIndex2] := 0;
DestLine^ := // Bitmap Color Format is (MSB)0RGB(LSB) DestLine^ := // Bitmap Color Format is (MSB)0RGB(LSB)
(ColorFusion[axIndex0] shl 16) or (ColorFusion[axIndex1] shl 8) or (ColorFusion[axIndex2]); (ColorFusion[axIndex0] shl 16) or (ColorFusion[axIndex1] shl 8) or (ColorFusion[axIndex2]); // or $FF000000;
Inc(SourceLine); Inc(SourceLine);
Inc(DestLine); Inc(DestLine);
end; end;

View File

@ -102,10 +102,10 @@ type
private private
FID: TJvFullColorSpaceID; FID: TJvFullColorSpaceID;
protected protected
function GetAxisName(Index: TJvAxisIndex): string; virtual; function GetAxisName({%H-}Index: TJvAxisIndex): string; virtual;
function GetAxisMin(Index: TJvAxisIndex): Byte; virtual; function GetAxisMin({%H-}Index: TJvAxisIndex): Byte; virtual;
function GetAxisMax(Index: TJvAxisIndex): Byte; virtual; function GetAxisMax({%H-}Index: TJvAxisIndex): Byte; virtual;
function GetAxisDefault(Index: TJvAxisIndex): Byte; virtual; function GetAxisDefault({%H-}Index: TJvAxisIndex): Byte; virtual;
function GetName: string; virtual; function GetName: string; virtual;
function GetShortName: string; virtual; function GetShortName: string; virtual;
function GetNumberOfColors: Cardinal; virtual; function GetNumberOfColors: Cardinal; virtual;
@ -148,11 +148,11 @@ type
TJvRGBColorSpace = class(TJvColorSpace) TJvRGBColorSpace = class(TJvColorSpace)
protected protected
function GetAxisName(Index: TJvAxisIndex): string; override; function GetAxisName(Index: TJvAxisIndex): string; override;
function GetAxisMin(Index: TJvAxisIndex): Byte; override; function GetAxisMin({%H-}Index: TJvAxisIndex): Byte; override;
function GetAxisMax(Index: TJvAxisIndex): Byte; override; function GetAxisMax({%H-}Index: TJvAxisIndex): Byte; override;
function GetName: string; override; function GetName: string; override;
function GetShortName: string; override; function GetShortName: string; override;
function GetAxisDefault(Index: TJvAxisIndex): Byte; override; function GetAxisDefault({%H-}Index: TJvAxisIndex): Byte; override;
public public
function ConvertFromColor(AColor: TColor): TJvFullColor; override; function ConvertFromColor(AColor: TColor): TJvFullColor; override;
function ConvertToColor(AColor: TJvFullColor): TColor; override; function ConvertToColor(AColor: TJvFullColor): TColor; override;
@ -161,11 +161,11 @@ type
TJvHLSColorSpace = class(TJvColorSpace) TJvHLSColorSpace = class(TJvColorSpace)
protected protected
function GetAxisName(Index: TJvAxisIndex): string; override; function GetAxisName(Index: TJvAxisIndex): string; override;
function GetAxisMin(Index: TJvAxisIndex): Byte; override; function GetAxisMin({%H-}Index: TJvAxisIndex): Byte; override;
function GetAxisMax(Index: TJvAxisIndex): Byte; override; function GetAxisMax({%H-}Index: TJvAxisIndex): Byte; override;
function GetName: string; override; function GetName: string; override;
function GetShortName: string; override; function GetShortName: string; override;
function GetAxisDefault(Index: TJvAxisIndex): Byte; override; function GetAxisDefault({%H-}Index: TJvAxisIndex): Byte; override;
public public
function ConvertFromColor(AColor: TColor): TJvFullColor; override; function ConvertFromColor(AColor: TColor): TJvFullColor; override;
function ConvertToColor(AColor: TJvFullColor): TColor; override; function ConvertToColor(AColor: TJvFullColor): TColor; override;
@ -174,11 +174,11 @@ type
TJvCMYColorSpace = class(TJvColorSpace) TJvCMYColorSpace = class(TJvColorSpace)
protected protected
function GetAxisName(Index: TJvAxisIndex): string; override; function GetAxisName(Index: TJvAxisIndex): string; override;
function GetAxisMin(Index: TJvAxisIndex): Byte; override; function GetAxisMin({%H-}Index: TJvAxisIndex): Byte; override;
function GetAxisMax(Index: TJvAxisIndex): Byte; override; function GetAxisMax({%H-}Index: TJvAxisIndex): Byte; override;
function GetName: string; override; function GetName: string; override;
function GetShortName: string; override; function GetShortName: string; override;
function GetAxisDefault(Index: TJvAxisIndex): Byte; override; function GetAxisDefault({%H-}Index: TJvAxisIndex): Byte; override;
public public
function ConvertFromColor(AColor: TColor): TJvFullColor; override; function ConvertFromColor(AColor: TColor): TJvFullColor; override;
function ConvertToColor(AColor: TJvFullColor): TColor; override; function ConvertToColor(AColor: TJvFullColor): TColor; override;
@ -187,11 +187,11 @@ type
TJvYUVColorSpace = class(TJvColorSpace) TJvYUVColorSpace = class(TJvColorSpace)
protected protected
function GetAxisName(Index: TJvAxisIndex): string; override; function GetAxisName(Index: TJvAxisIndex): string; override;
function GetAxisMin(Index: TJvAxisIndex): Byte; override; function GetAxisMin({%H-}Index: TJvAxisIndex): Byte; override;
function GetAxisMax(Index: TJvAxisIndex): Byte; override; function GetAxisMax({%H-}Index: TJvAxisIndex): Byte; override;
function GetName: string; override; function GetName: string; override;
function GetShortName: string; override; function GetShortName: string; override;
function GetAxisDefault(Index: TJvAxisIndex): Byte; override; function GetAxisDefault({%H-}Index: TJvAxisIndex): Byte; override;
public public
function ConvertFromColor(AColor: TColor): TJvFullColor; override; function ConvertFromColor(AColor: TColor): TJvFullColor; override;
function ConvertToColor(AColor: TJvFullColor): TColor; override; function ConvertToColor(AColor: TJvFullColor): TColor; override;
@ -200,7 +200,7 @@ type
TJvHSVColorSpace = class(TJvColorSpace) TJvHSVColorSpace = class(TJvColorSpace)
protected protected
function GetAxisName(Index: TJvAxisIndex): string; override; function GetAxisName(Index: TJvAxisIndex): string; override;
function GetAxisMin(Index: TJvAxisIndex): Byte; override; function GetAxisMin({%H-}Index: TJvAxisIndex): Byte; override;
function GetAxisMax(Index: TJvAxisIndex): Byte; override; function GetAxisMax(Index: TJvAxisIndex): Byte; override;
function GetName: string; override; function GetName: string; override;
function GetShortName: string; override; function GetShortName: string; override;
@ -213,11 +213,11 @@ type
TJvYIQColorSpace = class(TJvColorSpace) TJvYIQColorSpace = class(TJvColorSpace)
protected protected
function GetAxisName(Index: TJvAxisIndex): string; override; function GetAxisName(Index: TJvAxisIndex): string; override;
function GetAxisMin(Index: TJvAxisIndex): Byte; override; function GetAxisMin({%H-}Index: TJvAxisIndex): Byte; override;
function GetAxisMax(Index: TJvAxisIndex): Byte; override; function GetAxisMax({%H-}Index: TJvAxisIndex): Byte; override;
function GetName: string; override; function GetName: string; override;
function GetShortName: string; override; function GetShortName: string; override;
function GetAxisDefault(Index: TJvAxisIndex): Byte; override; function GetAxisDefault({%H-}Index: TJvAxisIndex): Byte; override;
public public
function ConvertFromColor(AColor: TColor): TJvFullColor; override; function ConvertFromColor(AColor: TColor): TJvFullColor; override;
function ConvertToColor(AColor: TJvFullColor): TColor; override; function ConvertToColor(AColor: TJvFullColor): TColor; override;
@ -226,11 +226,11 @@ type
TJvYCCColorSpace = class(TJvColorSpace) TJvYCCColorSpace = class(TJvColorSpace)
protected protected
function GetAxisName(Index: TJvAxisIndex): string; override; function GetAxisName(Index: TJvAxisIndex): string; override;
function GetAxisMin(Index: TJvAxisIndex): Byte; override; function GetAxisMin({%H-}Index: TJvAxisIndex): Byte; override;
function GetAxisMax(Index: TJvAxisIndex): Byte; override; function GetAxisMax({%H-}Index: TJvAxisIndex): Byte; override;
function GetName: string; override; function GetName: string; override;
function GetShortName: string; override; function GetShortName: string; override;
function GetAxisDefault(Index: TJvAxisIndex): Byte; override; function GetAxisDefault({%H-}Index: TJvAxisIndex): Byte; override;
public public
function ConvertFromColor(AColor: TColor): TJvFullColor; override; function ConvertFromColor(AColor: TColor): TJvFullColor; override;
function ConvertToColor(AColor: TJvFullColor): TColor; override; function ConvertToColor(AColor: TJvFullColor): TColor; override;
@ -239,11 +239,11 @@ type
TJvXYZColorSpace = class(TJvColorSpace) TJvXYZColorSpace = class(TJvColorSpace)
protected protected
function GetAxisName(Index: TJvAxisIndex): string; override; function GetAxisName(Index: TJvAxisIndex): string; override;
function GetAxisMin(Index: TJvAxisIndex): Byte; override; function GetAxisMin({%H-}Index: TJvAxisIndex): Byte; override;
function GetAxisMax(Index: TJvAxisIndex): Byte; override; function GetAxisMax({%H-}Index: TJvAxisIndex): Byte; override;
function GetName: string; override; function GetName: string; override;
function GetShortName: string; override; function GetShortName: string; override;
function GetAxisDefault(Index: TJvAxisIndex): Byte; override; function GetAxisDefault({%H-}Index: TJvAxisIndex): Byte; override;
public public
function ConvertFromColor(AColor: TColor): TJvFullColor; override; function ConvertFromColor(AColor: TColor): TJvFullColor; override;
function ConvertToColor(AColor: TJvFullColor): TColor; override; function ConvertToColor(AColor: TJvFullColor): TColor; override;
@ -252,11 +252,11 @@ type
TJvLABColorSpace = class(TJvColorSpace) TJvLABColorSpace = class(TJvColorSpace)
protected protected
function GetAxisName(Index: TJvAxisIndex): string; override; function GetAxisName(Index: TJvAxisIndex): string; override;
function GetAxisMin(Index: TJvAxisIndex): Byte; override; function GetAxisMin({%H-}Index: TJvAxisIndex): Byte; override;
function GetAxisMax(Index: TJvAxisIndex): Byte; override; function GetAxisMax({%H-}Index: TJvAxisIndex): Byte; override;
function GetName: string; override; function GetName: string; override;
function GetShortName: string; override; function GetShortName: string; override;
function GetAxisDefault(Index: TJvAxisIndex): Byte; override; function GetAxisDefault({%H-}Index: TJvAxisIndex): Byte; override;
public public
function ConvertFromColor(AColor: TColor): TJvFullColor; override; function ConvertFromColor(AColor: TColor): TJvFullColor; override;
function ConvertToColor(AColor: TJvFullColor): TColor; override; function ConvertToColor(AColor: TJvFullColor): TColor; override;
@ -314,7 +314,7 @@ function ColorSpaceManager: TJvColorSpaceManager;
function GetAxisValue(AColor: TJvFullColor; AAxis: TJvAxisIndex): Byte; function GetAxisValue(AColor: TJvFullColor; AAxis: TJvAxisIndex): Byte;
function SetAxisValue(AColor: TJvFullColor; AAxis: TJvAxisIndex; NewValue: Byte): TJvFullColor; function SetAxisValue(AColor: TJvFullColor; AAxis: TJvAxisIndex; NewValue: Byte): TJvFullColor;
procedure SplitColorParts(AColor: TJvFullColor; var Part1, Part2, Part3: Integer); procedure SplitColorParts(AColor: TJvFullColor; out Part1, Part2, Part3: Integer);
function JoinColorParts(const Part1, Part2, Part3: Integer): TJvFullColor; function JoinColorParts(const Part1, Part2, Part3: Integer): TJvFullColor;
function ColorToPrettyName(Value: TColor): String; function ColorToPrettyName(Value: TColor): String;
@ -385,7 +385,7 @@ begin
end; end;
end; end;
procedure SplitColorParts(AColor: TJvFullColor; var Part1, Part2, Part3: Integer); procedure SplitColorParts(AColor: TJvFullColor; out Part1, Part2, Part3: Integer);
begin begin
Part1 := AColor and $000000FF; Part1 := AColor and $000000FF;
Part2 := (AColor shr 8) and $000000FF; Part2 := (AColor shr 8) and $000000FF;
@ -460,7 +460,7 @@ end;
function TJvColorSpace.ConvertFromColor(AColor: TColor): TJvFullColor; function TJvColorSpace.ConvertFromColor(AColor: TColor): TJvFullColor;
begin begin
Result := (AColor and $00FFFFFF) or (ID shl 24); Result := (Cardinal(AColor) and $00FFFFFF) or (ID shl 24);
end; end;
function TJvColorSpace.ConvertToColor(AColor: TJvFullColor): TColor; function TJvColorSpace.ConvertToColor(AColor: TJvFullColor): TColor;

View File

@ -30,7 +30,7 @@ unit JvGradientHeaderPanel;
interface interface
uses uses
LMessages, Types, LMessages,
SysUtils, Classes, Graphics, Controls, StdCtrls, SysUtils, Classes, Graphics, Controls, StdCtrls,
JvGradient, JvTypes, JvComponent; JvGradient, JvTypes, JvComponent;

View File

@ -125,7 +125,7 @@ begin
Exit; Exit;
Seek(-CTagSize, soFromEnd); Seek(-CTagSize, soFromEnd);
Result := (Read(TagID, CTagIDSize) = CTagIDSize) and (TagID = CID3v1Tag); Result := (Read(TagID{%H-}, CTagIDSize) = CTagIDSize) and (TagID = CID3v1Tag);
finally finally
Free; Free;
end; end;
@ -157,7 +157,7 @@ begin
try try
Seek(-CTagSize, soFromEnd); Seek(-CTagSize, soFromEnd);
if (Read(TagID, CTagIDSize) = CTagIDSize) and (TagID = CID3v1Tag) then if (Read(TagID{%H-}, CTagIDSize) = CTagIDSize) and (TagID = CID3v1Tag) then
Size := Size - CTagSize; Size := Size - CTagSize;
finally finally
Free; Free;
@ -179,7 +179,7 @@ begin
if Size >= CTagSize then if Size >= CTagSize then
begin begin
Seek(-CTagSize, soFromEnd); Seek(-CTagSize, soFromEnd);
if (Read(TagID, CTagIDSize) = CTagIDSize) and (TagID = CID3v1Tag) then if (Read(TagID{%H-}, CTagIDSize) = CTagIDSize) and (TagID = CID3v1Tag) then
Seek(-CTagIDSize, soFromCurrent) Seek(-CTagIDSize, soFromCurrent)
else else
Seek(0, soFromEnd); Seek(0, soFromEnd);
@ -248,7 +248,7 @@ begin
FNeedUpdateHasTag := True; FNeedUpdateHasTag := True;
FillChar(lTag, CTagSize, #0); FillChar(lTag{%H-}, CTagSize, #0);
// Set new Tag // Set new Tag
Move(CID3v1Tag[0], lTag.Identifier[0], 3); Move(CID3v1Tag[0], lTag.Identifier[0], 3);
@ -318,7 +318,7 @@ var
begin begin
CheckActive; CheckActive;
Result := ReadID3v1Tag(FileName, lTag); Result := ReadID3v1Tag(FileName, lTag{%H-});
FNeedUpdateHasTag := False; FNeedUpdateHasTag := False;
FHasTag := Result; FHasTag := Result;

View File

@ -296,7 +296,7 @@ type
procedure WriteFrameHeader(const AFrameSize: Cardinal); procedure WriteFrameHeader(const AFrameSize: Cardinal);
procedure WriteID; procedure WriteID;
procedure ChangeToVersion(const ANewVersion: TJvID3Version); virtual; procedure ChangeToVersion(const {%H-}ANewVersion: TJvID3Version); virtual;
function SupportsVersion(const AVersion: TJvID3Version): Boolean; virtual; function SupportsVersion(const AVersion: TJvID3Version): Boolean; virtual;
{ Checks whether this frame is empty, thus can be removed } { Checks whether this frame is empty, thus can be removed }
@ -310,7 +310,7 @@ type
procedure CheckFrameIDStr(const S: AnsiString); procedure CheckFrameIDStr(const S: AnsiString);
{ Checks whether Frame has the same unique identifier as this frame } { Checks whether Frame has the same unique identifier as this frame }
function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; virtual; function SameUniqueIDAs(const {%H-}Frame: TJvID3Frame): Boolean; virtual;
function MustWriteAsUTF: Boolean; virtual; function MustWriteAsUTF: Boolean; virtual;
@ -329,8 +329,8 @@ type
const AFrameIDStr: AnsiString = ''); reintroduce; virtual; const AFrameIDStr: AnsiString = ''); reintroduce; virtual;
destructor Destroy; override; destructor Destroy; override;
class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; virtual; class function CanAddFrame({%H-}AController: TJvID3Controller; {%H-}AFrameID: TJvID3FrameID): Boolean; virtual;
function CheckFrame(const HandleError: TJvID3HandleError): Boolean; virtual; function CheckFrame(const {%H-}HandleError: TJvID3HandleError): Boolean; virtual;
procedure Assign(Source: TPersistent); override; procedure Assign(Source: TPersistent); override;
procedure Clear; virtual; procedure Clear; virtual;
@ -402,13 +402,13 @@ type
procedure ReadFrame; override; procedure ReadFrame; override;
procedure WriteFrame; override; procedure WriteFrame; override;
function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetFrameSize(const {%H-}ToEncoding: TJvID3Encoding): Cardinal; override;
function GetIsEmpty: Boolean; override; function GetIsEmpty: Boolean; override;
function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override;
public public
class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override; class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override;
function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; function CheckFrame(const {%H-}HandleError: TJvID3HandleError): Boolean; override;
procedure Assign(Source: TPersistent); override; procedure Assign(Source: TPersistent); override;
procedure Clear; override; procedure Clear; override;
@ -468,7 +468,7 @@ type
public public
class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override; class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override;
function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; function CheckFrame(const {%H-}HandleError: TJvID3HandleError): Boolean; override;
procedure Assign(Source: TPersistent); override; procedure Assign(Source: TPersistent); override;
procedure Clear; override; procedure Clear; override;
@ -562,7 +562,7 @@ type
function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override;
public public
class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override; class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override;
function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; function CheckFrame(const {%H-}HandleError: TJvID3HandleError): Boolean; override;
procedure Assign(Source: TPersistent); override; procedure Assign(Source: TPersistent); override;
procedure Clear; override; procedure Clear; override;
@ -599,13 +599,13 @@ type
procedure ReadFrame; override; procedure ReadFrame; override;
procedure WriteFrame; override; procedure WriteFrame; override;
function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetFrameSize(const {%H-}ToEncoding: TJvID3Encoding): Cardinal; override;
function GetIsEmpty: Boolean; override; function GetIsEmpty: Boolean; override;
function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override;
public public
class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override; class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override;
function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; function CheckFrame(const {%H-}HandleError: TJvID3HandleError): Boolean; override;
procedure Assign(Source: TPersistent); override; procedure Assign(Source: TPersistent); override;
procedure Clear; override; procedure Clear; override;
@ -633,14 +633,14 @@ type
procedure ReadFrame; override; procedure ReadFrame; override;
procedure WriteFrame; override; procedure WriteFrame; override;
function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetFrameSize(const {%H-}ToEncoding: TJvID3Encoding): Cardinal; override;
function GetIsEmpty: Boolean; override; function GetIsEmpty: Boolean; override;
function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override;
public public
class function CanAddFrame(AController: TJvID3Controller; class function CanAddFrame(AController: TJvID3Controller;
AFrameID: TJvID3FrameID): Boolean; override; AFrameID: TJvID3FrameID): Boolean; override;
function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; function CheckFrame(const {%H-}HandleError: TJvID3HandleError): Boolean; override;
procedure Assign(Source: TPersistent); override; procedure Assign(Source: TPersistent); override;
procedure Clear; override; procedure Clear; override;
@ -667,7 +667,7 @@ type
procedure ReadFrame; override; procedure ReadFrame; override;
procedure WriteFrame; override; procedure WriteFrame; override;
function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetFrameSize(const {%H-}ToEncoding: TJvID3Encoding): Cardinal; override;
function GetIsEmpty: Boolean; override; function GetIsEmpty: Boolean; override;
function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override;
@ -747,7 +747,7 @@ type
function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override;
public public
class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override; class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override;
function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; function CheckFrame(const {%H-}HandleError: TJvID3HandleError): Boolean; override;
procedure Assign(Source: TPersistent); override; procedure Assign(Source: TPersistent); override;
procedure Clear; override; procedure Clear; override;
@ -914,7 +914,7 @@ type
//procedure SetText(const ANewText: WideString); override; //procedure SetText(const ANewText: WideString); override;
procedure ChangeToVersion(const ANewVersion: TJvID3Version); override; procedure ChangeToVersion(const ANewVersion: TJvID3Version); override;
public public
function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; function CheckFrame(const {%H-}HandleError: TJvID3HandleError): Boolean; override;
class function Find(AController: TJvID3Controller; const AFrameID: TJvID3FrameID): TJvID3TimestampFrame; class function Find(AController: TJvID3Controller; const AFrameID: TJvID3FrameID): TJvID3TimestampFrame;
class function FindOrCreate(AController: TJvID3Controller; const AFrameID: TJvID3FrameID): TJvID3TimestampFrame; class function FindOrCreate(AController: TJvID3Controller; const AFrameID: TJvID3FrameID): TJvID3TimestampFrame;
published published
@ -947,7 +947,7 @@ type
procedure ReadFrame; override; procedure ReadFrame; override;
procedure WriteFrame; override; procedure WriteFrame; override;
function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetFrameSize(const {%H-}ToEncoding: TJvID3Encoding): Cardinal; override;
function GetIsEmpty: Boolean; override; function GetIsEmpty: Boolean; override;
function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override;
@ -984,7 +984,7 @@ type
function MustWriteAsUTF: Boolean; override; function MustWriteAsUTF: Boolean; override;
public public
class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override; class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override;
function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; function CheckFrame(const {%H-}HandleError: TJvID3HandleError): Boolean; override;
procedure Assign(Source: TPersistent); override; procedure Assign(Source: TPersistent); override;
procedure Clear; override; procedure Clear; override;
@ -1084,7 +1084,7 @@ type
constructor Create(Controller: TJvID3Controller); constructor Create(Controller: TJvID3Controller);
destructor Destroy; override; destructor Destroy; override;
procedure BeginDesign; procedure BeginDesign;
procedure ID3Event(Event: TJvID3Event; Info: Longint); virtual; procedure ID3Event({%H-}Event: TJvID3Event; {%H-}Info: Longint); virtual;
procedure EndDesign; procedure EndDesign;
property Controller: TJvID3Controller read FController; property Controller: TJvID3Controller read FController;
end; end;
@ -1235,7 +1235,7 @@ function NiceGenreToGenre(const ANiceGenre: string): string;
implementation implementation
uses uses
Graphics, Math, LazUTF8, LConvEncoding, LazFileUtils, DateUtils, StrUtils, Graphics, Math, LazUTF8, LConvEncoding, LazFileUtils, DateUtils,
(* (*
{$IFDEF HAS_UNIT_ANSISTRINGS} {$IFDEF HAS_UNIT_ANSISTRINGS}
AnsiStrings, AnsiStrings,
@ -1454,7 +1454,8 @@ begin
end; end;
end; end;
function CheckIsURL(Frame: TJvID3Frame; var S: AnsiString; const HandleError: TJvID3HandleError): Boolean; function CheckIsURL({%H-}Frame: TJvID3Frame; var {%H-}S: AnsiString;
const {%H-}HandleError: TJvID3HandleError): Boolean;
begin begin
{ Not implemented } { Not implemented }
Result := True; Result := True;
@ -1541,7 +1542,7 @@ function CheckMaxCharCount(Frame: TJvID3Frame; var S: String;
const HandleError: TJvID3HandleError): Boolean; const HandleError: TJvID3HandleError): Boolean;
begin begin
//Result := CharCount(S) <= MaxCharCount; //Result := CharCount(S) <= MaxCharCount;
Result := UTF8Length(S) <= MaxCharCount; Result := Cardinal(UTF8Length(S)) <= MaxCharCount;
if not Result then if not Result then
case HandleError of case HandleError of
heAutoCorrect: heAutoCorrect:
@ -1553,7 +1554,7 @@ end;
{function GetID3Date(const S: WideString; const Encoding: TJvID3Encoding; {function GetID3Date(const S: WideString; const Encoding: TJvID3Encoding;
const Year: Word = 0): TDateTime; } const Year: Word = 0): TDateTime; }
function GetID3Date(const S: String; const Encoding: TJvID3Encoding; function GetID3Date(const S: String; const {%H-}Encoding: TJvID3Encoding;
const Year: Word = 0): TDateTime; const Year: Word = 0): TDateTime;
var var
Day, Month: Word; Day, Month: Word;
@ -1582,10 +1583,6 @@ begin
} }
end; end;
{
function CheckIsLanguageList(Frame: TJvID3Frame;
Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}JclUnicode.TWideStrings{$ENDIF COMPILER12_UP};
const HandleError: TJvID3HandleError): Boolean; }
function CheckIsLanguageList(Frame: TJvID3Frame; Strings: TStrings; function CheckIsLanguageList(Frame: TJvID3Frame; Strings: TStrings;
const HandleError: TJvID3HandleError): Boolean; const HandleError: TJvID3HandleError): Boolean;
var var
@ -1607,11 +1604,6 @@ begin
end; end;
end; end;
{
function CheckList(Frame: TJvID3Frame;
Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}JclUnicode.TWideStrings{$ENDIF COMPILER12_UP};
const ASeparator: WideChar;
const HandleError: TJvID3HandleError): Boolean; }
function CheckList(Frame: TJvID3Frame; Strings: TStrings; function CheckList(Frame: TJvID3Frame; Strings: TStrings;
const ASeparator: WideChar; const HandleError: TJvID3HandleError): Boolean; const ASeparator: WideChar; const HandleError: TJvID3HandleError): Boolean;
var var
@ -1649,7 +1641,7 @@ end;
{function GetID3Time(const S: WideString; const Encoding: TJvID3Encoding; {function GetID3Time(const S: WideString; const Encoding: TJvID3Encoding;
const Sec: Word = 0; MSec: Word = 0): TDateTime; } const Sec: Word = 0; MSec: Word = 0): TDateTime; }
function GetID3Time(const S: String; const Encoding: TJvID3Encoding; function GetID3Time(const S: String; const {%H-}Encoding: TJvID3Encoding;
const Sec: Word = 0; MSec: Word = 0): TDateTime; const Sec: Word = 0; MSec: Word = 0): TDateTime;
var var
Hour, Min: Word; Hour, Min: Word;
@ -1802,11 +1794,11 @@ begin
for I := 0 to SourceSize - 1 do for I := 0 to SourceSize - 1 do
begin begin
Dest := Dest shl 7; Dest := Dest shl 7;
Dest := Dest or (TBytes(Source)[I] and $7F); // $7F = %01111111 Dest := Dest or Cardinal(TBytes(Source)[I] and $7F); // $7F = %01111111
end; end;
end; end;
procedure UnSyncSafe(var Source; const SourceSize: Integer; var Dest: Int64); overload; procedure UnSyncSafe(var Source; const SourceSize: Integer; out Dest: Int64); overload;
type type
TBytes = array [0..MaxInt - 1] of Byte; TBytes = array [0..MaxInt - 1] of Byte;
var var
@ -1824,8 +1816,6 @@ begin
end; end;
{procedure ExtractFixedStrings(const Content: WideString; const ALength: Integer;
Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}JclUnicode.TWideStrings{$ENDIF COMPILER12_UP}); }
procedure ExtractFixedStrings(const Content: String; const ALength: Integer; procedure ExtractFixedStrings(const Content: String; const ALength: Integer;
Strings: TStrings); Strings: TStrings);
var var
@ -1874,8 +1864,6 @@ begin
end; end;
end; end;
{ procedure ExtractStrings(Separator: WideChar; const Content: WideString;
Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}JclUnicode.TWideStrings{$ENDIF COMPILER12_UP}); }
procedure ExtractStrings(Separator: WideChar; const Content: String; procedure ExtractStrings(Separator: WideChar; const Content: String;
Strings: TStrings); Strings: TStrings);
var var
@ -1923,14 +1911,13 @@ function GetTagSizeInclHeader(AStream: TStream): Cardinal;
var var
Header: TID3v2HeaderRec; Header: TID3v2HeaderRec;
begin begin
if (AStream.Read(Header, SizeOf(Header)) = SizeOf(Header)) and Result := 0;
if (AStream.Read(Header{%H-}, SizeOf(Header)) = SizeOf(Header)) and
(Header.Identifier = cID3HeaderId) then (Header.Identifier = cID3HeaderId) then
begin begin
UnSyncSafe(Header.Size, 4, Result); UnSyncSafe(Header.Size, 4, Result);
Inc(Result, 10); Inc(Result, 10);
end end;
else
Result := 0;
end; end;
procedure ChangeTagSize(const SourceFileName: string; procedure ChangeTagSize(const SourceFileName: string;
@ -1994,7 +1981,7 @@ begin
while True do while True do
begin begin
BytesRead := AStream.Read(LBuffer, CBufferSize); BytesRead := AStream.Read(LBuffer{%H-}, CBufferSize);
if BytesRead = 0 then if BytesRead = 0 then
begin begin
Result := -1; Result := -1;
@ -2005,7 +1992,7 @@ begin
begin begin
if LastWasFF and (LBuffer[I] and $E0 = $E0) then if LastWasFF and (LBuffer[I] and $E0 = $E0) then
begin begin
Inc(Result, I - 1); Inc(Result, Int64(I) - 1);
if (I + BufferSize - 1 >= BytesRead) or (I = 0) then if (I + BufferSize - 1 >= BytesRead) or (I = 0) then
begin begin
AStream.Seek(Result, soBeginning); AStream.Seek(Result, soBeginning);
@ -2069,7 +2056,7 @@ begin
while BytesToRead > 0 do while BytesToRead > 0 do
begin begin
{ Read at max CBufferSize bytes from the stream } { Read at max CBufferSize bytes from the stream }
BytesRead := Source.Read(SourceBuf[0], Min(MaxBufSize, BytesToRead)); BytesRead := Source.Read({%H-}SourceBuf[0], Min(MaxBufSize, BytesToRead));
if BytesRead = 0 then if BytesRead = 0 then
ID3Error(RsECouldNotReadData); ID3Error(RsECouldNotReadData);
@ -2342,7 +2329,7 @@ var
begin begin
with TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite) do with TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite) do
try try
HasTag := (Read(Header, SizeOf(Header)) = SizeOf(Header)) and HasTag := (Read(Header{%H-}, SizeOf(Header)) = SizeOf(Header)) and
(Header.Identifier = cID3HeaderId); (Header.Identifier = cID3HeaderId);
if not HasTag then if not HasTag then
Exit; Exit;
@ -2499,7 +2486,7 @@ end;
class function TJvID3AudioEncryptionFrame.Find(AController: TJvID3Controller; class function TJvID3AudioEncryptionFrame.Find(AController: TJvID3Controller;
const AOwnerID: AnsiString): TJvID3AudioEncryptionFrame; const AOwnerID: AnsiString): TJvID3AudioEncryptionFrame;
var var
Frame: TJvID3Frame; Frame: TJvID3Frame = nil;
begin begin
Result := nil; Result := nil;
if not Assigned(AController) or not AController.Active then if not Assigned(AController) or not AController.Active then
@ -3768,7 +3755,7 @@ begin
if Header.HasTag then if Header.HasTag then
FFileInfo.Read(AStream, 10 + Header.Size) FFileInfo.Read(AStream, 10 + Header.Size)
else {%H-}else
FFileInfo.Read(AStream, 0); FFileInfo.Read(AStream, 0);
finally finally
EndReading; EndReading;
@ -3841,7 +3828,7 @@ var
NewTagSizeInclHeader := ANewTagSizeInclHeaderExclPadding + Result; NewTagSizeInclHeader := ANewTagSizeInclHeaderExclPadding + Result;
{ Round to multiple of CChunk } { Round to multiple of CChunk }
NewTagSizeInclHeader := ((NewTagSizeInclHeader + CChunk - 1) div CChunk) * CChunk; NewTagSizeInclHeader := ((NewTagSizeInclHeader + CChunk {%H-}- 1) div CChunk) * CChunk;
Result := NewTagSizeInclHeader - ANewTagSizeInclHeaderExclPadding; Result := NewTagSizeInclHeader - ANewTagSizeInclHeaderExclPadding;
end; end;
@ -4140,7 +4127,7 @@ end;
procedure TJvID3CustomTextFrame.ReadFrame; procedure TJvID3CustomTextFrame.ReadFrame;
var var
//S: WideString; //S: WideString;
S: String; S: String = '';
begin begin
with Stream do with Stream do
begin begin
@ -4380,7 +4367,8 @@ const
CMinBytes: array [TJvID3Encoding] of Byte = (2, 4, 4, 2); CMinBytes: array [TJvID3Encoding] of Byte = (2, 4, 4, 2);
var var
//S1, S2: WideString; //S1, S2: WideString;
S1, S2: String; S1: String = '';
S2: String = '';
begin begin
with Stream do with Stream do
begin begin
@ -4510,9 +4498,9 @@ end;
procedure TJvID3ExtendedHeader.Read; procedure TJvID3ExtendedHeader.Read;
var var
LSize: Cardinal; LSize: Cardinal = 0;
LFlag: Byte; LFlag: Byte = 0;
FlagDataLength: Byte; FlagDataLength: Byte = 0;
begin begin
Reset; Reset;
@ -4967,7 +4955,7 @@ const
VBRTag_Info: array [0..3] of AnsiChar = AnsiString('Info'); { Do not change case } VBRTag_Info: array [0..3] of AnsiChar = AnsiString('Info'); { Do not change case }
FRAMES_FLAG = $0001; FRAMES_FLAG = $0001;
BYTES_FLAG = $0002; BYTES_FLAG = $0002;
TOC_FLAG = $0004; //TOC_FLAG = $0004;
var var
HeadFlags: Integer; HeadFlags: Integer;
begin begin
@ -5022,7 +5010,7 @@ var
begin begin
Reset; Reset;
FHeaderFoundAt := SearchSync(AStream, Offset, MPEGTag, CMPEGTagSize); FHeaderFoundAt := SearchSync(AStream, Offset, MPEGTag{%H-}, CMPEGTagSize);
if FHeaderFoundAt < 0 then if FHeaderFoundAt < 0 then
Exit; Exit;
@ -5036,7 +5024,7 @@ begin
begin begin
{ Need to determine if the file has an ID3v1 tag } { Need to determine if the file has an ID3v1 tag }
AStream.Seek(-CTagSize, soFromEnd); AStream.Seek(-CTagSize, soFromEnd);
FHasID3v1Tag := (AStream.Read(TagID, CTagIDSize) = CTagIDSize) and (TagID = CID3v1Tag); FHasID3v1Tag := (AStream.Read(TagID{%H-}, CTagIDSize) = CTagIDSize) and (TagID = CID3v1Tag);
end; end;
{ We now know enough to calculate the rest } { We now know enough to calculate the rest }
@ -5291,7 +5279,8 @@ end;
procedure TJvID3Frame.ReadFrameHeader; procedure TJvID3Frame.ReadFrameHeader;
var var
Flag0, Flag1: Byte; Flag0: Byte = 0;
Flag1: Byte = 0;
begin begin
case Controller.Version of case Controller.Version of
ive2_2: ive2_2:
@ -5811,7 +5800,7 @@ end;
function TJvID3Frames.CheckIsUnique(Frame: TJvID3Frame): Boolean; function TJvID3Frames.CheckIsUnique(Frame: TJvID3Frame): Boolean;
var var
FoundFrame: TJvID3Frame; FoundFrame: TJvID3Frame = nil;
begin begin
Result := True; Result := True;
if not Assigned(Frame) then if not Assigned(Frame) then
@ -5900,7 +5889,7 @@ begin
Result := TJvID3Frame(FList[Index]); Result := TJvID3Frame(FList[Index]);
end; end;
function TJvID3Frames.GetFrameIDs: TJvID3FrameIDs; function TJvID3Frames.{%H-}GetFrameIDs: TJvID3FrameIDs;
begin begin
end; end;
@ -6063,7 +6052,7 @@ end;
class function TJvID3GeneralObjFrame.Find(AController: TJvID3Controller; class function TJvID3GeneralObjFrame.Find(AController: TJvID3Controller;
const AContentDescription: String): TJvID3GeneralObjFrame; const AContentDescription: String): TJvID3GeneralObjFrame;
var var
Frame: TJvID3Frame; Frame: TJvID3Frame = nil;
begin begin
Result := nil; Result := nil;
if not Assigned(AController) or not AController.Active then if not Assigned(AController) or not AController.Active then
@ -6282,7 +6271,7 @@ begin
begin begin
BeginReadFrame(10); BeginReadFrame(10);
try try
if Read(Header, 10) <> 10 then if Read(Header{%H-}, 10) <> 10 then
Exit; Exit;
FHasTag := Header.Identifier = cID3HeaderId; FHasTag := Header.Identifier = cID3HeaderId;
@ -6359,7 +6348,7 @@ begin
if Self.FSize > $0FFFFFFF then // 28 bits = 256 MB if Self.FSize > $0FFFFFFF then // 28 bits = 256 MB
ID3Error(RsETagTooBig, Controller); ID3Error(RsETagTooBig, Controller);
FillChar(Header, SizeOf(Header), #0); FillChar(Header{%H-}, SizeOf(Header), #0);
with Stream do with Stream do
begin begin
@ -6817,7 +6806,7 @@ end;
class function TJvID3PictureFrame.Find(AController: TJvID3Controller; class function TJvID3PictureFrame.Find(AController: TJvID3Controller;
const AType: TJvID3PictureType): TJvID3PictureFrame; const AType: TJvID3PictureType): TJvID3PictureFrame;
var var
Frame: TJvID3Frame; Frame: TJvID3Frame = nil;
begin begin
Result := nil; Result := nil;
if not Assigned(AController) or not AController.Active then if not Assigned(AController) or not AController.Active then
@ -6886,7 +6875,7 @@ end;
procedure TJvID3PictureFrame.ReadFrame; procedure TJvID3PictureFrame.ReadFrame;
var var
LPictureType: Byte; LPictureType: Byte = 0;
begin begin
{ Text encoding $xx { Text encoding $xx
MIME type <text string> $00 MIME type <text string> $00
@ -7138,7 +7127,7 @@ end;
class function TJvID3PopularimeterFrame.Find(AController: TJvID3Controller; class function TJvID3PopularimeterFrame.Find(AController: TJvID3Controller;
const AEmailAddress: AnsiString): TJvID3PopularimeterFrame; const AEmailAddress: AnsiString): TJvID3PopularimeterFrame;
var var
Frame: TJvID3Frame; Frame: TJvID3Frame = nil;
begin begin
Result := nil; Result := nil;
if not Assigned(AController) or not AController.Active then if not Assigned(AController) or not AController.Active then
@ -7465,7 +7454,7 @@ const
cMinBytes: array [TJvID3Encoding] of Byte = (2, 4, 4, 2); cMinBytes: array [TJvID3Encoding] of Byte = (2, 4, 4, 2);
var var
//S: WideString; //S: WideString;
S: String; S: String = '';
begin begin
if IsNullSeparator then if IsNullSeparator then
begin begin
@ -7597,7 +7586,7 @@ end;
function TJvID3Stream.GetBytesTillEndOfFrame: Longint; function TJvID3Stream.GetBytesTillEndOfFrame: Longint;
begin begin
Result := FStartPosition + FCurrentFrameSize - Position; Result := Int64(FStartPosition) + FCurrentFrameSize - Position;
end; end;
function TJvID3Stream.GetBytesTillEndOfTag: Longint; function TJvID3Stream.GetBytesTillEndOfTag: Longint;
@ -7697,7 +7686,7 @@ end;
function TJvID3Stream.ReadEnc(var AEncoding: TJvID3Encoding): Longint; function TJvID3Stream.ReadEnc(var AEncoding: TJvID3Encoding): Longint;
var var
B: Byte; B: Byte = 0;
begin begin
Result := Read(B, 1); Result := Read(B, 1);
if B <= Integer(High(TJvID3Encoding)) then if B <= Integer(High(TJvID3Encoding)) then
@ -7796,8 +7785,8 @@ end;
//function TJvID3Stream.ReadStringEnc(var S: WideString): Longint; //function TJvID3Stream.ReadStringEnc(var S: WideString): Longint;
function TJvID3Stream.ReadStringEnc(var S: String): LongInt; function TJvID3Stream.ReadStringEnc(var S: String): LongInt;
var var
SA: AnsiString; SA: AnsiString = '';
SW: WideString; SW: WideString = '';
begin begin
case SourceEncoding of case SourceEncoding of
ienISO_8859_1: ienISO_8859_1:
@ -7836,7 +7825,7 @@ end;
function TJvID3Stream.ReadStringW(var SW: WideString): Longint; function TJvID3Stream.ReadStringW(var SW: WideString): Longint;
var var
Order: WideChar; Order: WideChar = #0;
P: PWideChar; P: PWideChar;
StartPos: PAnsiChar; StartPos: PAnsiChar;
TerminatorFound: Boolean; TerminatorFound: Boolean;
@ -7919,7 +7908,7 @@ end;
function TJvID3Stream.ReadSyncSafeInteger(var AInt: Cardinal): Longint; function TJvID3Stream.ReadSyncSafeInteger(var AInt: Cardinal): Longint;
var var
Value: Cardinal; Value: Cardinal = 0;
begin begin
Result := Read(Value, 4); Result := Read(Value, 4);
UnSyncSafe(Value, 4, AInt); UnSyncSafe(Value, 4, AInt);
@ -7928,8 +7917,10 @@ end;
//function TJvID3Stream.ReadUserString(var S1, S2: WideString): Longint; //function TJvID3Stream.ReadUserString(var S1, S2: WideString): Longint;
function TJvID3Stream.ReadUserString(var S1, S2: String): LongInt; function TJvID3Stream.ReadUserString(var S1, S2: String): LongInt;
var var
SA1, SA2: AnsiString; SA1: AnsiString = '';
SW1, SW2: WideString; SA2: AnsiString = '';
SW1: WideString = '';
SW2: WideString = '';
begin begin
case SourceEncoding of case SourceEncoding of
ienISO_8859_1: ienISO_8859_1:
@ -8183,7 +8174,7 @@ end;
function TJvID3Stream.WriteSyncSafeInteger(const AInt: Cardinal): Longint; function TJvID3Stream.WriteSyncSafeInteger(const AInt: Cardinal): Longint;
var var
Value: Cardinal; Value: Cardinal = 0;
begin begin
SyncSafe(AInt, Value, 4); SyncSafe(AInt, Value, 4);
Result := Write(Value, 4); Result := Write(Value, 4);
@ -8724,7 +8715,7 @@ begin
// S := UTF16ToAnsiString(Copy(ANewText, 1, 19)); // S := UTF16ToAnsiString(Copy(ANewText, 1, 19));
S := Copy(ANewText, 1, 19); S := Copy(ANewText, 1, 19);
FillChar(TimeArray, SizeOf(TimeArray), #0); FillChar(TimeArray{%H-}, SizeOf(TimeArray), #0);
TimeArray[tkMonth] := 1; TimeArray[tkMonth] := 1;
TimeArray[tkDay] := 1; TimeArray[tkDay] := 1;
@ -8939,7 +8930,7 @@ class function TJvID3URLUserFrame.Find(AController: TJvID3Controller;
const AIndex: Integer): TJvID3URLUserFrame; const AIndex: Integer): TJvID3URLUserFrame;
var var
FoundIndex: Integer; FoundIndex: Integer;
Frame: TJvID3Frame; Frame: TJvID3Frame = nil;
begin begin
Result := nil; Result := nil;
if not Assigned(AController) or not AController.Active then if not Assigned(AController) or not AController.Active then
@ -9071,7 +9062,7 @@ class function TJvID3UserFrame.Find(AController: TJvID3Controller;
const AIndex: Integer): TJvID3UserFrame; const AIndex: Integer): TJvID3UserFrame;
var var
FoundIndex: Integer; FoundIndex: Integer;
Frame: TJvID3Frame; Frame: TJvID3Frame = nil;
begin begin
Result := nil; Result := nil;

View File

@ -231,7 +231,7 @@ function ID3_StringToFrameID(const S: AnsiString): TJvID3FrameID;
function ID3_FrameIDToString(const ID: TJvID3FrameID; const Size: Integer = 4): AnsiString; function ID3_FrameIDToString(const ID: TJvID3FrameID; const Size: Integer = 4): AnsiString;
{ Genre procedures } { Genre procedures }
function ID3_GenreToID(const AGenre: string; const InclWinampGenres: Boolean = True): Integer; function ID3_GenreToID(const AGenre: string; const {%H-}InclWinampGenres: Boolean = True): Integer;
{ searches for a genre that is a prefix for AGenreLong } { searches for a genre that is a prefix for AGenreLong }
function ID3_LongGenreToID(const ALongGenre: string; const InclWinampGenres: Boolean = True): Integer; function ID3_LongGenreToID(const ALongGenre: string; const InclWinampGenres: Boolean = True): Integer;
function ID3_IDToGenre(const ID: Integer; const InclWinampGenres: Boolean = True): string; function ID3_IDToGenre(const ID: Integer; const InclWinampGenres: Boolean = True): string;
@ -258,7 +258,6 @@ uses
AnsiStrings, AnsiStrings,
{$ENDIF HAS_UNIT_ANSISTRINGS} {$ENDIF HAS_UNIT_ANSISTRINGS}
*) *)
JvJCLUtils,
JvConsts, JvResources, JvTypes; JvConsts, JvResources, JvTypes;
type type

View File

@ -232,14 +232,14 @@ end;
procedure TJvPicClip.CheckIndex(Index: Integer); procedure TJvPicClip.CheckIndex(Index: Integer);
begin begin
if (Index >= Cols * Rows) or (Index < 0) then if (Index >= Integer(Cols) * Rows) or (Index < 0) then
raise EListError.CreateResFmt(@SListIndexError, [Index]); raise EListError.CreateResFmt(@SListIndexError, [Index]);
end; end;
function TJvPicClip.GetIndex(Col, Row: Cardinal): Integer; function TJvPicClip.GetIndex(Col, Row: Cardinal): Integer;
begin begin
Result := Col + (Row * Cols); Result := Col + (Row * Cols);
if (Result >= Cols * Rows) or IsEmpty then if (Result >= Integer(Cols) * Rows) or IsEmpty then
Result := -1; Result := -1;
end; end;

View File

@ -661,7 +661,7 @@ begin
PaintText; PaintText;
PaintRectangle; PaintRectangle;
Repaint; Invalidate;
end; end;
procedure TJvSpecialProgress.UpdateBlock; procedure TJvSpecialProgress.UpdateBlock;