You've already forked lazarus-ccr
jvcllaz: Add TJvID3v2 (mp3 tags). Add demos for TJvID3v1 and TJvID3v2.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6299 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -1,4 +1,5 @@
|
|||||||
tjvid3v1.bmp
|
tjvid3v1.bmp
|
||||||
|
tjvid3v2.bmp
|
||||||
tjvgradient.bmp
|
tjvgradient.bmp
|
||||||
tjvgradientheaderpanel.bmp
|
tjvgradientheaderpanel.bmp
|
||||||
tjvspecialprogress.bmp
|
tjvspecialprogress.bmp
|
||||||
|
BIN
components/jvcllaz/design/JvMM/images/tjvid3v2.bmp
Normal file
BIN
components/jvcllaz/design/JvMM/images/tjvid3v2.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
@ -16,12 +16,12 @@ implementation
|
|||||||
uses
|
uses
|
||||||
Classes, JvDsgnConsts,
|
Classes, JvDsgnConsts,
|
||||||
PropEdits, Controls,
|
PropEdits, Controls,
|
||||||
JvId3v1, JvGradient, JvGradientHeaderPanel, JvSpecialProgress;
|
JvId3v1, JvId3v2, JvGradient, JvGradientHeaderPanel, JvSpecialProgress;
|
||||||
|
|
||||||
procedure Register;
|
procedure Register;
|
||||||
begin
|
begin
|
||||||
RegisterComponents(RsPaletteJvcl, [
|
RegisterComponents(RsPaletteJvcl, [
|
||||||
TJvId3v1,
|
TJvId3v1, TJvId3v2,
|
||||||
TJvGradient, TJvGradientHeaderPanel,
|
TJvGradient, TJvGradientHeaderPanel,
|
||||||
TJvSpecialProgress
|
TJvSpecialProgress
|
||||||
]);
|
]);
|
||||||
|
80
components/jvcllaz/examples/JvID3v1/JvID3v1Demo.lpi
Normal file
80
components/jvcllaz/examples/JvID3v1/JvID3v1Demo.lpi
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<General>
|
||||||
|
<SessionStorage Value="InProjectDir"/>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<Title Value="JvID3v1Demo"/>
|
||||||
|
<Scaled Value="True"/>
|
||||||
|
<ResourceType Value="res"/>
|
||||||
|
<UseXPManifest Value="True"/>
|
||||||
|
<XPManifest>
|
||||||
|
<DpiAware Value="True"/>
|
||||||
|
</XPManifest>
|
||||||
|
<Icon Value="0"/>
|
||||||
|
</General>
|
||||||
|
<BuildModes Count="1">
|
||||||
|
<Item1 Name="Default" Default="True"/>
|
||||||
|
</BuildModes>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<FormatVersion Value="2"/>
|
||||||
|
<Modes Count="0"/>
|
||||||
|
</RunParams>
|
||||||
|
<RequiredPackages Count="2">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="JvMMLazR"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
</Item2>
|
||||||
|
</RequiredPackages>
|
||||||
|
<Units Count="2">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="JvID3v1Demo.lpr"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="JvID3v1MainFormU.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="JvID3v1MainForm"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
</Unit1>
|
||||||
|
</Units>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="JvID3v1Demo"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<Linking>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Debugging>
|
||||||
|
<Exceptions Count="3">
|
||||||
|
<Item1>
|
||||||
|
<Name Value="EAbort"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Name Value="ECodetoolError"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Name Value="EFOpenError"/>
|
||||||
|
</Item3>
|
||||||
|
</Exceptions>
|
||||||
|
</Debugging>
|
||||||
|
</CONFIG>
|
16
components/jvcllaz/examples/JvID3v1/JvID3v1Demo.lpr
Normal file
16
components/jvcllaz/examples/JvID3v1/JvID3v1Demo.lpr
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
program JvID3v1Demo;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
uses
|
||||||
|
Interfaces,
|
||||||
|
Forms,
|
||||||
|
JvID3v1MainFormU in 'JvID3v1MainFormU.pas' {JvID3v1MainForm};
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
Application.Initialize;
|
||||||
|
Application.CreateForm(TJvID3v1MainForm, JvID3v1MainForm);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
691
components/jvcllaz/examples/JvID3v1/JvID3v1MainFormU.lfm
Normal file
691
components/jvcllaz/examples/JvID3v1/JvID3v1MainFormU.lfm
Normal file
@ -0,0 +1,691 @@
|
|||||||
|
object JvID3v1MainForm: TJvID3v1MainForm
|
||||||
|
Left = 405
|
||||||
|
Height = 237
|
||||||
|
Top = 240
|
||||||
|
Width = 316
|
||||||
|
AllowDropFiles = True
|
||||||
|
AutoSize = True
|
||||||
|
BorderIcons = [biSystemMenu, biMinimize]
|
||||||
|
BorderStyle = bsSingle
|
||||||
|
Caption = 'TJvId3v1 example'
|
||||||
|
ClientHeight = 237
|
||||||
|
ClientWidth = 316
|
||||||
|
Color = clBtnFace
|
||||||
|
DefaultMonitor = dmDesktop
|
||||||
|
Font.Color = clWindowText
|
||||||
|
FormStyle = fsStayOnTop
|
||||||
|
OnCreate = FormCreate
|
||||||
|
OnDropFiles = FormDropFiles
|
||||||
|
Position = poScreenCenter
|
||||||
|
ShowHint = True
|
||||||
|
LCLVersion = '1.9.0.0'
|
||||||
|
Scaled = False
|
||||||
|
object lblArtist: TLabel
|
||||||
|
AnchorSideTop.Control = edtArtist
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblComment
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 30
|
||||||
|
Height = 15
|
||||||
|
Top = 131
|
||||||
|
Width = 28
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = '&Artist'
|
||||||
|
FocusControl = edtArtist
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblAlbum: TLabel
|
||||||
|
AnchorSideTop.Control = edtAlbum
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblComment
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 22
|
||||||
|
Height = 15
|
||||||
|
Top = 158
|
||||||
|
Width = 36
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = 'Al&bum'
|
||||||
|
FocusControl = edtAlbum
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblYear: TLabel
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = edtYear
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblComment
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 36
|
||||||
|
Height = 15
|
||||||
|
Top = 185
|
||||||
|
Width = 22
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = '&Year'
|
||||||
|
FocusControl = edtYear
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblComment: TLabel
|
||||||
|
AnchorSideLeft.Control = Owner
|
||||||
|
AnchorSideTop.Control = edtComment
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
Left = 4
|
||||||
|
Height = 15
|
||||||
|
Top = 212
|
||||||
|
Width = 54
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
Caption = '&Comment'
|
||||||
|
FocusControl = edtComment
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblGenre: TLabel
|
||||||
|
AnchorSideLeft.Control = edtYear
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = lblYear
|
||||||
|
AnchorSideRight.Control = cmbGenre
|
||||||
|
Left = 132
|
||||||
|
Height = 15
|
||||||
|
Top = 185
|
||||||
|
Width = 51
|
||||||
|
Alignment = taRightJustify
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 12
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
Caption = '&Genre'
|
||||||
|
FocusControl = cmbGenre
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblHasTag: TLabel
|
||||||
|
AnchorSideLeft.Control = JvFilenameEdit1
|
||||||
|
AnchorSideTop.Control = lblTrack
|
||||||
|
AnchorSideRight.Control = lblTitle
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 6
|
||||||
|
Height = 15
|
||||||
|
Top = 77
|
||||||
|
Width = 52
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = 'lblHasTag'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblTitle: TLabel
|
||||||
|
AnchorSideTop.Control = edtTitle
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblComment
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 35
|
||||||
|
Height = 15
|
||||||
|
Top = 104
|
||||||
|
Width = 23
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = '&Title'
|
||||||
|
FocusControl = edtTitle
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblTrack: TLabel
|
||||||
|
AnchorSideTop.Control = sedTrack
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = sedTrack
|
||||||
|
Left = 221
|
||||||
|
Height = 15
|
||||||
|
Top = 77
|
||||||
|
Width = 38
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
Caption = 'T&rack #'
|
||||||
|
FocusControl = sedTrack
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object JvFilenameEdit1: TFileNameEdit
|
||||||
|
AnchorSideLeft.Control = Owner
|
||||||
|
AnchorSideTop.Control = ToolBar1
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = Owner
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 4
|
||||||
|
Height = 23
|
||||||
|
Top = 46
|
||||||
|
Width = 308
|
||||||
|
OnAcceptFileName = JvFilenameEdit1AcceptFileName
|
||||||
|
FilterIndex = 0
|
||||||
|
HideDirectories = False
|
||||||
|
ButtonWidth = 23
|
||||||
|
NumGlyphs = 1
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
MaxLength = 0
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
TabOrder = 0
|
||||||
|
OnKeyPress = JvFilenameEdit1KeyPress
|
||||||
|
end
|
||||||
|
object edtTitle: TEdit
|
||||||
|
AnchorSideLeft.Control = lblTitle
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = sedTrack
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = JvFilenameEdit1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 62
|
||||||
|
Height = 23
|
||||||
|
Top = 100
|
||||||
|
Width = 250
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
MaxLength = 30
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
|
object edtAlbum: TEdit
|
||||||
|
AnchorSideLeft.Control = lblAlbum
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = edtArtist
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = JvFilenameEdit1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 62
|
||||||
|
Height = 23
|
||||||
|
Top = 154
|
||||||
|
Width = 250
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
MaxLength = 30
|
||||||
|
TabOrder = 4
|
||||||
|
end
|
||||||
|
object edtArtist: TEdit
|
||||||
|
AnchorSideLeft.Control = lblArtist
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = edtTitle
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = JvFilenameEdit1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 62
|
||||||
|
Height = 23
|
||||||
|
Top = 127
|
||||||
|
Width = 250
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
MaxLength = 30
|
||||||
|
TabOrder = 3
|
||||||
|
end
|
||||||
|
object edtYear: TEdit
|
||||||
|
AnchorSideLeft.Control = lblYear
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = edtAlbum
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
Left = 62
|
||||||
|
Height = 23
|
||||||
|
Top = 181
|
||||||
|
Width = 58
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
MaxLength = 4
|
||||||
|
TabOrder = 5
|
||||||
|
end
|
||||||
|
object edtComment: TEdit
|
||||||
|
AnchorSideLeft.Control = lblComment
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = edtYear
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = JvFilenameEdit1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 62
|
||||||
|
Height = 23
|
||||||
|
Top = 208
|
||||||
|
Width = 250
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
BorderSpacing.Bottom = 4
|
||||||
|
MaxLength = 30
|
||||||
|
TabOrder = 7
|
||||||
|
end
|
||||||
|
object cmbGenre: TComboBox
|
||||||
|
AnchorSideTop.Control = edtAlbum
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = JvFilenameEdit1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 187
|
||||||
|
Height = 23
|
||||||
|
Top = 181
|
||||||
|
Width = 125
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
ItemHeight = 15
|
||||||
|
Sorted = True
|
||||||
|
Style = csDropDownList
|
||||||
|
TabOrder = 6
|
||||||
|
end
|
||||||
|
object ToolBar1: TToolBar
|
||||||
|
Left = 0
|
||||||
|
Height = 42
|
||||||
|
Top = 0
|
||||||
|
Width = 316
|
||||||
|
AutoSize = True
|
||||||
|
ButtonHeight = 40
|
||||||
|
ButtonWidth = 44
|
||||||
|
Caption = 'ToolBar1'
|
||||||
|
EdgeBorders = [ebBottom]
|
||||||
|
Images = ImageList1
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowCaptions = True
|
||||||
|
ShowHint = True
|
||||||
|
TabOrder = 8
|
||||||
|
Wrapable = False
|
||||||
|
object ToolButton1: TToolButton
|
||||||
|
Left = 1
|
||||||
|
Hint = 'Reload the tag data from the file'
|
||||||
|
Top = 0
|
||||||
|
Action = actRefresh
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
end
|
||||||
|
object ToolButton2: TToolButton
|
||||||
|
Left = 46
|
||||||
|
Hint = 'Save changes of the tag to the file'
|
||||||
|
Top = 0
|
||||||
|
Action = actSave
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
end
|
||||||
|
object ToolButton3: TToolButton
|
||||||
|
Left = 90
|
||||||
|
Hint = 'Erase the tag of the file'
|
||||||
|
Top = 0
|
||||||
|
Action = actErase
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
end
|
||||||
|
object ToolButton4: TToolButton
|
||||||
|
Left = 134
|
||||||
|
Hint = 'Toggle ''Always on Top'''
|
||||||
|
Top = 0
|
||||||
|
Action = actOnTop
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
end
|
||||||
|
object ToolButton5: TToolButton
|
||||||
|
Left = 178
|
||||||
|
Hint = 'Show ''About'' dialog'
|
||||||
|
Top = 0
|
||||||
|
Action = actAbout
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
end
|
||||||
|
object ToolButton6: TToolButton
|
||||||
|
Left = 222
|
||||||
|
Hint = 'Close program'
|
||||||
|
Top = 0
|
||||||
|
Action = actExit
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object sedTrack: TSpinEdit
|
||||||
|
AnchorSideTop.Control = JvFilenameEdit1
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = JvFilenameEdit1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 263
|
||||||
|
Height = 23
|
||||||
|
Top = 73
|
||||||
|
Width = 49
|
||||||
|
Alignment = taRightJustify
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
MaxValue = 255
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
object JvId3v11: TJvID3v1
|
||||||
|
Active = False
|
||||||
|
left = 184
|
||||||
|
top = 112
|
||||||
|
end
|
||||||
|
object ActionList1: TActionList
|
||||||
|
Images = ImageList1
|
||||||
|
left = 104
|
||||||
|
top = 112
|
||||||
|
object actSave: TAction
|
||||||
|
Caption = 'Save'
|
||||||
|
ImageIndex = 0
|
||||||
|
OnExecute = actSaveExecute
|
||||||
|
end
|
||||||
|
object actRefresh: TAction
|
||||||
|
Caption = 'Refresh'
|
||||||
|
ImageIndex = 2
|
||||||
|
OnExecute = actRefreshExecute
|
||||||
|
end
|
||||||
|
object actErase: TAction
|
||||||
|
Caption = 'Erase'
|
||||||
|
ImageIndex = 1
|
||||||
|
OnExecute = actEraseExecute
|
||||||
|
end
|
||||||
|
object actExit: TAction
|
||||||
|
Caption = 'Exit'
|
||||||
|
ImageIndex = 3
|
||||||
|
OnExecute = actExitExecute
|
||||||
|
end
|
||||||
|
object actOnTop: TAction
|
||||||
|
Caption = 'On Top'
|
||||||
|
Checked = True
|
||||||
|
ImageIndex = 5
|
||||||
|
OnExecute = actOnTopExecute
|
||||||
|
end
|
||||||
|
object actAbout: TAction
|
||||||
|
Caption = 'About'
|
||||||
|
ImageIndex = 4
|
||||||
|
OnExecute = actAboutExecute
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object ImageList1: TImageList
|
||||||
|
Height = 20
|
||||||
|
Width = 20
|
||||||
|
left = 72
|
||||||
|
top = 32
|
||||||
|
Bitmap = {
|
||||||
|
4C69060000001400000014000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000FF0000
|
||||||
|
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF000000FF000000000000000000000000000000000000
|
||||||
|
000000000000000000FF52B5F7FF52B5F7FF000000FFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF52B5F7FF52B5F7FF0000
|
||||||
|
00FFD6A58CFF00000000000000000000000000000000000000FF52B5F7FF009C
|
||||||
|
FFFF000000FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBD
|
||||||
|
D6FF000000FF009CFFFF00639CFF000000FFC6948CFF00000000000000000000
|
||||||
|
000000000000000000FF52B5F7FF009CFFFF000000FFDEBDD6FFDEBDD6FFDEBD
|
||||||
|
D6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FF000000FF009CFFFF00639CFF0000
|
||||||
|
00FFC6948CFF00000000000000000000000000000000000000FF52B5F7FF009C
|
||||||
|
FFFF000000FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBD
|
||||||
|
D6FF000000FF009CFFFF00639CFF000000FFC6948CFF00000000000000000000
|
||||||
|
000000000000000000FF52B5F7FF009CFFFF000000FFDEBDD6FFDEBDD6FFDEBD
|
||||||
|
D6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FF000000FF009CFFFF00639CFF0000
|
||||||
|
00FFC6948CFF00000000000000000000000000000000000000FF52B5F7FF009C
|
||||||
|
FFFF000000FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBD
|
||||||
|
D6FF000000FF009CFFFF00639CFF000000FFC6948CFF00000000000000000000
|
||||||
|
000000000000000000FF52B5F7FF009CFFFF000000FFDEBDD6FFDEBDD6FFDEBD
|
||||||
|
D6FFDEBDD6FFDEBDD6FFDEBDD6FFDEBDD6FF000000FF009CFFFF00639CFF0000
|
||||||
|
00FFC6948CFF00000000000000000000000000000000000000FF52B5F7FF009C
|
||||||
|
FFFF009CFFFF000000FF000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF52B5F7FF009CFFFF00639CFF000000FFC6948CFF00000000000000000000
|
||||||
|
000000000000000000FF52B5F7FF009CFFFF009CFFFF009CFFFF009CFFFF009C
|
||||||
|
FFFF009CFFFF009CFFFF009CFFFF009CFFFF009CFFFF009CFFFF00639CFF0000
|
||||||
|
00FFC6948CFF00000000000000000000000000000000000000FF52B5F7FF009C
|
||||||
|
FFFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF009CFFFF00639CFF000000FFC6948CFF00000000000000000000
|
||||||
|
000000000000000000FF52B5F7FF009CFFFF000000FFDEBDD6FFDEBDD6FFFFFF
|
||||||
|
FFFFDEBDD6FFDEBDD6FFBDBDBDFFBDBDBDFF000000FF009CFFFF00639CFF0000
|
||||||
|
00FFC6948CFF00000000000000000000000000000000000000FF52B5F7FF009C
|
||||||
|
FFFF000000FFDEBDD6FFDEBDD6FFFFFFFFFFDEBDD6FFDEBDD6FFBDBDBDFFBDBD
|
||||||
|
BDFF000000FF009CFFFF00639CFF000000FFC6948CFF00000000000000000000
|
||||||
|
00000000000000000000000000FF00639CFF000000FFDEBDD6FFDEBDD6FFFFFF
|
||||||
|
FFFFDEBDD6FFDEBDD6FFBDBDBDFFBDBDBDFF000000FF00639CFF00639CFF0000
|
||||||
|
00FFC6948CFF0000000000000000000000000000000000000000000000000000
|
||||||
|
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF000000FFC6948CFF0000000000000000000000000000
|
||||||
|
0000000000000000000000000000D6A58CFFC6948CFFC6948CFFC6948CFFC694
|
||||||
|
8CFFC6948CFFC6948CFFC6948CFFC6948CFFC6948CFFC6948CFFC6948CFF0000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000FF000000FF000000FF000000FFBDBD
|
||||||
|
BDFFFFFFFFFFBDBDBDFFBDBDBDFF000000FF000000FF000000FF000000FF0000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00FFBDBDBDFFFFFFFFFFFFFFFFFFBDBDBDFFBDBDBDFFC6948CFFC6948CFF9C8C
|
||||||
|
6BFF9C8C6BFF9C8C6BFF000000FF9C8C6BFF0000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF9C8C
|
||||||
|
6BFF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF9C8C6BFF9C8C6BFF9C8C6BFF9C8C6BFF9C8C6BFF9C8C6BFF9C8C
|
||||||
|
6BFF9C8C6BFF000000FF9C8C6BFF9C8C6BFF0000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000FFBDBDBDFFFFFFFFFFC694
|
||||||
|
8CFFFFEFDEFF9C8C6BFFC6948CFF424242FF9C8C6BFF000000FF9C8C6BFF9C8C
|
||||||
|
6BFF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FFBDBDBDFFFFFFFFFFBDBDBDFFFFEFDEFFC6948CFFBDBDBDFF6363
|
||||||
|
63FFD6A58CFF000000FF9C8C6BFF9C8C6BFF0000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000FFBDBDBDFFFFFFFFFFBDBD
|
||||||
|
BDFFFFEFDEFFC6948CFFBDBDBDFF636363FFD6A58CFF000000FF9C8C6BFF9C8C
|
||||||
|
6BFF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FFBDBDBDFFFFFFFFFFBDBDBDFFFFEFDEFFC6948CFFBDBDBDFF6363
|
||||||
|
63FFD6A58CFF000000FF9C8C6BFF9C8C6BFF0000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000FFBDBDBDFFFFFFFFFFBDBD
|
||||||
|
BDFFFFEFDEFFC6948CFFBDBDBDFF636363FFD6A58CFF000000FF9C8C6BFF9C8C
|
||||||
|
6BFF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FFBDBDBDFFFFFFFFFFBDBDBDFFFFEFDEFFC6948CFFBDBDBDFF6363
|
||||||
|
63FFD6A58CFF000000FF9C8C6BFF9C8C6BFF0000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000FFBDBDBDFFFFFFFFFFFFEF
|
||||||
|
DEFFBDBDBDFFBDBDBDFFC6948CFFC6948CFF636363FF000000FF9C8C6BFF9C8C
|
||||||
|
6BFF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FFBDBDBDFFFFFFFFFFBDBDBDFFBDBDBDFFC6948CFFC6948CFF6363
|
||||||
|
63FF636363FF000000FF9C8C6BFF9C8C6BFF0000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF000000FF000000FF000000FF000000FF9C8C6BFF9C8C
|
||||||
|
6BFF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000009C8C6BFF9C8C6BFF9C8C6BFF9C8C6BFF9C8C6BFF9C8C6BFF9C8C
|
||||||
|
6BFF9C8C6BFF9C8C6BFF9C8C6BFF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000009C8C6BFFAD0000FFAD00
|
||||||
|
00FFAD0000FFAD0000FFAD0000FF000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000000000000000FF2929FF000000000000
|
||||||
|
00009C8C6BFFFF2929FF940000FF940000FF940000FF8C0000FF9C0000FFFF29
|
||||||
|
29FFFF2929FFFF2929FF00000000000000000000000000000000000000000000
|
||||||
|
0000000000007B0000FF00000000FF2929FF9C0000FFA50000FF8C0000FF8400
|
||||||
|
00FF840000FF840000FF840000FF7B0000FF7B0000FFFF2929FF9C8C6BFF0000
|
||||||
|
00000000000000000000000000000000000000000000840000FFA50000FFAD00
|
||||||
|
00FF9C0000FF840000FF840000FF8C0000FF840000FF840000FF8C0000FF8400
|
||||||
|
00FF840000FF840000FF842910FF9C8C6BFF0000000000000000000000000000
|
||||||
|
0000000000008C0000FF9C0000FFAD0000FF9C0000FF840808FF9C8C6BFF9C8C
|
||||||
|
6BFF9C8C6BFF9C8C6BFF9C8C6BFF8C0000FF8C0000FF8C0000FF842908FF9C8C
|
||||||
|
6BFF00000000000000000000000000000000000000008C0000FF940008FF9C08
|
||||||
|
08FF940000FF8C1810FF9C8C6BFF000000000000000000000000000000009C8C
|
||||||
|
6BFF7B1000FF840000FF840000FF942929FF0000000000000000000000000000
|
||||||
|
0000000000007B0000FF840000FF840000FF840000FF8C0000FFFF2929FF0000
|
||||||
|
000000000000000000000000000000000000944A42FF8C3121FF942929FF8C29
|
||||||
|
18FF9C8C6BFF00000000000000000000000000000000940018FF8C0808FF8C08
|
||||||
|
08FF8C0808FF8C0000FF840000FF000000000000000000000000000000000000
|
||||||
|
0000000000009C8C6BFF9C8C6BFF9C8C6BFF9C8C6BFF00000000000000000000
|
||||||
|
000000000000000000009C8C6BFF9C8C6BFF9C8C6BFF9C8C6BFF9C8C6BFF9C8C
|
||||||
|
6BFF0000000000000000840000FF8C0010FF8C0810FF8C0808FF840808FF8C08
|
||||||
|
10FF0000000000000000000000000000000000000000A50000FFA50000FFA500
|
||||||
|
00FFFF2929FF0000000000000000000000000000000000000000000000009C00
|
||||||
|
00FF9C0000FF940000FF840000FF840000FF9C8C6BFF00000000000000000000
|
||||||
|
000000000000A50000FF940008FF730000FFA50021FFFF2929FF000000000000
|
||||||
|
0000000000000000000000000000BD0018FFAD0000FFA50808FF840000FF8408
|
||||||
|
00FF9C8C6BFF0000000000000000000000000000000000000000A50000FF7B00
|
||||||
|
00FF8C0000FFA50000FF0000000000000000000000000000000000000000A500
|
||||||
|
08FF9C0000FF940000FF840000FF8C0800FF9C8C6BFF00000000000000000000
|
||||||
|
00000000000000000000A50000FF7B0000FF8C0008FF8C0000FFA50000FFAD00
|
||||||
|
00FFA50000FFAD0000FFA50000FF8C0000FF840000FF8C0000FF8C0000FF8C00
|
||||||
|
00FF9C8C6BFF00000000000000000000000000000000000000009C8C6BFF8C00
|
||||||
|
00FF8C0000FF840000FF8C0000FF8C0000FF8C0000FF8C0000FF8C0000FF8400
|
||||||
|
00FF840000FF9C8C6BFF9C8C6BFF8C0000FF9C8C6BFF00000000000000000000
|
||||||
|
00000000000000000000000000009C8C6BFF9C8C6BFF8C0000FF840000FF8400
|
||||||
|
00FF840000FF840000FF840000FF8C0000FF9C8C6BFF9C8C6BFF9C8C6BFF9C8C
|
||||||
|
6BFF9C8C6BFF0000000000000000000000000000000000000000000000000000
|
||||||
|
00009C8C6BFF9C8C6BFF8C0000FF8C0000FF8C0000FF8C0000FF8C0000FF9C8C
|
||||||
|
6BFF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000009C8C6BFF9C8C6BFF9C8C
|
||||||
|
6BFF9C8C6BFF9C8C6BFF9C8C6BFF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000FF00FF
|
||||||
|
00FF00FF00FF00FF00FF00FF00FF000000FF0000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000840000FF840000FF840000FF840000FF840000FF840000FF840000FF8400
|
||||||
|
00FF840000FF840000FF00000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000840000FFFF00FFFF840084FFFF00
|
||||||
|
FFFF000000FFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFF840000FF000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000840000FF840084FFFF00FFFF840084FF000000FFFFFFFFFFFFFF00FFFFFF
|
||||||
|
FFFFFFFF00FF840000FF00000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000840000FFFF00FFFF840084FFFF00
|
||||||
|
FFFF000000FFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFF840000FF000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000840000FF840084FFFF00FFFF840084FF000000FFFFFFFFFFFFFF00FFFFFF
|
||||||
|
FFFFFFFF00FF840000FF00000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000840000FFFF00FFFF840084FFFF00
|
||||||
|
FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF840000FF000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000840000FF840084FFFF00FFFF840084FF000000FFFFFFFFFFFFFF00FFFFFF
|
||||||
|
FFFFFFFF00FF840000FF00000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000840000FFFF00FFFF840084FFFF00
|
||||||
|
FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF840000FF000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000840000FF840084FFFF00FFFF840084FF000000FFFFFFFFFFFFFF00FFFFFF
|
||||||
|
FFFFFFFF00FF840000FF00000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000840000FFFF00FFFF840084FFFF00
|
||||||
|
FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF840000FF000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000840000FF840084FFFF00FFFF840084FF000000FFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFF840000FF00000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000840000FFFF00FFFF840084FF0000
|
||||||
|
00FF000000FFC6C6C6FFFFFFFFFFFFFFFFFFFFFFFFFF840000FF000000000000
|
||||||
|
0000000000000000000000000000840000FF840000FF840000FF840000FF8400
|
||||||
|
00FF840000FF000000FF000000FF848484FF848484FF848484FFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFF840000FF840000FF840000FF840000FF840000FF840000FF8484
|
||||||
|
84FF848484FF848484FF848484FF848484FF848484FF848484FF848484FF8484
|
||||||
|
84FF848484FF848484FFC6C6C6FFC6C6C6FFFFFFFFFFC6C6C6FFFFFFFFFFC6C6
|
||||||
|
C6FF848484FF848484FF848484FF848484FF848484FF848484FF848484FF8484
|
||||||
|
84FF848484FF848484FF848484FF848484FF848484FF848484FF848484FFFFFF
|
||||||
|
FFFFC6C6C6FFFFFFFFFFC6C6C6FFFFFFFFFFC6C6C6FF848484FF848484FF0000
|
||||||
|
0000C6C6C6FFC6C6C6FFC6C6C6FFC6C6C6FFC6C6C6FFC6C6C6FFC6C6C6FFC6C6
|
||||||
|
C6FFC6C6C6FFC6C6C6FFC6C6C6FFC6C6C6FFC6C6C6FFC6C6C6FFC6C6C6FFC6C6
|
||||||
|
C6FFC6C6C6FFC6C6C6FFC6C6C6FF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFBD00
|
||||||
|
00FFBD0000FFBD0000FFBD0000FFFFFFFFFF0000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000FFFFFFFFBD0000FFBD0000FFBD0000FFBD0000FFBD0000FFBD0000FFBD00
|
||||||
|
00FFBDBD00FF0000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000FFFFFFFFBD0000FFBD0000FF00BDBDFF00FF
|
||||||
|
FFFF00FFFFFF00FFFFFF00FFFFFFBD0000FFBD0000FFBD0000FF000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000FFFFFFFFBD00
|
||||||
|
00FFBD0000FF00BDBDFF00FFFFFF00BDBDFF00BDBDFF00BDBDFF00FFFFFF00BD
|
||||||
|
BDFFBD0000FFBD0000FF848484FF000000000000000000000000000000000000
|
||||||
|
00000000000000000000FFFFFFFFBD0000FFBD0000FF00BDBDFF00FFFFFFBD00
|
||||||
|
00FFBD0000FFBD0000FF00FFFFFF00BDBDFFBD0000FFBD0000FF848484FF0000
|
||||||
|
00000000000000000000000000000000000000000000FFFFFFFFBD0000FFBD00
|
||||||
|
00FFBD0000FFBD0000FFBD0000FFBD0000FF00BDBDFF00FFFFFF00FFFFFFBD00
|
||||||
|
00FFBD0000FFBD0000FFBD0000FF848484FF0000000000000000000000000000
|
||||||
|
000000000000FFFFFFFFBD0000FFBD0000FFBD0000FFBD0000FFBD0000FF00BD
|
||||||
|
BDFF00FFFFFF00FFFFFF00BDBDFFBD0000FFBD0000FFBD0000FFBD0000FF8484
|
||||||
|
84FF0000000000000000000000000000000000000000FFFFFFFFBD0000FFBD00
|
||||||
|
00FFBD0000FFBD0000FFBD0000FF00FFFFFF00FFFFFF00BDBDFFBD0000FFBD00
|
||||||
|
00FFBD0000FFBD0000FFBD0000FF848484FF0000000000000000000000000000
|
||||||
|
000000000000FFFFFFFFBD0000FFBD0000FFBD0000FFBD0000FFBD0000FF00BD
|
||||||
|
BDFF00FFFFFF00BDBDFFBD0000FFBD0000FFBD0000FFBD0000FFBD0000FF8484
|
||||||
|
84FF000000000000000000000000000000000000000000000000FFFFFFFFBD00
|
||||||
|
00FFBD0000FFBD0000FFBD0000FF00BDBDFF00FFFFFF00BDBDFFBD0000FFBD00
|
||||||
|
00FFBD0000FFBD0000FF848484FF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000BDBD00FFBD0000FFBD0000FFBD0000FF00FF
|
||||||
|
FFFF00FFFFFF00FFFFFFBD0000FFBD0000FFBD0000FFBD0000FF000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000BD0000FFBD0000FFBD0000FF00BDBDFF00FFFFFF00BDBDFFBD0000FFBD00
|
||||||
|
00FFBD0000FFBD0000FF00000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000000000000000848484FF848484FFBD00
|
||||||
|
00FFBD0000FFBD0000FFBD0000FF848484FF0000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000848484FF848484FF848484FF848484FF0000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000F7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CE
|
||||||
|
A5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7FFFFFF000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000F7CEA5FFF7CE
|
||||||
|
A5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CE
|
||||||
|
A5FFF7CEA5FFF7CEA5FF00000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000F7CEA5FFF7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFF7FF
|
||||||
|
FFFFF7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFF7CEA5FF000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000F7FFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFF7CEA5FF00000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CEA5FF00000000FFFF
|
||||||
|
FFFFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CE
|
||||||
|
A5FFF7CEA5FFF7CEA5FFF7CEA5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFF7CEA5FF00000000F7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CE
|
||||||
|
A5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CEA5FF00000000F7CE
|
||||||
|
A5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFC6A563FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFC6A563FF00000000F7CEA5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFC68421FFC66300FFC66300FFC66300FFC66300FFC663
|
||||||
|
00FFC66300FFC66300FFC66300FFC66300FFC66300FFC66300FFC68442FFF7CE
|
||||||
|
A5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC68400FFC684
|
||||||
|
00FFC68400FFC68400FFC68400FFC68400FFC68400FFC68400FFC68400FFC684
|
||||||
|
00FFC68400FFC68400FFC66300FFF7CEA5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFF7CEA5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC68421FFF7CE
|
||||||
|
A5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6C684FFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFC68421FFF7CEA5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFC6C684FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC68421FFF7CE
|
||||||
|
A5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFC6C684FFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFF7FFFFFFF7CEA5FFC68421FF000000000000000000000000000000000000
|
||||||
|
00000000000000000000C6C684FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CEA5FFF7CEA5FFC68421FF0000
|
||||||
|
0000000000000000000000000000000000000000000000000000C6C684FFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7CE
|
||||||
|
A5FFF7CEA5FFF7CEA5FFC68421FF000000000000000000000000000000000000
|
||||||
|
00000000000000000000C6C684FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFF7FFFFFFF7CEA5FFF7CEA5FFF7CEA5FFF7CEA5FFC68421FF0000
|
||||||
|
0000000000000000000000000000000000000000000000000000C68442FFC6A5
|
||||||
|
84FFC6A584FFC6A584FFC6A584FFC6A563FFC6A563FFC6A563FFC6A563FFC6A5
|
||||||
|
63FFC6A563FFC6A563FFC66300FF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
254
components/jvcllaz/examples/JvID3v1/JvID3v1MainFormU.pas
Normal file
254
components/jvcllaz/examples/JvID3v1/JvID3v1MainFormU.pas
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
{******************************************************************
|
||||||
|
|
||||||
|
JEDI-VCL Demo
|
||||||
|
|
||||||
|
Copyright (C) 2002 Project JEDI
|
||||||
|
|
||||||
|
Original author:
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
|
||||||
|
You may retrieve the latest version of this file at the JEDI-JVCL
|
||||||
|
home page, located at http://jvcl.delphi-jedi.org
|
||||||
|
|
||||||
|
The contents of this file are used with permission, subject to
|
||||||
|
the Mozilla Public License Version 1.1 (the "License"); you may
|
||||||
|
not use this file except in compliance with the License. You may
|
||||||
|
obtain a copy of the License at
|
||||||
|
http://www.mozilla.org/MPL/MPL-1_1Final.html
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on an
|
||||||
|
"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||||
|
implied. See the License for the specific language governing
|
||||||
|
rights and limitations under the License.
|
||||||
|
|
||||||
|
******************************************************************}
|
||||||
|
|
||||||
|
unit JvID3v1MainFormU;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
//Windows, Messages,
|
||||||
|
SysUtils, Classes, Graphics, Controls, Forms,
|
||||||
|
Dialogs, //JvComponent,
|
||||||
|
StdCtrls, //Mask, //JvToolEdit,
|
||||||
|
JvId3v1, ComCtrls, //ToolWin,
|
||||||
|
ActnList, //ImgList,
|
||||||
|
EditBtn, Spin;
|
||||||
|
{
|
||||||
|
JvBaseDlg, JvTipOfDay, JvBalloonHint, JvMaskEdit, JvSpin, JvJVCLAboutForm,
|
||||||
|
JvExMask;
|
||||||
|
}
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TJvID3v1MainForm }
|
||||||
|
|
||||||
|
TJvID3v1MainForm = class(TForm)
|
||||||
|
JvFilenameEdit1: TFilenameEdit;
|
||||||
|
edtTitle: TEdit;
|
||||||
|
JvId3v11: TJvId3v1;
|
||||||
|
edtAlbum: TEdit;
|
||||||
|
edtArtist: TEdit;
|
||||||
|
edtYear: TEdit;
|
||||||
|
edtComment: TEdit;
|
||||||
|
cmbGenre: TComboBox;
|
||||||
|
lblArtist: TLabel;
|
||||||
|
lblAlbum: TLabel;
|
||||||
|
lblYear: TLabel;
|
||||||
|
lblComment: TLabel;
|
||||||
|
lblGenre: TLabel;
|
||||||
|
ActionList1: TActionList;
|
||||||
|
actSave: TAction;
|
||||||
|
actRefresh: TAction;
|
||||||
|
actErase: TAction;
|
||||||
|
actExit: TAction;
|
||||||
|
actOnTop: TAction;
|
||||||
|
actAbout: TAction;
|
||||||
|
ImageList1: TImageList;
|
||||||
|
ToolBar1: TToolBar;
|
||||||
|
ToolButton1: TToolButton;
|
||||||
|
ToolButton2: TToolButton;
|
||||||
|
ToolButton3: TToolButton;
|
||||||
|
ToolButton4: TToolButton;
|
||||||
|
ToolButton5: TToolButton;
|
||||||
|
ToolButton6: TToolButton;
|
||||||
|
lblHasTag: TLabel;
|
||||||
|
// JvTipOfDay1: TJvTipOfDay;
|
||||||
|
// JvJVCLAboutComponent1: TJvJVCLAboutComponent;
|
||||||
|
// JvBalloonHint1: TJvBalloonHint;
|
||||||
|
sedTrack: TSpinEdit;
|
||||||
|
lblTitle: TLabel;
|
||||||
|
lblTrack: TLabel;
|
||||||
|
procedure actAboutExecute(Sender: TObject);
|
||||||
|
procedure actSaveExecute(Sender: TObject);
|
||||||
|
procedure actEraseExecute(Sender: TObject);
|
||||||
|
procedure actExitExecute(Sender: TObject);
|
||||||
|
procedure actRefreshExecute(Sender: TObject);
|
||||||
|
procedure actOnTopExecute(Sender: TObject);
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure FormDropFiles(Sender: TObject; const FileNames: array of String);
|
||||||
|
procedure JvFilenameEdit1AcceptFileName(Sender: TObject; var Value: String);
|
||||||
|
procedure JvFilenameEdit1KeyPress(Sender: TObject; var Key: Char);
|
||||||
|
public
|
||||||
|
procedure ChangeFileNameTo(S: string);
|
||||||
|
procedure FillGenres(Strings: TStrings);
|
||||||
|
procedure UpdateCtrls;
|
||||||
|
procedure UpdateCaption;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
JvID3v1MainForm: TJvID3v1MainForm;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
JvId3v2Types;
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.ChangeFileNameTo(S: string);
|
||||||
|
begin
|
||||||
|
JvFilenameEdit1.Text := S;
|
||||||
|
JvFilenameEdit1.Hint := S;
|
||||||
|
JvId3v11.FileName := S;
|
||||||
|
JvId3v11.Open;
|
||||||
|
UpdateCtrls;
|
||||||
|
UpdateCaption;
|
||||||
|
FocusControl(edtTitle);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.FillGenres(Strings: TStrings);
|
||||||
|
begin
|
||||||
|
ID3_Genres(Strings,true);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.actSaveExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if JvId3v11.FileName = '' then
|
||||||
|
// JvBalloonHint1.ActivateHint(JvFilenameEdit1, 'First select a mp3 file', ikError, 'Error', 5000)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
JvId3v11.SongName := edtTitle.Text;
|
||||||
|
JvId3v11.Artist := edtArtist.Text;
|
||||||
|
JvId3v11.Album := edtAlbum.Text;
|
||||||
|
JvId3v11.Year := edtYear.Text;
|
||||||
|
JvId3v11.GenreAsString := cmbGenre.Text;
|
||||||
|
JvId3v11.Comment := edtComment.Text;
|
||||||
|
JvId3v11.AlbumTrack := sedTrack.Value; //AsInteger;
|
||||||
|
|
||||||
|
if JvId3v11.Commit then
|
||||||
|
UpdateCaption
|
||||||
|
else
|
||||||
|
{
|
||||||
|
JvBalloonHint1.ActivateHint(ToolButton2, 'Could not save changes.'#13+
|
||||||
|
'The file is probably opened by another application.', ikError, 'Error')}
|
||||||
|
;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.actEraseExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if JvId3v11.FileName = '' then
|
||||||
|
//JvBalloonHint1.ActivateHint(JvFilenameEdit1, 'First select a mp3 file', ikError, 'Error', 5000)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
JvId3v11.Erase;
|
||||||
|
UpdateCtrls;
|
||||||
|
UpdateCaption;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.actExitExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Close;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.actRefreshExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if JvId3v11.FileName = '' then
|
||||||
|
//JvBalloonHint1.ActivateHint(JvFilenameEdit1, 'First select a mp3 file', ikError, 'Error', 5000)
|
||||||
|
else
|
||||||
|
ChangeFileNameTo(JvId3v11.FileName);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.actOnTopExecute(Sender: TObject);
|
||||||
|
const
|
||||||
|
CStyle: array[Boolean] of TFormStyle = (fsNormal, fsStayOnTop);
|
||||||
|
begin
|
||||||
|
//JvDragDrop1.AcceptDrag := False;
|
||||||
|
actOnTop.Checked := not actOnTop.Checked;
|
||||||
|
FormStyle := CStyle[actOnTop.Checked];
|
||||||
|
//JvDragDrop1.AcceptDrag := True;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
{ This is put in the OnCreate and not in the OnShow event, because we change
|
||||||
|
Form1.FormStyle at run-time that will trigger the OnShow event }
|
||||||
|
FillGenres(cmbGenre.Items);
|
||||||
|
UpdateCaption;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.FormDropFiles(Sender: TObject;
|
||||||
|
const FileNames: array of String);
|
||||||
|
begin
|
||||||
|
if Length(FileNames) > 0 then
|
||||||
|
ChangeFileNameTo(FileNames[0]);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.JvFilenameEdit1AcceptFileName(Sender: TObject;
|
||||||
|
var Value: String);
|
||||||
|
begin
|
||||||
|
ChangeFileNameTo(Value);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.JvFilenameEdit1KeyPress(Sender: TObject; var Key: Char);
|
||||||
|
begin
|
||||||
|
if Key = #13 then
|
||||||
|
begin
|
||||||
|
if JvFilenameEdit1.Text = '' then
|
||||||
|
//JvBalloonHint1.ActivateHint(JvFilenameEdit1, 'Empty strings are no file names', ikError, 'Error', 5000)
|
||||||
|
else
|
||||||
|
ChangeFileNameTo(JvFilenameEdit1.FileName);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.UpdateCaption;
|
||||||
|
const
|
||||||
|
CHasTagStr: array[Boolean] of string = ('No tag', 'Has Tag');
|
||||||
|
CHasTagColor: array[Boolean] of TColor = (clRed, clBlack);
|
||||||
|
var
|
||||||
|
HasTag: Boolean;
|
||||||
|
begin
|
||||||
|
if JvId3v11.FileName > '' then
|
||||||
|
begin
|
||||||
|
{ Store TagPresent in variabele to prevent double checks whether the file
|
||||||
|
has a tag }
|
||||||
|
HasTag := JvId3v11.HasTag;
|
||||||
|
lblHasTag.Font.Color := CHasTagColor[HasTag];
|
||||||
|
lblHasTag.Caption := CHasTagStr[HasTag];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
lblHasTag.Caption := '';
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.UpdateCtrls;
|
||||||
|
begin
|
||||||
|
edtTitle.Text := JvId3v11.SongName;
|
||||||
|
edtAlbum.Text := JvId3v11.Album;
|
||||||
|
edtArtist.Text := JvId3v11.Artist;
|
||||||
|
edtYear.Text := JvId3v11.Year;
|
||||||
|
edtComment.Text := JvId3v11.Comment;
|
||||||
|
sedTrack.Value := JvId3v11.AlbumTrack;
|
||||||
|
cmbGenre.ItemIndex := cmbGenre.Items.IndexOfObject(TObject(PtrInt(JvId3v11.Genre)));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v1MainForm.actAboutExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
//JvJVCLAboutComponent1.Execute;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
91
components/jvcllaz/examples/JvID3v2/JvID3v2Demo.lpi
Normal file
91
components/jvcllaz/examples/JvID3v2/JvID3v2Demo.lpi
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<General>
|
||||||
|
<Flags>
|
||||||
|
<UseDefaultCompilerOptions Value="True"/>
|
||||||
|
</Flags>
|
||||||
|
<SessionStorage Value="InProjectDir"/>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<Title Value="JvID3v2Demo"/>
|
||||||
|
<Scaled Value="True"/>
|
||||||
|
<ResourceType Value="res"/>
|
||||||
|
<UseXPManifest Value="True"/>
|
||||||
|
<XPManifest>
|
||||||
|
<DpiAware Value="True"/>
|
||||||
|
</XPManifest>
|
||||||
|
<Icon Value="0"/>
|
||||||
|
</General>
|
||||||
|
<BuildModes Count="1">
|
||||||
|
<Item1 Name="Default" Default="True"/>
|
||||||
|
</BuildModes>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<FormatVersion Value="2"/>
|
||||||
|
<Modes Count="0"/>
|
||||||
|
</RunParams>
|
||||||
|
<RequiredPackages Count="2">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="JvMMLazR"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
</Item2>
|
||||||
|
</RequiredPackages>
|
||||||
|
<Units Count="3">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="JvID3v2Demo.lpr"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="JvID3v2EditFormU.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="JvID3v2EditForm"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
</Unit1>
|
||||||
|
<Unit2>
|
||||||
|
<Filename Value="JvID3v2MainFormU.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="JvID3v2MainForm"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
</Unit2>
|
||||||
|
</Units>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="JvID3v2Demo"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<Linking>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Debugging>
|
||||||
|
<Exceptions Count="3">
|
||||||
|
<Item1>
|
||||||
|
<Name Value="EAbort"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Name Value="ECodetoolError"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Name Value="EFOpenError"/>
|
||||||
|
</Item3>
|
||||||
|
</Exceptions>
|
||||||
|
</Debugging>
|
||||||
|
</CONFIG>
|
16
components/jvcllaz/examples/JvID3v2/JvID3v2Demo.lpr
Normal file
16
components/jvcllaz/examples/JvID3v2/JvID3v2Demo.lpr
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
program JvID3v2Demo;
|
||||||
|
|
||||||
|
uses
|
||||||
|
Interfaces,
|
||||||
|
Forms,
|
||||||
|
JvID3v2MainFormU in 'JvID3v2MainFormU.pas' {JvID3v2MainForm},
|
||||||
|
JvID3v2EditFormU in 'JvID3v2EditFormU.pas' {JvID3v2EditForm};
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
Application.Scaled:=True;
|
||||||
|
Application.Initialize;
|
||||||
|
Application.CreateForm(TJvID3v2MainForm, JvID3v2MainForm);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
910
components/jvcllaz/examples/JvID3v2/JvID3v2EditFormU.lfm
Normal file
910
components/jvcllaz/examples/JvID3v2/JvID3v2EditFormU.lfm
Normal file
@ -0,0 +1,910 @@
|
|||||||
|
object JvID3v2EditForm: TJvID3v2EditForm
|
||||||
|
Left = 345
|
||||||
|
Height = 384
|
||||||
|
Top = 248
|
||||||
|
Width = 510
|
||||||
|
BorderStyle = bsDialog
|
||||||
|
Caption = 'JvID3v2EditForm'
|
||||||
|
ClientHeight = 384
|
||||||
|
ClientWidth = 510
|
||||||
|
Color = clBtnFace
|
||||||
|
Font.Color = clWindowText
|
||||||
|
OnCreate = FormCreate
|
||||||
|
Position = poMainFormCenter
|
||||||
|
LCLVersion = '1.9.0.0'
|
||||||
|
object PageControl1: TPageControl
|
||||||
|
Left = 121
|
||||||
|
Height = 344
|
||||||
|
Top = 40
|
||||||
|
Width = 389
|
||||||
|
TabStop = False
|
||||||
|
ActivePage = tshLyrics
|
||||||
|
Align = alClient
|
||||||
|
TabIndex = 1
|
||||||
|
TabOrder = 0
|
||||||
|
object tshWinampTags: TTabSheet
|
||||||
|
Caption = 'tshWinampTags'
|
||||||
|
ClientHeight = 316
|
||||||
|
ClientWidth = 381
|
||||||
|
TabVisible = False
|
||||||
|
object lblTitle: TLabel
|
||||||
|
AnchorSideTop.Control = edtTitle
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 51
|
||||||
|
Height = 15
|
||||||
|
Top = 8
|
||||||
|
Width = 26
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = '&Title:'
|
||||||
|
FocusControl = edtTitle
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblArtist: TLabel
|
||||||
|
AnchorSideTop.Control = edtArtist
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 46
|
||||||
|
Height = 15
|
||||||
|
Top = 35
|
||||||
|
Width = 31
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = '&Artist:'
|
||||||
|
FocusControl = edtArtist
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblAlbum: TLabel
|
||||||
|
AnchorSideTop.Control = edtAlbum
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 38
|
||||||
|
Height = 15
|
||||||
|
Top = 62
|
||||||
|
Width = 39
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = 'Al&bum:'
|
||||||
|
FocusControl = edtAlbum
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblYear: TLabel
|
||||||
|
AnchorSideTop.Control = edtYear
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 52
|
||||||
|
Height = 15
|
||||||
|
Top = 89
|
||||||
|
Width = 25
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = '&Year:'
|
||||||
|
FocusControl = edtYear
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblComposer: TLabel
|
||||||
|
AnchorSideTop.Control = edtComposer
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 19
|
||||||
|
Height = 15
|
||||||
|
Top = 189
|
||||||
|
Width = 58
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = 'Co&mposer:'
|
||||||
|
FocusControl = edtComposer
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblOrigArtist: TLabel
|
||||||
|
AnchorSideTop.Control = edtOrigArtist
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 17
|
||||||
|
Height = 15
|
||||||
|
Top = 216
|
||||||
|
Width = 60
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = '&Orig. Artist:'
|
||||||
|
FocusControl = edtOrigArtist
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblCopyright: TLabel
|
||||||
|
AnchorSideTop.Control = edtCopyright
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 21
|
||||||
|
Height = 15
|
||||||
|
Top = 243
|
||||||
|
Width = 56
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = 'Co&pyright:'
|
||||||
|
FocusControl = edtCopyright
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblURL: TLabel
|
||||||
|
AnchorSideTop.Control = edtURL
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lblEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 53
|
||||||
|
Height = 15
|
||||||
|
Top = 270
|
||||||
|
Width = 24
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = '&URL:'
|
||||||
|
FocusControl = edtURL
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblEncodedBy: TLabel
|
||||||
|
AnchorSideLeft.Control = tshWinampTags
|
||||||
|
AnchorSideTop.Control = edtEncodedBy
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
Left = 12
|
||||||
|
Height = 15
|
||||||
|
Top = 297
|
||||||
|
Width = 65
|
||||||
|
BorderSpacing.Left = 12
|
||||||
|
Caption = '&Encoded by:'
|
||||||
|
FocusControl = edtEncodedBy
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblGenre: TLabel
|
||||||
|
AnchorSideLeft.Control = edtYear
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = lblYear
|
||||||
|
Left = 164
|
||||||
|
Height = 15
|
||||||
|
Top = 89
|
||||||
|
Width = 34
|
||||||
|
BorderSpacing.Left = 16
|
||||||
|
Caption = '&Genre:'
|
||||||
|
FocusControl = cmbGenre
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblComment: TLabel
|
||||||
|
AnchorSideTop.Control = memComment
|
||||||
|
AnchorSideRight.Control = lblEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 20
|
||||||
|
Height = 15
|
||||||
|
Top = 112
|
||||||
|
Width = 57
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = '&Comment:'
|
||||||
|
FocusControl = memComment
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object edtTitle: TEdit
|
||||||
|
AnchorSideLeft.Control = edtEncodedBy
|
||||||
|
AnchorSideTop.Control = tshWinampTags
|
||||||
|
AnchorSideRight.Control = edtEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 81
|
||||||
|
Height = 23
|
||||||
|
Top = 4
|
||||||
|
Width = 296
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object edtArtist: TEdit
|
||||||
|
AnchorSideLeft.Control = edtEncodedBy
|
||||||
|
AnchorSideTop.Control = edtTitle
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = edtEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 81
|
||||||
|
Height = 23
|
||||||
|
Top = 31
|
||||||
|
Width = 296
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
object edtAlbum: TEdit
|
||||||
|
AnchorSideLeft.Control = edtEncodedBy
|
||||||
|
AnchorSideTop.Control = edtArtist
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = edtEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 81
|
||||||
|
Height = 23
|
||||||
|
Top = 58
|
||||||
|
Width = 296
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
|
object edtYear: TEdit
|
||||||
|
AnchorSideLeft.Control = edtEncodedBy
|
||||||
|
AnchorSideTop.Control = edtAlbum
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
Left = 81
|
||||||
|
Height = 23
|
||||||
|
Top = 85
|
||||||
|
Width = 67
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
TabOrder = 3
|
||||||
|
end
|
||||||
|
object edtComposer: TEdit
|
||||||
|
AnchorSideLeft.Control = edtEncodedBy
|
||||||
|
AnchorSideTop.Control = memComment
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = edtEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 81
|
||||||
|
Height = 23
|
||||||
|
Top = 185
|
||||||
|
Width = 296
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
TabOrder = 6
|
||||||
|
end
|
||||||
|
object edtOrigArtist: TEdit
|
||||||
|
AnchorSideLeft.Control = edtEncodedBy
|
||||||
|
AnchorSideTop.Control = edtComposer
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = edtEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 81
|
||||||
|
Height = 23
|
||||||
|
Top = 212
|
||||||
|
Width = 296
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
TabOrder = 7
|
||||||
|
end
|
||||||
|
object edtCopyright: TEdit
|
||||||
|
AnchorSideLeft.Control = edtEncodedBy
|
||||||
|
AnchorSideTop.Control = edtOrigArtist
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = edtEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 81
|
||||||
|
Height = 23
|
||||||
|
Top = 239
|
||||||
|
Width = 296
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
TabOrder = 8
|
||||||
|
end
|
||||||
|
object edtURL: TEdit
|
||||||
|
AnchorSideLeft.Control = edtEncodedBy
|
||||||
|
AnchorSideTop.Control = edtCopyright
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = edtEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 81
|
||||||
|
Height = 23
|
||||||
|
Top = 266
|
||||||
|
Width = 296
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
TabOrder = 9
|
||||||
|
end
|
||||||
|
object edtEncodedBy: TEdit
|
||||||
|
AnchorSideLeft.Control = lblEncodedBy
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = edtURL
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = tshWinampTags
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 81
|
||||||
|
Height = 23
|
||||||
|
Top = 293
|
||||||
|
Width = 296
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
BorderSpacing.Bottom = 4
|
||||||
|
TabOrder = 10
|
||||||
|
end
|
||||||
|
object cmbGenre: TComboBox
|
||||||
|
AnchorSideLeft.Control = lblGenre
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = edtAlbum
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = edtEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 206
|
||||||
|
Height = 23
|
||||||
|
Top = 85
|
||||||
|
Width = 171
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
ItemHeight = 15
|
||||||
|
TabOrder = 4
|
||||||
|
end
|
||||||
|
object memComment: TMemo
|
||||||
|
AnchorSideLeft.Control = edtEncodedBy
|
||||||
|
AnchorSideTop.Control = edtYear
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = edtEncodedBy
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 81
|
||||||
|
Height = 69
|
||||||
|
Top = 112
|
||||||
|
Width = 296
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
Lines.Strings = (
|
||||||
|
''
|
||||||
|
)
|
||||||
|
TabOrder = 5
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object tshLyrics: TTabSheet
|
||||||
|
Caption = 'tshLyrics'
|
||||||
|
ClientHeight = 316
|
||||||
|
ClientWidth = 381
|
||||||
|
ImageIndex = 1
|
||||||
|
TabVisible = False
|
||||||
|
object lblLanguage: TLabel
|
||||||
|
AnchorSideLeft.Control = tshLyrics
|
||||||
|
AnchorSideTop.Control = cmbLanguage
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
Left = 4
|
||||||
|
Height = 15
|
||||||
|
Top = 8
|
||||||
|
Width = 55
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
Caption = 'Language:'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblDescription: TLabel
|
||||||
|
AnchorSideLeft.Control = memLyrics
|
||||||
|
AnchorSideTop.Control = edtDescription
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
Left = 4
|
||||||
|
Height = 15
|
||||||
|
Top = 240
|
||||||
|
Width = 63
|
||||||
|
Caption = 'Description:'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblWriter: TLabel
|
||||||
|
AnchorSideTop.Control = edtWriter
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
Left = 8
|
||||||
|
Height = 15
|
||||||
|
Top = 267
|
||||||
|
Width = 35
|
||||||
|
Caption = 'Writer:'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object cmbLanguage: TComboBox
|
||||||
|
AnchorSideLeft.Control = lblLanguage
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = tshLyrics
|
||||||
|
Left = 67
|
||||||
|
Height = 23
|
||||||
|
Top = 4
|
||||||
|
Width = 145
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
ItemHeight = 15
|
||||||
|
Sorted = True
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object memLyrics: TMemo
|
||||||
|
AnchorSideLeft.Control = tshLyrics
|
||||||
|
AnchorSideTop.Control = cmbLanguage
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = tshLyrics
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 4
|
||||||
|
Height = 201
|
||||||
|
Top = 31
|
||||||
|
Width = 373
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
object edtDescription: TEdit
|
||||||
|
AnchorSideLeft.Control = lblDescription
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = memLyrics
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = memLyrics
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 75
|
||||||
|
Height = 23
|
||||||
|
Top = 236
|
||||||
|
Width = 302
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
|
object edtWriter: TEdit
|
||||||
|
AnchorSideLeft.Control = edtDescription
|
||||||
|
AnchorSideTop.Control = edtDescription
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = memLyrics
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 75
|
||||||
|
Height = 23
|
||||||
|
Top = 263
|
||||||
|
Width = 302
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
TabOrder = 3
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object tshPictures: TTabSheet
|
||||||
|
Caption = 'tshPictures'
|
||||||
|
ClientHeight = 316
|
||||||
|
ClientWidth = 381
|
||||||
|
ImageIndex = 2
|
||||||
|
TabVisible = False
|
||||||
|
object imgPicture: TImage
|
||||||
|
AnchorSideLeft.Control = lsvPictures
|
||||||
|
AnchorSideTop.Control = lsvPictures
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
Left = 4
|
||||||
|
Height = 120
|
||||||
|
Top = 170
|
||||||
|
Width = 120
|
||||||
|
BorderSpacing.Top = 8
|
||||||
|
Stretch = True
|
||||||
|
end
|
||||||
|
object lblPictureName: TLabel
|
||||||
|
AnchorSideLeft.Control = btnChange
|
||||||
|
AnchorSideTop.Control = edtPictureName
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
Left = 136
|
||||||
|
Height = 15
|
||||||
|
Top = 236
|
||||||
|
Width = 35
|
||||||
|
Caption = 'Name:'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lblPictureType: TLabel
|
||||||
|
AnchorSideLeft.Control = lblPictureName
|
||||||
|
AnchorSideTop.Control = cmbPictureType
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
Left = 136
|
||||||
|
Height = 15
|
||||||
|
Top = 263
|
||||||
|
Width = 28
|
||||||
|
Caption = 'Type:'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object lsvPictures: TListView
|
||||||
|
AnchorSideLeft.Control = tshPictures
|
||||||
|
AnchorSideTop.Control = tshPictures
|
||||||
|
AnchorSideRight.Control = tshPictures
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 4
|
||||||
|
Height = 158
|
||||||
|
Top = 4
|
||||||
|
Width = 373
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
Columns = <
|
||||||
|
item
|
||||||
|
Caption = 'Name'
|
||||||
|
Width = 150
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Type'
|
||||||
|
Width = 70
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Format'
|
||||||
|
Width = 70
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Size'
|
||||||
|
end>
|
||||||
|
HideSelection = False
|
||||||
|
ReadOnly = True
|
||||||
|
RowSelect = True
|
||||||
|
TabOrder = 0
|
||||||
|
ViewStyle = vsReport
|
||||||
|
OnClick = lsvPicturesClick
|
||||||
|
end
|
||||||
|
object edtPictureName: TEdit
|
||||||
|
AnchorSideLeft.Control = lblPictureName
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = btnChange
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = lsvPictures
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 179
|
||||||
|
Height = 23
|
||||||
|
Top = 232
|
||||||
|
Width = 198
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Top = 8
|
||||||
|
TabOrder = 5
|
||||||
|
end
|
||||||
|
object cmbPictureType: TComboBox
|
||||||
|
AnchorSideLeft.Control = edtPictureName
|
||||||
|
AnchorSideTop.Control = edtPictureName
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = lsvPictures
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 179
|
||||||
|
Height = 23
|
||||||
|
Top = 259
|
||||||
|
Width = 198
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
ItemHeight = 15
|
||||||
|
Sorted = True
|
||||||
|
TabOrder = 6
|
||||||
|
end
|
||||||
|
object btnChange: TButton
|
||||||
|
AnchorSideLeft.Control = btnAdd
|
||||||
|
AnchorSideTop.Control = btnAdd
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = btnAdd
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 136
|
||||||
|
Height = 25
|
||||||
|
Top = 199
|
||||||
|
Width = 75
|
||||||
|
Action = actChangePicture
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
TabOrder = 4
|
||||||
|
end
|
||||||
|
object btnAdd: TButton
|
||||||
|
AnchorSideLeft.Control = imgPicture
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = imgPicture
|
||||||
|
Left = 136
|
||||||
|
Height = 25
|
||||||
|
Top = 170
|
||||||
|
Width = 75
|
||||||
|
Action = actAddPicture
|
||||||
|
BorderSpacing.Left = 12
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
object btnDelete: TButton
|
||||||
|
AnchorSideLeft.Control = btnAdd
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = btnAdd
|
||||||
|
Left = 215
|
||||||
|
Height = 25
|
||||||
|
Top = 170
|
||||||
|
Width = 75
|
||||||
|
Action = actDeletePicture
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
|
object btnSave: TButton
|
||||||
|
AnchorSideLeft.Control = btnDelete
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = btnAdd
|
||||||
|
Left = 294
|
||||||
|
Height = 25
|
||||||
|
Top = 170
|
||||||
|
Width = 75
|
||||||
|
Action = actSavePicture
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
TabOrder = 3
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object tshAllFrames: TTabSheet
|
||||||
|
Caption = 'tshAllFrames'
|
||||||
|
ClientHeight = 316
|
||||||
|
ClientWidth = 381
|
||||||
|
ImageIndex = 3
|
||||||
|
TabVisible = False
|
||||||
|
object lsvAllFrames: TListView
|
||||||
|
Left = 4
|
||||||
|
Height = 308
|
||||||
|
Top = 4
|
||||||
|
Width = 373
|
||||||
|
Align = alClient
|
||||||
|
BorderSpacing.Around = 4
|
||||||
|
Columns = <
|
||||||
|
item
|
||||||
|
Caption = 'Name'
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Supported'
|
||||||
|
Width = 70
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Description'
|
||||||
|
Width = 226
|
||||||
|
end>
|
||||||
|
ParentShowHint = False
|
||||||
|
ReadOnly = True
|
||||||
|
RowSelect = True
|
||||||
|
ShowHint = True
|
||||||
|
TabOrder = 0
|
||||||
|
ViewStyle = vsReport
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object lsbNavigator: TListBox
|
||||||
|
Left = 0
|
||||||
|
Height = 344
|
||||||
|
Top = 40
|
||||||
|
Width = 121
|
||||||
|
Align = alLeft
|
||||||
|
Items.Strings = (
|
||||||
|
'Winamp tags'
|
||||||
|
'Lyrics'
|
||||||
|
'Pictures'
|
||||||
|
'All Frames'
|
||||||
|
)
|
||||||
|
ItemHeight = 15
|
||||||
|
OnClick = lsbNavigatorClick
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
object ToolBar1: TToolBar
|
||||||
|
Left = 0
|
||||||
|
Height = 40
|
||||||
|
Top = 0
|
||||||
|
Width = 510
|
||||||
|
ButtonHeight = 36
|
||||||
|
ButtonWidth = 72
|
||||||
|
Caption = 'ToolBar1'
|
||||||
|
Images = iml16
|
||||||
|
ShowCaptions = True
|
||||||
|
TabOrder = 2
|
||||||
|
object ToolButton1: TToolButton
|
||||||
|
Left = 1
|
||||||
|
Top = 2
|
||||||
|
Action = actOK
|
||||||
|
end
|
||||||
|
object ToolButton2: TToolButton
|
||||||
|
Left = 73
|
||||||
|
Top = 2
|
||||||
|
Action = actCancel
|
||||||
|
end
|
||||||
|
object ToolButton3: TToolButton
|
||||||
|
Left = 145
|
||||||
|
Top = 2
|
||||||
|
Action = actRemove
|
||||||
|
end
|
||||||
|
object ToolButton5: TToolButton
|
||||||
|
Left = 217
|
||||||
|
Top = 2
|
||||||
|
Action = actCopyFromv1
|
||||||
|
end
|
||||||
|
object ToolButton4: TToolButton
|
||||||
|
Left = 299
|
||||||
|
Top = 2
|
||||||
|
Action = actCopyTov1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object acl16: TActionList
|
||||||
|
Images = iml16
|
||||||
|
left = 40
|
||||||
|
top = 112
|
||||||
|
object actOK: TAction
|
||||||
|
Caption = 'OK'
|
||||||
|
ImageIndex = 1
|
||||||
|
OnExecute = actOKExecute
|
||||||
|
end
|
||||||
|
object actCancel: TAction
|
||||||
|
Caption = 'Cancel'
|
||||||
|
ImageIndex = 0
|
||||||
|
OnExecute = actCancelExecute
|
||||||
|
end
|
||||||
|
object actRemove: TAction
|
||||||
|
Caption = 'Remove'
|
||||||
|
ImageIndex = 2
|
||||||
|
OnExecute = actRemoveExecute
|
||||||
|
end
|
||||||
|
object actAddPicture: TAction
|
||||||
|
Caption = 'Add'
|
||||||
|
OnExecute = actAddPictureExecute
|
||||||
|
end
|
||||||
|
object actDeletePicture: TAction
|
||||||
|
Caption = 'Delete'
|
||||||
|
OnExecute = actDeletePictureExecute
|
||||||
|
OnUpdate = ItemSelected
|
||||||
|
end
|
||||||
|
object actSavePicture: TAction
|
||||||
|
Caption = 'Save'
|
||||||
|
OnExecute = actSavePictureExecute
|
||||||
|
OnUpdate = ItemSelected
|
||||||
|
end
|
||||||
|
object actChangePicture: TAction
|
||||||
|
Caption = 'Change'
|
||||||
|
OnExecute = actChangePictureExecute
|
||||||
|
OnUpdate = ItemSelected
|
||||||
|
end
|
||||||
|
object actCopyTov1: TAction
|
||||||
|
Caption = 'Copy to v1'
|
||||||
|
ImageIndex = 4
|
||||||
|
OnExecute = actCopyTov1Execute
|
||||||
|
end
|
||||||
|
object actCopyFromv1: TAction
|
||||||
|
Caption = 'Copy From v1'
|
||||||
|
ImageIndex = 3
|
||||||
|
OnExecute = actCopyFromv1Execute
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object iml16: TImageList
|
||||||
|
left = 40
|
||||||
|
top = 176
|
||||||
|
Bitmap = {
|
||||||
|
4C69050000001000000010000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000FF0000
|
||||||
|
00FF0000000000000000000000000000000000000000000000FF000000FF9C8C
|
||||||
|
6FFF0000000000000000000000000000000000000000000000FF9999FFFF9999
|
||||||
|
FFFF000000FF000000000000000000000000000000FF9999FFFF9999FFFF0000
|
||||||
|
00FF9C8C6FFF00000000000000000000000000000000000000FF9999FFFF0000
|
||||||
|
FFFF2600C4FF000000FF00000000000000FF9999FFFF0000FFFF000099FF0000
|
||||||
|
00FF9C8C6FFF0000000000000000000000000000000000000000000000FF2600
|
||||||
|
C4FF0000FFFF2600C4FF000000FF9999FFFF0000FFFF000099FF000000FF9C8C
|
||||||
|
6FFF9C8C6FFF0000000000000000000000000000000000000000000000000000
|
||||||
|
00FF2600C4FF0000FFFF9999FFFF0000FFFF000099FF000000FF9C8C6FFF9C8C
|
||||||
|
6FFF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF0000FFFF0000FFFF0000FFFF000000FF9C8C6FFF9C8C6FFF0000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00FF9999FFFF0000FFFF2600C4FF0000FFFF2600C4FF000000FF9C8C6FFF0000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000FF9999
|
||||||
|
FFFF0000FFFF000099FF000000FF2600C4FF0000FFFF2600C4FF000000FF9C8C
|
||||||
|
6FFF0000000000000000000000000000000000000000000000FF9999FFFF0000
|
||||||
|
FFFF000099FF000000FF9C8C6FFF000000FF2600C4FF0000FFFF000099FF0000
|
||||||
|
00FF9C8C6FFF00000000000000000000000000000000000000FF9999FFFF0000
|
||||||
|
99FF000000FF9C8C6FFF9C8C6FFF9C8C6FFF000000FF000099FF000099FF0000
|
||||||
|
00FF9C8C6FFF000000000000000000000000000000009C8C6FFF000000FF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF00000000000000009C8C6FFF000000FF000000FF9C8C
|
||||||
|
6FFF0000000000000000000000000000000000000000000000009C8C6FFF9C8C
|
||||||
|
6FFF9C8C6FFF000000000000000000000000000000009C8C6FFF9C8C6FFF0000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00FF000000FF0000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000FF00C0
|
||||||
|
92FF19A64DFF000000FF00000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000000000000000000000FF00C092FF19A6
|
||||||
|
4DFF0C4D24FF000000FF00000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000FF00C092FF19A64DFF0C4D
|
||||||
|
24FF000000FF9C8C6FFF000000000000000000000000000000FF000000FF0000
|
||||||
|
0000000000000000000000000000000000FF00C092FF19A64DFF0C4D24FF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF0000000000000000000000FF19A64DFF19A64DFF0000
|
||||||
|
00FF0000000000000000000000FF00C092FF19A64DFF0C4D24FF000000FF9C8C
|
||||||
|
6FFF9C8C6FFF000000000000000000000000000000FF19A64DFF00C092FF0000
|
||||||
|
00FF000000FF000000FF00C092FF19A64DFF0C4D24FF000000FF9C8C6FFF9C8C
|
||||||
|
6FFF000000000000000000000000000000009C8C6FFF000000FF19A64DFF00C0
|
||||||
|
92FF000000FF00C092FF19A64DFF0C4D24FF000000FF9C8C6FFF9C8C6FFF0000
|
||||||
|
00000000000000000000000000000000000000000000000000FF19A64DFF19A6
|
||||||
|
4DFF00C092FF19A64DFF0C4D24FF000000FF9C8C6FFF9C8C6FFF000000000000
|
||||||
|
000000000000000000000000000000000000000000009C8C6FFF000000FF19A6
|
||||||
|
4DFF19A64DFF0C4D24FF000000FF9C8C6FFF9C8C6FFF00000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000FF0C4D
|
||||||
|
24FF0C4D24FF000000FF9C8C6FFF9C8C6FFF0000000000000000000000000000
|
||||||
|
00000000000000000000000000000000000000000000000000009C8C6FFF0000
|
||||||
|
00FF000000FF9C8C6FFF9C8C6FFF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000009C8C
|
||||||
|
6FFF9C8C6FFF9C8C6FFF00000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF000000FF000000FF000000FF000000FF000000FF000000000000
|
||||||
|
00000000000000000000000000000000000000000000000000FF000000FF0000
|
||||||
|
00FF000000FFBFBFBFFFFFFFFFFFBFBFBFFFBFBFBFFF000000FF000000FF0000
|
||||||
|
00FF000000FF00000000000000000000000000000000000000FFBFBFBFFFFFFF
|
||||||
|
FFFFFFFFFFFFBFBFBFFFBFBFBFFFC0928FFFC0928FFF9C8C6FFF9C8C6FFF9C8C
|
||||||
|
6FFF000000FF9C8C6FFF000000000000000000000000000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF9C8C6FFF00000000000000000000000000000000000000FF9C8C
|
||||||
|
6FFF9C8C6FFF9C8C6FFF9C8C6FFF9C8C6FFF9C8C6FFF9C8C6FFF9C8C6FFF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF00000000000000000000000000000000000000FFBFBF
|
||||||
|
BFFFFFFFFFFFC0928FFFF9EED9FF9C8C6FFFC0928FFF404040FF9C8C6FFF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF00000000000000000000000000000000000000FFBFBF
|
||||||
|
BFFFFFFFFFFFBFBFBFFFF9EED9FFC0928FFFBFBFBFFF666666FFD1A78FFF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF00000000000000000000000000000000000000FFBFBF
|
||||||
|
BFFFFFFFFFFFBFBFBFFFF9EED9FFC0928FFFBFBFBFFF666666FFD1A78FFF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF00000000000000000000000000000000000000FFBFBF
|
||||||
|
BFFFFFFFFFFFBFBFBFFFF9EED9FFC0928FFFBFBFBFFF666666FFD1A78FFF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF00000000000000000000000000000000000000FFBFBF
|
||||||
|
BFFFFFFFFFFFBFBFBFFFF9EED9FFC0928FFFBFBFBFFF666666FFD1A78FFF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF00000000000000000000000000000000000000FFBFBF
|
||||||
|
BFFFFFFFFFFFBFBFBFFFF9EED9FFC0928FFFBFBFBFFF666666FFD1A78FFF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF00000000000000000000000000000000000000FFBFBF
|
||||||
|
BFFFFFFFFFFFF9EED9FFBFBFBFFFBFBFBFFFC0928FFFC0928FFF666666FF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF00000000000000000000000000000000000000FFBFBF
|
||||||
|
BFFFFFFFFFFFBFBFBFFFBFBFBFFFC0928FFFC0928FFF666666FF666666FF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF00000000000000000000000000000000000000FF0000
|
||||||
|
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF9C8C6FFF9C8C6FFF00000000000000000000000000000000000000009C8C
|
||||||
|
6FFF9C8C6FFF9C8C6FFF9C8C6FFF9C8C6FFF9C8C6FFF9C8C6FFF9C8C6FFF9C8C
|
||||||
|
6FFF9C8C6FFF0000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000000000000000000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF00000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000336666FF6D9FC7FFCCCCFFFFE6E6
|
||||||
|
E6FFCCCCFFFFA6A6A6FF000000FF000000000000000000000000000000FF0000
|
||||||
|
00FF000000000000000000000000336666FF4E7EA6FF6D9FC7FF6D9FC7FF0000
|
||||||
|
00FF6D9FC7FF6D9FC7FF4E7EA6FF000000FF0000000000000000000000FF00FF
|
||||||
|
FFFF000000FF0000000000000000204A6EFF4E7EA6FF4E7EA6FF000000FF0000
|
||||||
|
00FF6D9FC7FF57B3F7FF4E7EA6FF000000FF000000FF000000FF000000FF00FF
|
||||||
|
FFFF00FFFFFF000000FF000000004E7EA6FF57B3F7FF57B3F7FF57B3F7FF0000
|
||||||
|
00FF57B3F7FF57B3F7FF0099FFFF000000FFD6FFFFFFD6FFFFFFD6FFFFFF00FF
|
||||||
|
FFFF00FFFFFF00FFFFFF000000FF4E7EA6FF57B3F7FF57B3F7FF57B3F7FF0000
|
||||||
|
00FF58D2E8FF58D2E8FF57B3F7FF336666FF00FFFFFF00FFFFFF00FFFFFF00FF
|
||||||
|
FFFF00FFFFFF58D2E8FF000000FF4E7EA6FF57B3F7FF58D2E8FF99CCFFFF0000
|
||||||
|
00FF58D2E8FF58D2E8FF57B3F7FF336666FF000000FF000000FF000000FF00FF
|
||||||
|
FFFF58D2E8FF000000FF9C8C6FFF4E7EA6FF6D9FC7FF58D2E8FF9EF0FFFF0000
|
||||||
|
00FF9EF0FFFF9EF0FFFF58D2E8FF336666FF9C8C6FFF9C8C6FFF000000FF58D2
|
||||||
|
E8FF000000FF9C8C6FFF00000000000000004E7EA6FF6BD2B8FF58D2E8FF9EF0
|
||||||
|
FFFF9EF0FFFF6BD2B8FF336666FF000000000000000000000000000000FF0000
|
||||||
|
00FF9C8C6FFF00000000000000000000000000000000336666FF4E7EA6FF6699
|
||||||
|
99FF4E7EA6FF336666FF00000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF00000000000000000000000000000000000000FF000000FF0000
|
||||||
|
00000000000000000000000000003C696EFF8591BBFFC5CDEBFFD9DFF6FFC6D5
|
||||||
|
EFFF929FC7FF000000FF000000000000000000000000000000FF00FFFFFF0000
|
||||||
|
00FF00000000000000003C696EFF3F5EA6FF6DA0DEFF82A0D9FF000000FF7AAF
|
||||||
|
D1FF6EA8D8FF4F7ABDFF000000FF000000FF000000FF000000FF00FFFFFF00FF
|
||||||
|
FFFF000000FF00000000335493FF3775C7FF3985D0FF000000FF000000FF489B
|
||||||
|
C5FF3C9BD3FF3281D0FF000000FFD6FFFFFFD6FFFFFFD6FFFFFF00FFFFFF00FF
|
||||||
|
FFFF00FFFFFF000000FF2860A2FF318EDCFF3C9EEAFF579FEAFF000000FF49B1
|
||||||
|
DDFF3AB1E9FF2D98E7FF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF
|
||||||
|
FFFF58D2E8FF000000FF3477B1FF3BA9EDFF55C3FFFF75C6FFFF000000FF64CC
|
||||||
|
E6FF55CDF4FF42B4F5FF437377FF000000FF000000FF000000FF00FFFFFF58D2
|
||||||
|
E8FF000000FF9C8C6FFF407FACFF4AB7F0FF65D7FFFF87DAFFFF000000FF78E0
|
||||||
|
EAFF68E2F7FF56C7F9FF437377FF9C8C6FFF9C8C6FFF000000FF58D2E8FF0000
|
||||||
|
00FF9C8C6FFF000000004D7D99FF50ACD6FF74E3FCFF91EBFFFF000000FF80EE
|
||||||
|
ECFF7AF0F9FF66CCEDFF437377FF0000000000000000000000FF000000FF9C8C
|
||||||
|
6FFF000000000000000000000000477383FF66BFCFFF7AE4ECFF84F2F7FF7CEB
|
||||||
|
EDFF6BCAD3FF3C696EFF00000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000003C696EFF447F83FF519192FF4A86
|
||||||
|
87FF437377FF0000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000
|
||||||
|
}
|
||||||
|
end
|
||||||
|
object JvID3v21: TJvID3v2
|
||||||
|
Active = False
|
||||||
|
ProcessPictures = True
|
||||||
|
left = 40
|
||||||
|
top = 240
|
||||||
|
end
|
||||||
|
end
|
720
components/jvcllaz/examples/JvID3v2/JvID3v2EditFormU.pas
Normal file
720
components/jvcllaz/examples/JvID3v2/JvID3v2EditFormU.pas
Normal file
@ -0,0 +1,720 @@
|
|||||||
|
{******************************************************************
|
||||||
|
|
||||||
|
JEDI-VCL Demo
|
||||||
|
|
||||||
|
Copyright (C) 2002 Project JEDI
|
||||||
|
|
||||||
|
Original author:
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
|
||||||
|
You may retrieve the latest version of this file at the JEDI-JVCL
|
||||||
|
home page, located at http://jvcl.delphi-jedi.org
|
||||||
|
|
||||||
|
The contents of this file are used with permission, subject to
|
||||||
|
the Mozilla Public License Version 1.1 (the "License"); you may
|
||||||
|
not use this file except in compliance with the License. You may
|
||||||
|
obtain a copy of the License at
|
||||||
|
http://www.mozilla.org/MPL/MPL-1_1Final.html
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on an
|
||||||
|
"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||||
|
implied. See the License for the specific language governing
|
||||||
|
rights and limitations under the License.
|
||||||
|
|
||||||
|
******************************************************************}
|
||||||
|
|
||||||
|
unit JvID3v2EditFormU;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
//Windows,
|
||||||
|
SysUtils, Classes, Graphics, Controls, Forms,
|
||||||
|
Dialogs, ComCtrls, ActnList, StdCtrls, ExtCtrls,
|
||||||
|
JvID3v2Base, JvId3v2; //, JvComponent, ImgList, ToolWin; //, JvComponentBase;
|
||||||
|
|
||||||
|
type
|
||||||
|
TJvID3v2EditForm = class(TForm)
|
||||||
|
PageControl1: TPageControl;
|
||||||
|
lsbNavigator: TListBox;
|
||||||
|
ToolBar1: TToolBar;
|
||||||
|
tshWinampTags: TTabSheet;
|
||||||
|
tshLyrics: TTabSheet;
|
||||||
|
tshPictures: TTabSheet;
|
||||||
|
lblTitle: TLabel;
|
||||||
|
lblArtist: TLabel;
|
||||||
|
lblAlbum: TLabel;
|
||||||
|
lblYear: TLabel;
|
||||||
|
lblComposer: TLabel;
|
||||||
|
lblOrigArtist: TLabel;
|
||||||
|
lblCopyright: TLabel;
|
||||||
|
lblURL: TLabel;
|
||||||
|
lblEncodedBy: TLabel;
|
||||||
|
edtTitle: TEdit;
|
||||||
|
edtArtist: TEdit;
|
||||||
|
edtAlbum: TEdit;
|
||||||
|
edtYear: TEdit;
|
||||||
|
edtComposer: TEdit;
|
||||||
|
edtOrigArtist: TEdit;
|
||||||
|
edtCopyright: TEdit;
|
||||||
|
edtURL: TEdit;
|
||||||
|
edtEncodedBy: TEdit;
|
||||||
|
cmbGenre: TComboBox;
|
||||||
|
lblGenre: TLabel;
|
||||||
|
memComment: TMemo;
|
||||||
|
lblComment: TLabel;
|
||||||
|
acl16: TActionList;
|
||||||
|
iml16: TImageList;
|
||||||
|
actOK: TAction;
|
||||||
|
actCancel: TAction;
|
||||||
|
actRemove: TAction;
|
||||||
|
ToolButton1: TToolButton;
|
||||||
|
ToolButton2: TToolButton;
|
||||||
|
ToolButton3: TToolButton;
|
||||||
|
JvID3v21: TJvID3v2;
|
||||||
|
lblLanguage: TLabel;
|
||||||
|
cmbLanguage: TComboBox;
|
||||||
|
memLyrics: TMemo;
|
||||||
|
lblDescription: TLabel;
|
||||||
|
lblWriter: TLabel;
|
||||||
|
edtDescription: TEdit;
|
||||||
|
edtWriter: TEdit;
|
||||||
|
lsvPictures: TListView;
|
||||||
|
imgPicture: TImage;
|
||||||
|
actAddPicture: TAction;
|
||||||
|
actDeletePicture: TAction;
|
||||||
|
actSavePicture: TAction;
|
||||||
|
lblPictureName: TLabel;
|
||||||
|
lblPictureType: TLabel;
|
||||||
|
edtPictureName: TEdit;
|
||||||
|
cmbPictureType: TComboBox;
|
||||||
|
tshAllFrames: TTabSheet;
|
||||||
|
lsvAllFrames: TListView;
|
||||||
|
btnChange: TButton;
|
||||||
|
actChangePicture: TAction;
|
||||||
|
btnAdd: TButton;
|
||||||
|
btnDelete: TButton;
|
||||||
|
btnSave: TButton;
|
||||||
|
ToolButton4: TToolButton;
|
||||||
|
ToolButton5: TToolButton;
|
||||||
|
actCopyTov1: TAction;
|
||||||
|
actCopyFromv1: TAction;
|
||||||
|
procedure actOKExecute(Sender: TObject);
|
||||||
|
procedure actCancelExecute(Sender: TObject);
|
||||||
|
procedure actRemoveExecute(Sender: TObject);
|
||||||
|
procedure actAddPictureExecute(Sender: TObject);
|
||||||
|
procedure actDeletePictureExecute(Sender: TObject);
|
||||||
|
procedure actSavePictureExecute(Sender: TObject);
|
||||||
|
procedure lsvPicturesClick(Sender: TObject);
|
||||||
|
procedure lsbNavigatorClick(Sender: TObject);
|
||||||
|
procedure actChangePictureExecute(Sender: TObject);
|
||||||
|
procedure ItemSelected(Sender: TObject);
|
||||||
|
procedure actCopyTov1Execute(Sender: TObject);
|
||||||
|
procedure actCopyFromv1Execute(Sender: TObject);
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure lsvAllFramesInfoTip(Sender: TObject; Item: TListItem;
|
||||||
|
var InfoTip: String);
|
||||||
|
private
|
||||||
|
FTagDeleted: Boolean;
|
||||||
|
protected
|
||||||
|
procedure Init;
|
||||||
|
procedure Final;
|
||||||
|
|
||||||
|
procedure InitAllFramesTab;
|
||||||
|
|
||||||
|
procedure TagToCtrls;
|
||||||
|
procedure CtrlsToTag;
|
||||||
|
procedure FillPictureTypes(Strings: TStrings);
|
||||||
|
|
||||||
|
class function Instance: TJvID3v2EditForm;
|
||||||
|
public
|
||||||
|
class function Execute(const AFileName: string): Boolean;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
ExtDlgs,
|
||||||
|
JvID3v2Types;
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
var
|
||||||
|
CFrameDescriptions: array[TJvID3FrameID] of string = (
|
||||||
|
'Error', {fiErrorFrame}
|
||||||
|
'Padding', {fiPaddingFrame}
|
||||||
|
'No known frame', {fiNoFrame}
|
||||||
|
'Audio encryption', {fiAudioCrypto}
|
||||||
|
'Attached picture', {fiPicture}
|
||||||
|
'Audio seek point index', {fiAudioSeekPoint}
|
||||||
|
'Comments', {fiComment}
|
||||||
|
'Commercial frame', {fiCommercial}
|
||||||
|
'Encryption method registration', {fiCryptoReg}
|
||||||
|
'Equalisation (2)', {fiEqualization2}
|
||||||
|
'Equalization', {fiEqualization}
|
||||||
|
'Event timing codes', {fiEventTiming}
|
||||||
|
'General encapsulated object', {fiGeneralObject}
|
||||||
|
'Group identification registration', {fiGroupingReg}
|
||||||
|
'Involved people list', {fiInvolvedPeople}
|
||||||
|
'Linked information', {fiLinkedInfo}
|
||||||
|
'Music CD identifier', {fiCDID}
|
||||||
|
'MPEG location lookup table', {fiMPEGLookup}
|
||||||
|
'Ownership frame', {fiOwnership}
|
||||||
|
'Private frame', {fiPrivate}
|
||||||
|
'Play counter', {fiPlayCounter}
|
||||||
|
'Popularimeter', {fiPopularimeter}
|
||||||
|
'Position synchronisation frame', {fiPositionsync}
|
||||||
|
'Recommended buffer size', {fiBufferSize}
|
||||||
|
'Relative volume adjustment (2)', {fiVolumeAdj2}
|
||||||
|
'Relative volume adjustment', {fiVolumeAdj}
|
||||||
|
'Reverb', {fiReverb}
|
||||||
|
'Seek frame', {fiSeekFrame}
|
||||||
|
'Signature frame', {fiSignature}
|
||||||
|
'Synchronized lyric/text', {fiSyncedLyrics}
|
||||||
|
'Synchronized tempo codes', {fiSyncedTempo}
|
||||||
|
'Album/Movie/Show title', {fiAlbum}
|
||||||
|
'BPM (beats per minute)', {fiBPM}
|
||||||
|
'Composer', {fiComposer}
|
||||||
|
'Content type', {fiContentType}
|
||||||
|
'Copyright message', {fiCopyright}
|
||||||
|
'Date', {fiDate}
|
||||||
|
'Encoding time', {fiEncodingTime}
|
||||||
|
'Playlist delay', {fiPlaylistDelay}
|
||||||
|
'Original release time', {fiOrigReleaseTime}
|
||||||
|
'Recording time', {fiRecordingTime}
|
||||||
|
'Release time', {fiReleaseTime}
|
||||||
|
'Tagging time', {fiTaggingTime}
|
||||||
|
'Involved people list', {fiInvolvedPeople2}
|
||||||
|
'Encoded by', {fiEncodedBy}
|
||||||
|
'Lyricist/Text writer', {fiLyricist}
|
||||||
|
'File type', {fiFileType}
|
||||||
|
'Time', {fiTime}
|
||||||
|
'Content group description', {fiContentGroup}
|
||||||
|
'Title/songname/content description', {fiTitle}
|
||||||
|
'Subtitle/Description refinement', {fiSubTitle}
|
||||||
|
'Initial key', {fiInitialKey}
|
||||||
|
'Language(s)', {fiLanguage}
|
||||||
|
'Length', {fiSongLen}
|
||||||
|
'Musician credits list', {fiMusicianCreditList}
|
||||||
|
'Media type', {fiMediaType}
|
||||||
|
'Mood', {fiMood}
|
||||||
|
'Original album/movie/show title', {fiOrigAlbum}
|
||||||
|
'Original filename', {fiOrigFileName}
|
||||||
|
'Original lyricist(s)/text writer(s)', {fiOrigLyricist}
|
||||||
|
'Original artist(s)/performer(s)', {fiOrigArtist}
|
||||||
|
'Original release year', {fiOrigYear}
|
||||||
|
'File owner/licensee', {fiFileOwner}
|
||||||
|
'Lead performer(s)/Soloist(s)', {fiLeadArtist}
|
||||||
|
'Band/orchestra/accompaniment', {fiBand}
|
||||||
|
'Conductor/performer refinement', {fiConductor}
|
||||||
|
'Interpreted, remixed, or otherwise modified by', {fiMixArtist}
|
||||||
|
'Part of a set', {fiPartInSet}
|
||||||
|
'Produced notice', {fiProducedNotice}
|
||||||
|
'Publisher', {fiPublisher}
|
||||||
|
'Track number/Position in set', {fiTrackNum}
|
||||||
|
'Recording dates', {fiRecordingDates}
|
||||||
|
'Internet radio station name', {fiNetRadioStation}
|
||||||
|
'Internet radio station owner', {fiNetRadioOwner}
|
||||||
|
'Size', {fiSize}
|
||||||
|
'Album sort order', {fiAlbumSortOrder}
|
||||||
|
'Performer sort order', {fiPerformerSortOrder}
|
||||||
|
'Title sort order', {fiTitleSortOrder}
|
||||||
|
'ISRC (international standard recording code)', {fiISRC}
|
||||||
|
'Software/Hardware and settings used for encoding', {fiEncoderSettings}
|
||||||
|
'Set subtitle', {fiSetSubTitle}
|
||||||
|
'User defined text information', {fiUserText}
|
||||||
|
'Year', {fiYear}
|
||||||
|
'Unique file identifier', {fiUniqueFileID}
|
||||||
|
'Terms of use', {fiTermsOfUse}
|
||||||
|
'Unsynchronized lyric/text transcription', {fiUnsyncedLyrics}
|
||||||
|
'Commercial information', {fiWWWCommercialInfo}
|
||||||
|
'Copyright/Legal information', {fiWWWCopyright}
|
||||||
|
'Official audio file webpage', {fiWWWAudioFile}
|
||||||
|
'Official artist/performer webpage', {fiWWWArtist}
|
||||||
|
'Official audio source webpage', {fiWWWAudioSource}
|
||||||
|
'Official internet radio station homepage', {fiWWWRadioPage}
|
||||||
|
'Payment', {fiWWWPayment}
|
||||||
|
'Official publisher webpage', {fiWWWPublisher}
|
||||||
|
'User defined URL link', {fiWWWUser}
|
||||||
|
'Encrypted meta frame', {fiMetaCrypto}
|
||||||
|
'Compressed meta frame' {fiMetaCompression}
|
||||||
|
);
|
||||||
|
|
||||||
|
CPictureTypeStr: array[TJvID3PictureType] of string = (
|
||||||
|
'Other',
|
||||||
|
'32x32 pixels ''file icon'' (PNG only)',
|
||||||
|
'Other file icon',
|
||||||
|
'Cover (front)',
|
||||||
|
'Cover (back)',
|
||||||
|
'Leaflet page',
|
||||||
|
'Media (e.g. lable side of CD)',
|
||||||
|
'Lead artist/lead performer/soloist',
|
||||||
|
'Artist/performer',
|
||||||
|
'Conductor',
|
||||||
|
'Band/Orchestra',
|
||||||
|
'Composer',
|
||||||
|
'Lyricist/text writer',
|
||||||
|
'Recording Location',
|
||||||
|
'During recording',
|
||||||
|
'During performance',
|
||||||
|
'Movie/video screen capture',
|
||||||
|
'A bright coloured fish',
|
||||||
|
'Illustration',
|
||||||
|
'Band/artist logotype',
|
||||||
|
'Publisher/Studio logotype'
|
||||||
|
);
|
||||||
|
|
||||||
|
procedure SetPictureListItemTo(ListItem: TListItem; Frame: TJvID3PictureFrame);
|
||||||
|
begin
|
||||||
|
with ListItem, Frame do
|
||||||
|
begin
|
||||||
|
Caption := Description;
|
||||||
|
while SubItems.Count < 3 do
|
||||||
|
SubItems.Add('');
|
||||||
|
SubItems[0] := CPictureTypeStr[PictureType]; //Type
|
||||||
|
SubItems[1] := string(MIMEType); //Format
|
||||||
|
SubItems[2] := IntToStr(DataSize); //Size
|
||||||
|
Data := Frame;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
FillPictureTypes(cmbPictureType.Items);
|
||||||
|
ISO_639_2Names(cmbLanguage.Items);
|
||||||
|
ID3_Genres(cmbGenre.Items);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.actOKExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
HasTag: Boolean;
|
||||||
|
Version: TJvID3Version;
|
||||||
|
lCursor: TCursor;
|
||||||
|
begin
|
||||||
|
lCursor := Screen.Cursor;
|
||||||
|
Screen.Cursor := crHourGlass;
|
||||||
|
try
|
||||||
|
CtrlsToTag;
|
||||||
|
JvID3v21.Frames.RemoveEmptyFrames;
|
||||||
|
|
||||||
|
HasTag := True;
|
||||||
|
if JvID3v21.FrameCount = 0 then
|
||||||
|
GetID3v2Version(JvID3v21.FileName, HasTag, Version);
|
||||||
|
|
||||||
|
if HasTag then
|
||||||
|
JvID3v21.Commit;
|
||||||
|
ModalResult := mrOk;
|
||||||
|
finally
|
||||||
|
Screen.Cursor := lCursor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.actCancelExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
ModalResult := mrCancel;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.actRemoveExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
lCursor: TCursor;
|
||||||
|
begin
|
||||||
|
if MessageDlg('Remove tag?', mtConfirmation, mbOKCancel, 0) <> mrOk then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
lCursor := Screen.Cursor;
|
||||||
|
Screen.Cursor := crHourGlass;
|
||||||
|
try
|
||||||
|
JvID3v21.Erase;
|
||||||
|
FTagDeleted := True;
|
||||||
|
TagToCtrls;
|
||||||
|
finally
|
||||||
|
Screen.Cursor := lCursor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
class function TJvID3v2EditForm.Execute(const AFileName: string): Boolean;
|
||||||
|
begin
|
||||||
|
with TJvID3v2EditForm.Instance do
|
||||||
|
try
|
||||||
|
JvID3v21.FileName := AFileName;
|
||||||
|
Init;
|
||||||
|
try
|
||||||
|
Result := (ShowModal = mrOk) or FTagDeleted;
|
||||||
|
finally
|
||||||
|
Final;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
Hide;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.Init;
|
||||||
|
begin
|
||||||
|
Caption := Format('Edit ''%s''', [ExtractFileName(JvID3v21.FileName)]);
|
||||||
|
|
||||||
|
JvID3v21.Open;
|
||||||
|
|
||||||
|
TagToCtrls;
|
||||||
|
|
||||||
|
imgPicture.Picture.Assign(nil);
|
||||||
|
|
||||||
|
lsbNavigator.ItemIndex := 0;
|
||||||
|
PageControl1.ActivePage := tshWinampTags;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ChangeYear(const ADateTime: TDateTime; const NewYear: Word): TDateTime;
|
||||||
|
var
|
||||||
|
OldYear, Month, Day: Word;
|
||||||
|
begin
|
||||||
|
DecodeDate(ADateTime, OldYear, Month, Day);
|
||||||
|
Result := EncodeDate(NewYear, Month, Day);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.CtrlsToTag;
|
||||||
|
|
||||||
|
//procedure SetFirstOfList(Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}; const S: string);
|
||||||
|
procedure SetFirstOfList(Strings: TStrings; const S: String);
|
||||||
|
begin
|
||||||
|
if Strings.Count > 0 then
|
||||||
|
Strings[0] := S
|
||||||
|
else
|
||||||
|
Strings.Add(S);
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
{ WinAmp tags }
|
||||||
|
|
||||||
|
{ WinAmp treats some tags as single line tags; mimic this behaviour by
|
||||||
|
using function SetFirstOfList }
|
||||||
|
JvID3v21.Texts.Title := edtTitle.Text;
|
||||||
|
SetFirstOfList(JvID3v21.Texts.LeadArtist, edtArtist.Text);
|
||||||
|
JvID3v21.Texts.Album := edtAlbum.Text;
|
||||||
|
{ The 'year' tag is replaced by the 'recordingtime' tag in v2.4 }
|
||||||
|
if JvID3v21.WriteVersion = ive2_4 then
|
||||||
|
JvID3v21.Texts.RecordingTime := ChangeYear(JvID3v21.Texts.RecordingTime, StrToIntDef(edtYear.Text, 0))
|
||||||
|
else
|
||||||
|
JvID3v21.Texts.Year := StrToIntDef(edtYear.Text, 0);
|
||||||
|
SetFirstOfList(JvID3v21.Texts.ContentType, NiceGenreToGenre(cmbGenre.Text));
|
||||||
|
{ Note that WinAmp doesn't care about other properties than Text of TJvID3ContentFrame }
|
||||||
|
TJvID3ContentFrame.FindOrCreate(JvID3v21, fiComment).Text := memComment.Lines.Text;
|
||||||
|
SetFirstOfList(JvID3v21.Texts.Composer, edtComposer.Text);
|
||||||
|
SetFirstOfList(JvID3v21.Texts.OrigArtist, edtOrigArtist.Text);
|
||||||
|
JvID3v21.Texts.Copyright := edtCopyright.Text;
|
||||||
|
{ Note that WinAmp doesn't care about other properties than URL of TJvID3URLUserFrame }
|
||||||
|
TJvID3URLUserFrame.FindOrCreate(JvID3v21, 0).URL := AnsiString(edtURL.Text);
|
||||||
|
JvID3v21.Texts.EncodedBy := edtEncodedBy.Text;
|
||||||
|
|
||||||
|
{ Lyrics }
|
||||||
|
with TJvID3ContentFrame.FindOrCreate(JvID3v21, fiUnsyncedLyrics) do
|
||||||
|
begin
|
||||||
|
Language := ISO_639_2NameToCode(cmbLanguage.Text);
|
||||||
|
Text := memLyrics.Lines.Text;
|
||||||
|
Description := edtDescription.Text;
|
||||||
|
end;
|
||||||
|
SetFirstOfList(JvID3v21.Texts.Lyricist, edtWriter.Text);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function YearOf(const ADateTime: TDateTime): Word;
|
||||||
|
var
|
||||||
|
D1, D2: Word;
|
||||||
|
begin
|
||||||
|
DecodeDate(ADateTime, Result, D1, D2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.TagToCtrls;
|
||||||
|
|
||||||
|
//function GetFirstOfList(Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}): string;
|
||||||
|
function GetFirstOfList(Strings: TStrings): String;
|
||||||
|
begin
|
||||||
|
if Strings.Count > 0 then
|
||||||
|
Result := Strings[0]
|
||||||
|
else
|
||||||
|
Result := '';
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
Frame: TJvID3Frame;
|
||||||
|
begin
|
||||||
|
{ Determine which frames are in the tag before calls to JvID3v21.Texts.xxx and
|
||||||
|
FindOrCreate because those functions might create frames. }
|
||||||
|
InitAllFramesTab;
|
||||||
|
|
||||||
|
{ WinAmp tags }
|
||||||
|
|
||||||
|
{ WinAmp treats some tags as single line tags; mimic this behaviour by
|
||||||
|
using function GetFirstOfList }
|
||||||
|
edtTitle.Text := JvID3v21.Texts.Title;
|
||||||
|
edtArtist.Text := GetFirstOfList(JvID3v21.Texts.LeadArtist);
|
||||||
|
edtAlbum.Text := JvID3v21.Texts.Album;
|
||||||
|
{ The 'year' tag is replaced by the 'recordingtime' tag in v2.4 }
|
||||||
|
if JvID3v21.Version = ive2_4 then
|
||||||
|
edtYear.Text := IntToStr(YearOf(JvID3v21.Texts.RecordingTime))
|
||||||
|
else
|
||||||
|
edtYear.Text := IntToStr(JvID3v21.Texts.Year);
|
||||||
|
cmbGenre.Text := GenreToNiceGenre(GetFirstOfList(JvID3v21.Texts.ContentType));
|
||||||
|
{ Note that WinAmp doesn't care about other properties than Text of TJvID3ContentFrame }
|
||||||
|
memComment.Lines.Text := TJvID3ContentFrame.FindOrCreate(JvID3v21, fiComment).Text;
|
||||||
|
edtComposer.Text := GetFirstOfList(JvID3v21.Texts.Composer);
|
||||||
|
edtOrigArtist.Text := GetFirstOfList(JvID3v21.Texts.OrigArtist);
|
||||||
|
edtCopyright.Text := JvID3v21.Texts.Copyright;
|
||||||
|
{ Note that WinAmp doesn't care about other properties than URL of TJvID3URLUserFrame }
|
||||||
|
edtURL.Text := string(TJvID3URLUserFrame.FindOrCreate(JvID3v21, 0).URL);
|
||||||
|
edtEncodedBy.Text := JvID3v21.Texts.EncodedBy;
|
||||||
|
|
||||||
|
{ Lyrics }
|
||||||
|
with TJvID3ContentFrame.FindOrCreate(JvID3v21, fiUnsyncedLyrics) do
|
||||||
|
begin
|
||||||
|
cmbLanguage.ItemIndex := cmbLanguage.Items.IndexOf(string(ISO_639_2CodeToName(Language)));
|
||||||
|
memLyrics.Lines.Text := Text;
|
||||||
|
edtDescription.Text := Description;
|
||||||
|
end;
|
||||||
|
edtWriter.Text := GetFirstOfList(JvID3v21.Texts.Lyricist);
|
||||||
|
|
||||||
|
{ Pictures }
|
||||||
|
lsvPictures.Items.BeginUpdate;
|
||||||
|
try
|
||||||
|
lsvPictures.Items.Clear;
|
||||||
|
if JvID3v21.FindFirstFrame(fiPicture, Frame) then
|
||||||
|
repeat
|
||||||
|
if Frame is TJvID3PictureFrame then
|
||||||
|
SetPictureListItemTo(lsvPictures.Items.Add, TJvID3PictureFrame(Frame));
|
||||||
|
until not JvID3v21.FindNextFrame(fiPicture, Frame);
|
||||||
|
finally
|
||||||
|
lsvPictures.Items.EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.actAddPictureExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
Frame: TJvID3PictureFrame;
|
||||||
|
begin
|
||||||
|
if cmbPictureType.ItemIndex < 0 then
|
||||||
|
begin
|
||||||
|
MessageDlg('Select a picture type', mtError, [mbOK], 0);
|
||||||
|
FocusControl(cmbPictureType);
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
with TOpenPictureDialog.Create(Application) do
|
||||||
|
try
|
||||||
|
if not Execute then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
Frame := TJvID3PictureFrame(JvID3v21.AddFrame(fiPicture));
|
||||||
|
with Frame do
|
||||||
|
begin
|
||||||
|
with cmbPictureType do
|
||||||
|
PictureType := TJvID3PictureType(Items.Objects[ItemIndex]);
|
||||||
|
Description := edtPictureName.Text;
|
||||||
|
MIMEType := AnsiString(ExtToMIMEType(ExtractFileExt(FileName)));
|
||||||
|
LoadFromFile(FileName);
|
||||||
|
|
||||||
|
lsvPictures.Items.BeginUpdate;
|
||||||
|
try
|
||||||
|
SetPictureListItemTo(lsvPictures.Items.Add, Frame);
|
||||||
|
finally
|
||||||
|
lsvPictures.Items.EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.actDeletePictureExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if not Assigned(lsvPictures.Selected) then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
JvID3v21.Frames.Remove(TJvID3Frame(lsvPictures.Selected.Data));
|
||||||
|
lsvPictures.Items.Delete(lsvPictures.Selected.Index);
|
||||||
|
imgPicture.Picture.Assign(nil);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.actSavePictureExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
Frame: TJvID3PictureFrame;
|
||||||
|
begin
|
||||||
|
if not Assigned(lsvPictures.Selected) then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
Frame := TJvID3PictureFrame(lsvPictures.Selected.Data);
|
||||||
|
|
||||||
|
if Assigned(Frame) and (Frame.DataSize > 0) and (Frame.MIMEType <> '-->') then
|
||||||
|
with TSavePictureDialog.Create(Application) do
|
||||||
|
try
|
||||||
|
if Execute then
|
||||||
|
Frame.SaveToFile(FileName);
|
||||||
|
finally
|
||||||
|
Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.lsvPicturesClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
Frame: TJvID3PictureFrame;
|
||||||
|
begin
|
||||||
|
if Assigned(lsvPictures.Selected) then
|
||||||
|
Frame := TJvID3PictureFrame(lsvPictures.Selected.Data)
|
||||||
|
else
|
||||||
|
Frame := nil;
|
||||||
|
|
||||||
|
if Assigned(Frame) then
|
||||||
|
begin
|
||||||
|
edtPictureName.Text := Frame.Description;
|
||||||
|
with cmbPictureType do
|
||||||
|
ItemIndex := Items.IndexOfObject(TObject(Frame.PictureType));
|
||||||
|
end;
|
||||||
|
|
||||||
|
imgPicture.Picture.Assign(Frame);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.lsbNavigatorClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
case lsbNavigator.ItemIndex of
|
||||||
|
0: PageControl1.ActivePage := tshWinampTags;
|
||||||
|
1: PageControl1.ActivePage := tshLyrics;
|
||||||
|
2: PageControl1.ActivePage := tshPictures;
|
||||||
|
3: PageControl1.ActivePage := tshAllFrames;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.FillPictureTypes(Strings: TStrings);
|
||||||
|
var
|
||||||
|
PictureType: TJvID3PictureType;
|
||||||
|
begin
|
||||||
|
Strings.BeginUpdate;
|
||||||
|
try
|
||||||
|
Strings.Clear;
|
||||||
|
for PictureType := Low(TJvID3PictureType) to High(TJvID3PictureType) do
|
||||||
|
Strings.AddObject(CPictureTypeStr[PictureType], TObject(PictureType));
|
||||||
|
finally
|
||||||
|
Strings.EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.InitAllFramesTab;
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
ListItem: TListItem;
|
||||||
|
begin
|
||||||
|
lsvAllFrames.Items.BeginUpdate;
|
||||||
|
try
|
||||||
|
lsvAllFrames.Items.Clear;
|
||||||
|
for I := 0 to JvID3v21.FrameCount - 1 do
|
||||||
|
with JvID3v21.Frames[I] do
|
||||||
|
begin
|
||||||
|
ListItem := lsvAllFrames.Items.Add;
|
||||||
|
ListItem.Caption := string(FrameName);
|
||||||
|
if ClassType <> TJvID3SkipFrame then
|
||||||
|
ListItem.SubItems.Add('Yes')
|
||||||
|
else
|
||||||
|
ListItem.SubItems.Add('No');
|
||||||
|
ListItem.SubItems.Add(CFrameDescriptions[FrameID]);
|
||||||
|
ListItem.Data := JvID3v21.Frames[I];
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
lsvAllFrames.Items.EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.actChangePictureExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
Frame: TJvID3PictureFrame;
|
||||||
|
begin
|
||||||
|
if not Assigned(lsvPictures.Selected) then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
if cmbPictureType.ItemIndex < 0 then
|
||||||
|
begin
|
||||||
|
MessageDlg('Select a picture type', mtError, [mbOK], 0);
|
||||||
|
FocusControl(cmbPictureType);
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Frame := TJvID3PictureFrame(lsvPictures.Selected.Data);
|
||||||
|
|
||||||
|
with Frame do
|
||||||
|
begin
|
||||||
|
with cmbPictureType do
|
||||||
|
PictureType := TJvID3PictureType(Items.Objects[ItemIndex]);
|
||||||
|
Description := edtPictureName.Text;
|
||||||
|
|
||||||
|
lsvPictures.Items.BeginUpdate;
|
||||||
|
try
|
||||||
|
SetPictureListItemTo(lsvPictures.Selected, Frame);
|
||||||
|
finally
|
||||||
|
lsvPictures.Items.EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.ItemSelected(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if Sender is TAction then
|
||||||
|
TAction(Sender).Enabled := Assigned(lsvPictures.Selected);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.actCopyTov1Execute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if not JvID3v21.CopyToID3v1 then
|
||||||
|
ShowMessage('Error');
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.actCopyFromv1Execute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if JvID3v21.CopyFromID3v1 then
|
||||||
|
TagToCtrls
|
||||||
|
else
|
||||||
|
ShowMessage('Error');
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
GInstance: TJvID3v2EditForm = nil;
|
||||||
|
|
||||||
|
class function TJvID3v2EditForm.Instance: TJvID3v2EditForm;
|
||||||
|
begin
|
||||||
|
if not Assigned(GInstance) then
|
||||||
|
GInstance := TJvID3v2EditForm.Create(Application);
|
||||||
|
|
||||||
|
Result := GInstance;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.Final;
|
||||||
|
begin
|
||||||
|
JvID3v21.Close;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2EditForm.lsvAllFramesInfoTip(Sender: TObject;
|
||||||
|
Item: TListItem; var InfoTip: String);
|
||||||
|
var
|
||||||
|
Frame: TJvID3Frame;
|
||||||
|
S: string;
|
||||||
|
begin
|
||||||
|
Frame := TJvID3Frame(Item.Data);
|
||||||
|
if Frame is TJvID3TextFrame then
|
||||||
|
InfoTip := TJvID3TextFrame(Frame).Text
|
||||||
|
else if Frame is TJvID3NumberFrame then
|
||||||
|
InfoTip := IntToStr(TJvID3NumberFrame(Frame).Value)
|
||||||
|
else if Frame is TJvID3UserFrame then
|
||||||
|
with Frame as TJvID3UserFrame do
|
||||||
|
InfoTip := Format('%s: %s', [Description, Value])
|
||||||
|
else if Frame is TJvID3PictureFrame then
|
||||||
|
with Frame as TJvID3PictureFrame do
|
||||||
|
InfoTIp := Format('%s (%s) %d bytes', [Description, MIMEType, DataSize])
|
||||||
|
else if Frame is TJvID3TimestampFrame then
|
||||||
|
InfoTip := DateTimeToStr(TJvID3TimestampFrame(Frame).Value)
|
||||||
|
else if Frame is TJvID3ContentFrame then
|
||||||
|
InfoTip := TJvID3ContentFrame(Frame).Text
|
||||||
|
else if Frame is TJvID3SimpleListFrame then
|
||||||
|
begin
|
||||||
|
S := TJvID3SimpleListFrame(Frame).List.GetText;
|
||||||
|
Delete(S, Length(S) - 1, 2);
|
||||||
|
InfoTip := S;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
192
components/jvcllaz/examples/JvID3v2/JvID3v2MainFormU.lfm
Normal file
192
components/jvcllaz/examples/JvID3v2/JvID3v2MainFormU.lfm
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
object JvID3v2MainForm: TJvID3v2MainForm
|
||||||
|
Left = 442
|
||||||
|
Height = 392
|
||||||
|
Top = 277
|
||||||
|
Width = 557
|
||||||
|
Caption = 'JvID3v2 example'
|
||||||
|
ClientHeight = 392
|
||||||
|
ClientWidth = 557
|
||||||
|
Color = clBtnFace
|
||||||
|
Constraints.MinHeight = 150
|
||||||
|
Constraints.MinWidth = 200
|
||||||
|
DefaultMonitor = dmDesktop
|
||||||
|
Font.Color = clWindowText
|
||||||
|
Icon.Data = {
|
||||||
|
3E01000000000100010010101000010010002801000016000000280000001000
|
||||||
|
0000200000000100040000000000C00000000000000000000000000000000000
|
||||||
|
000000000000000080000080000000808000800000008000800080800000C0C0
|
||||||
|
C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
|
||||||
|
FF00000000000000000000000BBBB0000000000BB000BB000000000BB0000B00
|
||||||
|
0000000BBB000BB00000000BBB000BB00000000000000BB00000000000000BB0
|
||||||
|
0000000000000BB00000000000000BB00000000000000BB00000000000000BB0
|
||||||
|
0000000000000BB0000000000000BBBB00000000000BBBBBB000000000000000
|
||||||
|
0000FFFF0000F87F0000E73F0000E7BF0000E39F0000E39F0000FF9F0000FF9F
|
||||||
|
0000FF9F0000FF9F0000FF9F0000FF9F0000FF9F0000FF0F0000FE070000FFFF
|
||||||
|
0000
|
||||||
|
}
|
||||||
|
Position = poScreenCenter
|
||||||
|
LCLVersion = '1.9.0.0'
|
||||||
|
Scaled = False
|
||||||
|
object Splitter1: TSplitter
|
||||||
|
Left = 185
|
||||||
|
Height = 392
|
||||||
|
Top = 0
|
||||||
|
Width = 5
|
||||||
|
end
|
||||||
|
object ListView1: TListView
|
||||||
|
Left = 190
|
||||||
|
Height = 392
|
||||||
|
Top = 0
|
||||||
|
Width = 367
|
||||||
|
Align = alClient
|
||||||
|
Columns = <
|
||||||
|
item
|
||||||
|
Caption = 'Type'
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'File name'
|
||||||
|
Width = 300
|
||||||
|
end>
|
||||||
|
ReadOnly = True
|
||||||
|
RowSelect = True
|
||||||
|
TabOrder = 0
|
||||||
|
ViewStyle = vsReport
|
||||||
|
OnDblClick = ListView1DblClick
|
||||||
|
end
|
||||||
|
object Panel1: TPanel
|
||||||
|
Left = 0
|
||||||
|
Height = 392
|
||||||
|
Top = 0
|
||||||
|
Width = 185
|
||||||
|
Align = alLeft
|
||||||
|
ClientHeight = 392
|
||||||
|
ClientWidth = 185
|
||||||
|
TabOrder = 1
|
||||||
|
object ShellTreeView: TShellTreeView
|
||||||
|
Left = 1
|
||||||
|
Height = 390
|
||||||
|
Top = 1
|
||||||
|
Width = 183
|
||||||
|
Align = alClient
|
||||||
|
FileSortType = fstNone
|
||||||
|
Images = ImageList1
|
||||||
|
ReadOnly = True
|
||||||
|
TabOrder = 0
|
||||||
|
OnChange = ShellTreeViewChange
|
||||||
|
OnGetImageIndex = ShellTreeViewGetImageIndex
|
||||||
|
OnGetSelectedIndex = ShellTreeViewGetSelectedIndex
|
||||||
|
OnSelectionChanged = ShellTreeViewSelectionChanged
|
||||||
|
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
|
||||||
|
ObjectTypes = [otFolders]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object JvID3v21: TJvID3v2
|
||||||
|
Active = False
|
||||||
|
ProcessPictures = True
|
||||||
|
left = 320
|
||||||
|
top = 80
|
||||||
|
end
|
||||||
|
object ImageList1: TImageList
|
||||||
|
left = 320
|
||||||
|
top = 148
|
||||||
|
Bitmap = {
|
||||||
|
4C69030000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF009F9D9B009D9A98009E9C9A009E9C9AFFA5A3
|
||||||
|
A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FF9E9C
|
||||||
|
9AFF9E9C9A009D9A98009F9D9B009F9D9B009B989600999795FFE4E3E2FFC6C4
|
||||||
|
C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFE4E3
|
||||||
|
E2FF999795FF9B9896009F9D9B009D9B9900969390FFE5E4E3FFC7C4C2FFC7C4
|
||||||
|
C2FFC7C5C3FFC7C5C3FFC7C5C3FFC7C5C3FFC7C5C3FFC7C5C3FFC7C4C2FFC7C4
|
||||||
|
C2FFE5E4E3FF969390FF9D9B99009A9896AAEFEEEFFFEBEAEAFFEAE9EAFFEAE9
|
||||||
|
EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9
|
||||||
|
EAFFEBEAEAFFEFEEEFFF9A9896AA969492FFE3E1E0FF9D9997FF9D9997FF9C99
|
||||||
|
97FF9C9997FF9C9997FF9C9997FF9C9997FF9C9997FF9C9997FF9C9997FF9D99
|
||||||
|
97FF9D9997FFE3E1E0FF969492FF93918FFFDCDBD9FFA6A3A0FFE6E4E4FFE5E3
|
||||||
|
E4FFE5E4E4FFE6E4E4FFE6E4E4FFE6E4E4FFE6E4E4FFE5E4E4FFE5E3E4FFE6E4
|
||||||
|
E4FFA6A3A0FFDCDBD9FF93918FFF908E8CFFD7D5D4FFAEACAAFFE1DFE0FFB0AD
|
||||||
|
ABFFB1AEACFFB2AEACFFB2AEACFFB2AEACFFB2AEACFFB1AEACFFB0ADABFFE1DF
|
||||||
|
E0FFAEACAAFFD7D5D4FF908E8CFF8D8A88FFD4D2D1FFB7B4B2FFD2D0D0FFC3C1
|
||||||
|
BFFFC4C2C0FFC4C2C0FFC4C2C0FFC4C2C0FFC4C2C0FFC4C2C0FFC3C1BFFFD2D0
|
||||||
|
D0FFB7B4B2FFD4D2D1FF8D8A88FF8A8785FFD2D0CFFFC1BFBDFFAEACAAFFAFAD
|
||||||
|
ABFFAFADABFFAFADABFFAFADABFFAFADABFFAFADABFFAFADABFFAFADABFFAEAC
|
||||||
|
AAFFC1BFBDFFD2D0CFFF8A8785FF888583FFD6D4D2FFCECCCAFFCECCCAFFCECC
|
||||||
|
CAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECC
|
||||||
|
CAFFCECCCAFFD6D4D2FF888583FF7D7A78C084817FFF83807EFF83807EFF8380
|
||||||
|
7EFF83807EFF83807EFF83807EFF83807EFF83807EFF83807EFF83807EFF8380
|
||||||
|
7EFF83807EFF84817FFF7D7A78C0000000230000003300000033000000330000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
0033000000330000003300000023FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF004398D2B03D94D0FF3A92CFFF3A92CFFF3D94
|
||||||
|
D0FF4197D1D24398D2004498D2004498D2004498D2004498D2004499D2004499
|
||||||
|
D300459AD300469AD300469AD3003D94D0FFDCFCFFFFD8F7FFFFD8F7FFFFDBFA
|
||||||
|
FFFF358ECDFF3991CEFF3A92CFFF3A92CFFF3A92CFFF3A92CFFF3B92CFFF3D94
|
||||||
|
D0FF4398D2D7469AD300469AD3003B92CFFFD5F7FFFF60D1F9FF61D0F8FFB4EB
|
||||||
|
FDFFD9F6FFFFDAF8FFFFDAF8FFFFDBF9FFFFDCFAFFFFDCFAFFFFDCFBFFFFE0FF
|
||||||
|
FFFF3E95D0FF4599D333469AD3003B92CFFFCAF6FFFF69D5F9FF6CD5F9FF6BD5
|
||||||
|
F9FF69D5F9FF69D5FAFF6AD7FBFF68D4FAFF5EC7F1FF5EC7F2FF5DC8F2FFB4E3
|
||||||
|
F8FF3D94D0FF3F8FC669469AD3003C92CFFFC0F3FFFF71DAFBFF74DBFBFF75DB
|
||||||
|
FCFF75DBFCFF76DCFCFF73DAFAFF449CD4FF378CCBFF368CCBFF358CCCFF348D
|
||||||
|
CCFF3890CEFF3D94D0FF4398D2EB3D92CFFFB9F4FFFF73DBFBFF6BCCF2FF6CCD
|
||||||
|
F3FF6CCEF3FF6DCEF3FF479CD4FF56BAE9FFDAF8FFFFD7F6FFFFD6F6FFFFD5F6
|
||||||
|
FFFFD5F7FFFFDBFCFFFF3E94D0FF3E94D0FFABF0FFFF449DD6FF368CCBFF368C
|
||||||
|
CBFF368CCBFF378BCBFF5CBEEAFF6FD9FBFF6AD6FAFF68D5F9FF67D4F9FF66D4
|
||||||
|
F9FF82DEFCFFAAE0F6FF3885BCB94095D0FF8AD7F5FF44A1D8FFDDFDFFFFDAFA
|
||||||
|
FFFFDBFAFFFFDEFAFFFF74DCFCFF76DBFAFF75DAFAFF74DAFAFF74DAFAFF72D9
|
||||||
|
FAFFA1E8FFFF7CBFE6FF306F9C5E4296D1FF6BBEE8FF6DBDE6FFBBF2FFFF75DE
|
||||||
|
FDFF77DEFCFF78DEFCFF7BDFFCFF7DDFFCFF7DDFFCFF7DDFFCFF7CDFFCFF80E0
|
||||||
|
FDFFADF0FFFF4D9DD3FF0000000E4398D2FF4FA6D9FF8EDAF5FFA2EEFFFF82E5
|
||||||
|
FEFF84E5FEFF84E5FEFF85E6FEFF85E6FEFF85E6FEFF85E6FEFF84E6FEFF96EB
|
||||||
|
FFFF8CD8F5FF3985BCB84499D2004499D2FF3F94D0FFABFBFFFF9BF3FFFF92F1
|
||||||
|
FFFF93F1FFFF93F1FFFF93F1FFFF93F1FFFF93F1FFFF93F1FFFF93F1FFFFA6F8
|
||||||
|
FFFF65B8E3FF31709D5F469AD3004598D1F24398D2FF4094D0FF3E92CFFF3E92
|
||||||
|
CEFF3F92CEFF3F92CEFF3F92CEFF3F92CEFF3F92CEFF3F92CEFF3F92CEFF3F93
|
||||||
|
CFFF4194CEF00000000E469AD300000000300000003300000033000000330000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
00330000002F0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00B9841AB0B78012FFB67E0EFFB67E0EFFB780
|
||||||
|
11FFB98318D2BA851C00BA851C00BA851C00BA851C00BA851C00BA851C00BA86
|
||||||
|
1D00BB871E00FFFFFF00BB871F00B78012FFF7F5EDFFF5F1E5FFF5F0E5FFF6F3
|
||||||
|
EAFFB47A06FFB67D0CFFB67E0EFFB67E0EFFB67E0EFFB67E0EFFB67E0FFFB780
|
||||||
|
12FFB9841AD7FFFFFF00BB871F00B67E0FFFF5F1E4FFD1B87DFFD1B97DFFE9DF
|
||||||
|
C4FFF5F1E4FFF6F3E7FFF6F3E8FFF6F4EAFFF7F5EBFFF7F5ECFFF7F5ECFFF9FA
|
||||||
|
F4FFB88114FFFFFFFF00BB871F00B67E0EFFF2EBDCFFD5BE87FFD6BE88FFD6BE
|
||||||
|
87FFD5BD87FFD5BE88FFD6C08AFFD5BC86FFCFAF6CFFCFB06DFFCFAF6DFFE7D9
|
||||||
|
B8FFB78012FFFFFFFF00BB871E00B67E0FFFF1E9D7FFD9C490FFDAC693FFDAC6
|
||||||
|
94FFDAC694FFDBC796FFD9C591FFBC8821FFB47905FFB37904FFB37803FFB379
|
||||||
|
04FFB57C0AFFB78012FFB9841AEBB77F10FFEFE8D5FFDAC594FFD3B77AFFD4B8
|
||||||
|
7CFFD4B87CFFD5B97EFFBC8A23FFC8A357FFF6F2E7FFF5F0E3FFF4F0E2FFF4EF
|
||||||
|
E2FFF4F0E4FFF7F6EEFFB88113FFB78012FFEBE1C9FFBB8822FFB37904FFB378
|
||||||
|
03FFB37803FFB37803FFCBA85DFFD8C28EFFD6BF88FFD5BD85FFD5BD85FFD4BD
|
||||||
|
84FFDDC99DFFE6D4B1FFA57310B9B88215FFDEC796FFBD8D29FFF9F6EEFFF7F3
|
||||||
|
E9FFF7F3E9FFF8F4EAFFDBC695FFDBC594FFDBC592FFDBC492FFDBC491FFDAC3
|
||||||
|
90FFE7DABAFFD1B16EFF8961105EB98318FFD0AC64FFCEAB64FFEFE6D2FFDCC9
|
||||||
|
98FFDCC999FFDDC99AFFDECB9CFFDECB9DFFDECB9DFFDECB9DFFDECB9DFFDFCC
|
||||||
|
A1FFECE1C9FFBC8B24FF0000000EBA841AFFC19234FFDFCA9BFFE9DEC0FFE2D0
|
||||||
|
A6FFE2D1A7FFE2D1A8FFE3D1A8FFE3D1A8FFE3D1A9FFE3D1A9FFE3D1A8FFE8DA
|
||||||
|
B9FFDEC797FFA57310B8BA851D00BA851CFFB88113FFF2EBD9FFEDE2C6FFEBDF
|
||||||
|
BFFFEBDFBFFFEBDFBFFFEBDFBFFFEBDFBFFFEBDFBFFFEBDFBFFFEBDFBFFFF1E7
|
||||||
|
D1FFCCA65AFF8B62125FBB871E00B9851EF2B9851AFFB88114FFB67F10FFB67F
|
||||||
|
10FFB67F10FFB67F10FFB67F10FFB67F10FFB67F10FFB67F10FFB67F10FFB780
|
||||||
|
12FFB68117F00000000EBB871F00000000300000003300000033000000330000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
00330000002F0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
189
components/jvcllaz/examples/JvID3v2/JvID3v2MainFormU.pas
Normal file
189
components/jvcllaz/examples/JvID3v2/JvID3v2MainFormU.pas
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
{******************************************************************
|
||||||
|
|
||||||
|
JEDI-VCL Demo
|
||||||
|
|
||||||
|
Copyright (C) 2002 Project JEDI
|
||||||
|
|
||||||
|
Original author:
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
|
||||||
|
You may retrieve the latest version of this file at the JEDI-JVCL
|
||||||
|
home page, located at http://jvcl.delphi-jedi.org
|
||||||
|
|
||||||
|
The contents of this file are used with permission, subject to
|
||||||
|
the Mozilla Public License Version 1.1 (the "License"); you may
|
||||||
|
not use this file except in compliance with the License. You may
|
||||||
|
obtain a copy of the License at
|
||||||
|
http://www.mozilla.org/MPL/MPL-1_1Final.html
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on an
|
||||||
|
"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||||
|
implied. See the License for the specific language governing
|
||||||
|
rights and limitations under the License.
|
||||||
|
|
||||||
|
******************************************************************}
|
||||||
|
|
||||||
|
unit JvID3v2MainFormU;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Windows, SysUtils, FileUtil, Classes, Controls, Forms, //JvSearchFiles,
|
||||||
|
ComCtrls,
|
||||||
|
//JvDriveCtrls,
|
||||||
|
ExtCtrls, JvID3v2Base, JvId3v2, JvID3v2Types, //JvComponent,
|
||||||
|
StdCtrls, ShellCtrls; //, JvListBox, JvCombobox, JvExStdCtrls, JvComponentBase;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TJvID3v2MainForm }
|
||||||
|
|
||||||
|
TJvID3v2MainForm = class(TForm)
|
||||||
|
ImageList1: TImageList;
|
||||||
|
ListView1: TListView;
|
||||||
|
Splitter1: TSplitter;
|
||||||
|
JvID3v21: TJvID3v2;
|
||||||
|
Panel1: TPanel;
|
||||||
|
ShellTreeView: TShellTreeView;
|
||||||
|
procedure ListView1DblClick(Sender: TObject);
|
||||||
|
procedure ShellTreeViewChange(Sender: TObject);
|
||||||
|
procedure ShellTreeViewGetImageIndex(Sender: TObject; Node: TTreeNode);
|
||||||
|
procedure ShellTreeViewGetSelectedIndex(Sender: TObject; Node: TTreeNode);
|
||||||
|
procedure ShellTreeViewSelectionChanged(Sender: TObject);
|
||||||
|
private
|
||||||
|
FDir: string;
|
||||||
|
procedure FileFoundHandler(AIterator: TFileIterator);
|
||||||
|
public
|
||||||
|
procedure UpdateItem(Item: TListItem; const AFileName: string);
|
||||||
|
procedure ChangeToDir(const ANewDir: string);
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
JvID3v2MainForm: TJvID3v2MainForm;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
LazFileUtils,
|
||||||
|
JvID3v2EditFormU;
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
procedure TJvID3v2MainForm.ChangeToDir(const ANewDir: string);
|
||||||
|
var
|
||||||
|
lCursor: TCursor;
|
||||||
|
searcher: TFileSearcher;
|
||||||
|
begin
|
||||||
|
if ANewDir = FDir then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
FDir := ANewDir;
|
||||||
|
|
||||||
|
lCursor := Screen.Cursor;
|
||||||
|
Screen.Cursor := crHourGlass;
|
||||||
|
searcher := TFileSearcher.Create;
|
||||||
|
try
|
||||||
|
searcher.OnFileFound := @FileFoundHandler;
|
||||||
|
ListView1.Items.BeginUpdate;
|
||||||
|
try
|
||||||
|
ListView1.Items.Clear;
|
||||||
|
searcher.Search(ANewDir, '*.mp3', false);
|
||||||
|
finally
|
||||||
|
ListView1.Items.EndUpdate;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
searcher.Free;
|
||||||
|
Screen.Cursor := lCursor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2MainForm.ShellTreeViewChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
ChangeToDir(ShellTreeView.Path);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2MainForm.ShellTreeViewGetImageIndex(Sender: TObject;
|
||||||
|
Node: TTreeNode);
|
||||||
|
begin
|
||||||
|
if Node.Level = 0 then
|
||||||
|
Node.ImageIndex := 0
|
||||||
|
else
|
||||||
|
Node.ImageIndex := 1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2MainForm.ShellTreeViewGetSelectedIndex(Sender: TObject;
|
||||||
|
Node: TTreeNode);
|
||||||
|
begin
|
||||||
|
if Node.Level = 0 then
|
||||||
|
Node.SelectedIndex := 0
|
||||||
|
else
|
||||||
|
Node.SelectedIndex := 2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2MainForm.ShellTreeViewSelectionChanged(Sender: TObject);
|
||||||
|
begin
|
||||||
|
ChangeToDir(ShellTreeView.Path);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2MainForm.FileFoundHandler(AIterator: TFileIterator);
|
||||||
|
var
|
||||||
|
Item: TListItem;
|
||||||
|
HasTag: Boolean;
|
||||||
|
Version: TJvID3Version;
|
||||||
|
begin
|
||||||
|
Item := ListView1.Items.Add;
|
||||||
|
GetID3v2Version(AIterator.FileName, HasTag, Version);
|
||||||
|
if HasTag then
|
||||||
|
case Version of
|
||||||
|
iveLowerThan2_2: Item.Caption := '<2.2';
|
||||||
|
ive2_2: Item.Caption := '2.2';
|
||||||
|
ive2_3: Item.Caption := '2.3';
|
||||||
|
ive2_4: Item.Caption := '2.4';
|
||||||
|
iveHigherThan2_4: Item.Caption := '>2.4'
|
||||||
|
else
|
||||||
|
Item.Caption := '?';
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Item.Caption := '-';
|
||||||
|
Item.SubItems.Add(ExtractFileName(AIterator.Filename));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2MainForm.ListView1DblClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
lFileName: string;
|
||||||
|
begin
|
||||||
|
if Assigned(ListView1.Selected) then
|
||||||
|
begin
|
||||||
|
//LFileName := IncludeTrailingPathDelimiter(ShellTreeView.Directory) +
|
||||||
|
lFileName := AppendPathDelim(ShellTreeView.Path) + ListView1.Selected.SubItems[0];
|
||||||
|
if TJvID3v2EditForm.Execute(lFileName) then
|
||||||
|
UpdateItem(ListView1.Selected, lFileName);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvID3v2MainForm.UpdateItem(Item: TListItem; const AFileName: string);
|
||||||
|
var
|
||||||
|
HasTag: Boolean;
|
||||||
|
Version: TJvID3Version;
|
||||||
|
begin
|
||||||
|
GetID3v2Version(AFileName, HasTag, Version);
|
||||||
|
if HasTag then
|
||||||
|
case Version of
|
||||||
|
iveLowerThan2_2: Item.Caption := '<2.2';
|
||||||
|
ive2_2: Item.Caption := '2.2';
|
||||||
|
ive2_3: Item.Caption := '2.3';
|
||||||
|
ive2_4: Item.Caption := '2.4';
|
||||||
|
iveHigherThan2_4: Item.Caption := '>2.4'
|
||||||
|
else
|
||||||
|
Item.Caption := '?';
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Item.Caption := '-';
|
||||||
|
|
||||||
|
Item.SubItems[0] := ExtractFileName(AFileName);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
@ -15,7 +15,7 @@
|
|||||||
<Description Value="JVCL Multimedia Components (Runtime)."/>
|
<Description Value="JVCL Multimedia Components (Runtime)."/>
|
||||||
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
|
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
|
||||||
<Version Major="1" Release="4"/>
|
<Version Major="1" Release="4"/>
|
||||||
<Files Count="4">
|
<Files Count="7">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Filename Value="..\run\JvMM\JvSpecialProgress.pas"/>
|
<Filename Value="..\run\JvMM\JvSpecialProgress.pas"/>
|
||||||
<UnitName Value="JvSpecialProgress"/>
|
<UnitName Value="JvSpecialProgress"/>
|
||||||
@ -32,6 +32,18 @@
|
|||||||
<Filename Value="..\run\JvMM\JvId3v1.pas"/>
|
<Filename Value="..\run\JvMM\JvId3v1.pas"/>
|
||||||
<UnitName Value="JvId3v1"/>
|
<UnitName Value="JvId3v1"/>
|
||||||
</Item4>
|
</Item4>
|
||||||
|
<Item5>
|
||||||
|
<Filename Value="..\run\JvMM\JvId3v2Types.pas"/>
|
||||||
|
<UnitName Value="JvId3v2Types"/>
|
||||||
|
</Item5>
|
||||||
|
<Item6>
|
||||||
|
<Filename Value="..\run\JvMM\JvID3v2Base.pas"/>
|
||||||
|
<UnitName Value="JvID3v2Base"/>
|
||||||
|
</Item6>
|
||||||
|
<Item7>
|
||||||
|
<Filename Value="..\run\JvMM\JvId3v2.pas"/>
|
||||||
|
<UnitName Value="JvId3v2"/>
|
||||||
|
</Item7>
|
||||||
</Files>
|
</Files>
|
||||||
<RequiredPkgs Count="2">
|
<RequiredPkgs Count="2">
|
||||||
<Item1>
|
<Item1>
|
||||||
|
Binary file not shown.
@ -66,6 +66,8 @@ const
|
|||||||
USDecimalSeparator = '.';
|
USDecimalSeparator = '.';
|
||||||
|
|
||||||
WideNull = WideChar(#0);
|
WideNull = WideChar(#0);
|
||||||
|
BOM_LSB_FIRST = WideChar($FEFF);
|
||||||
|
BOM_MSB_FIRST = WideChar($FFFE);
|
||||||
|
|
||||||
(******************** NOT CONVERTED
|
(******************** NOT CONVERTED
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
@ -1203,6 +1205,9 @@ function ReverseBytes(Value: Word): Word; overload; // taken from JclLogic
|
|||||||
function ReverseBytes(Value: Integer): Integer; overload;
|
function ReverseBytes(Value: Integer): Integer; overload;
|
||||||
function ReverseBytes(Value: Cardinal): Cardinal; overload;
|
function ReverseBytes(Value: Cardinal): Cardinal; overload;
|
||||||
|
|
||||||
|
function BEtoN(const AValue: WideString): WideString; overload;
|
||||||
|
function NtoBE(const AValue: WideString): WideString; overload;
|
||||||
|
|
||||||
// taken from JclFileUtils
|
// taken from JclFileUtils
|
||||||
function FindUnusedFileName(FileName: string; const FileExt: string; NumberPrefix: string = ''): string;
|
function FindUnusedFileName(FileName: string; const FileExt: string; NumberPrefix: string = ''): string;
|
||||||
|
|
||||||
@ -9788,6 +9793,35 @@ begin
|
|||||||
Result := (Value shr 24) or (Value shl 24) or ((Value and $00FF0000) shr 8) or ((Value and $0000FF00) shl 8);
|
Result := (Value shr 24) or (Value shl 24) or ((Value and $00FF0000) shr 8) or ((Value and $0000FF00) shl 8);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// from fpexif
|
||||||
|
function BEtoN(const AValue: WideString): WideString;
|
||||||
|
{$IFNDEF ENDIAN_BIG}
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
{$ENDIF}
|
||||||
|
begin
|
||||||
|
{$IFDEF ENDIAN_BIG}
|
||||||
|
Result := AValue;
|
||||||
|
{$ELSE}
|
||||||
|
SetLength(Result, Length(AValue));
|
||||||
|
for i:=1 to Length(AValue) do
|
||||||
|
Result[i] := WideChar(BEToN(PDWord(@AValue[i])^));
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
function NtoBE(const AValue: WideString): WideString;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
{$IFDEF ENDIAN_BIG}
|
||||||
|
Result := AValue;
|
||||||
|
{$ELSE}
|
||||||
|
SetLength(Result, Length(AValue));
|
||||||
|
for i:=1 to Length(AValue) do
|
||||||
|
Result[i] := WideChar(NtoBE(PDWord(@AValue[i])^));
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
// from JclLogic
|
// from JclLogic
|
||||||
function ReverseBytes(Value: Cardinal): Cardinal;
|
function ReverseBytes(Value: Cardinal): Cardinal;
|
||||||
begin
|
begin
|
||||||
|
9167
components/jvcllaz/run/JvMM/JvID3v2Base.pas
Normal file
9167
components/jvcllaz/run/JvMM/JvID3v2Base.pas
Normal file
File diff suppressed because it is too large
Load Diff
@ -47,11 +47,11 @@ type
|
|||||||
|
|
||||||
TJvID3v1 = class(TComponent) //TJvComponent)
|
TJvID3v1 = class(TComponent) //TJvComponent)
|
||||||
private
|
private
|
||||||
FSongName: AnsiString;
|
FSongName: String;
|
||||||
FArtist: AnsiString;
|
FArtist: String;
|
||||||
FAlbum: AnsiString;
|
FAlbum: String;
|
||||||
FComment: AnsiString;
|
FComment: String;
|
||||||
FYear: AnsiString;
|
FYear: String;
|
||||||
FGenre: Byte;
|
FGenre: Byte;
|
||||||
FFileName: TFileName;
|
FFileName: TFileName;
|
||||||
FActive: Boolean;
|
FActive: Boolean;
|
||||||
@ -82,11 +82,11 @@ type
|
|||||||
property Active: Boolean read FActive write SetActive;
|
property Active: Boolean read FActive write SetActive;
|
||||||
property FileName: TFileName read FFileName write SetFileName;
|
property FileName: TFileName read FFileName write SetFileName;
|
||||||
{ Do not store dummies }
|
{ Do not store dummies }
|
||||||
property SongName: AnsiString read FSongName write FSongName stored False;
|
property SongName: String read FSongName write FSongName stored False;
|
||||||
property Artist: AnsiString read FArtist write FArtist stored False;
|
property Artist: String read FArtist write FArtist stored False;
|
||||||
property Album: AnsiString read FAlbum write FAlbum stored False;
|
property Album: String read FAlbum write FAlbum stored False;
|
||||||
property Year: AnsiString read FYear write FYear stored False;
|
property Year: String read FYear write FYear stored False;
|
||||||
property Comment: AnsiString read FComment write FComment stored False;
|
property Comment: String read FComment write FComment stored False;
|
||||||
property Genre: Byte read FGenre write FGenre stored False;
|
property Genre: Byte read FGenre write FGenre stored False;
|
||||||
property GenreAsString: string read GetGenreAsString write SetGenreAsString stored False;
|
property GenreAsString: string read GetGenreAsString write SetGenreAsString stored False;
|
||||||
property AlbumTrack: Byte read FAlbumTrack write FAlbumTrack stored False;
|
property AlbumTrack: Byte read FAlbumTrack write FAlbumTrack stored False;
|
||||||
@ -101,7 +101,7 @@ function WriteID3v1Tag(const AFileName: string; const ATag: TID3v1Tag): Boolean;
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Math,
|
Math, LConvEncoding,
|
||||||
JvId3v2Types, JvTypes, JvResources;
|
JvId3v2Types, JvTypes, JvResources;
|
||||||
|
|
||||||
const
|
const
|
||||||
@ -110,6 +110,7 @@ const
|
|||||||
CTagSize = 128;
|
CTagSize = 128;
|
||||||
CTagIDSize = 3;
|
CTagIDSize = 3;
|
||||||
|
|
||||||
|
|
||||||
//=== Global procedures ======================================================
|
//=== Global procedures ======================================================
|
||||||
|
|
||||||
function HasID3v1Tag(const AFileName: string): Boolean;
|
function HasID3v1Tag(const AFileName: string): Boolean;
|
||||||
@ -196,6 +197,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
//=== Local procedures =======================================================
|
//=== Local procedures =======================================================
|
||||||
|
|
||||||
procedure AnsiStringToPAnsiChar(const Source: AnsiString; Dest: PAnsiChar; const MaxLength: Integer);
|
procedure AnsiStringToPAnsiChar(const Source: AnsiString; Dest: PAnsiChar; const MaxLength: Integer);
|
||||||
@ -215,6 +217,7 @@ begin
|
|||||||
SetString(Result, Q, P - Q);
|
SetString(Result, Q, P - Q);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
//=== { TJvID3v1 } ===========================================================
|
//=== { TJvID3v1 } ===========================================================
|
||||||
|
|
||||||
procedure TJvID3v1.Loaded;
|
procedure TJvID3v1.Loaded;
|
||||||
@ -249,11 +252,11 @@ begin
|
|||||||
|
|
||||||
// Set new Tag
|
// Set new Tag
|
||||||
Move(CID3v1Tag[0], lTag.Identifier[0], 3);
|
Move(CID3v1Tag[0], lTag.Identifier[0], 3);
|
||||||
AnsiStringToPAnsiChar(SongName, @lTag.SongName, 30);
|
AnsiStringToPAnsiChar(UTF8ToISO_8859_1(SongName), @lTag.SongName, 30);
|
||||||
AnsiStringToPAnsiChar(Artist, @lTag.Artist, 30);
|
AnsiStringToPAnsiChar(UTF8ToISO_8859_1(Artist), @lTag.Artist, 30);
|
||||||
AnsiStringToPAnsiChar(Album, @lTag.Album, 30);
|
AnsiStringToPAnsiChar(UTF8ToISO_8859_1(Album), @lTag.Album, 30);
|
||||||
AnsiStringToPAnsiChar(Year, @lTag.Year, 4);
|
AnsiStringToPAnsiChar(Year, @lTag.Year, 4);
|
||||||
AnsiStringToPAnsiChar(Comment, @lTag.Comment, 30);
|
AnsiStringToPAnsiChar(UTF8ToISO_8859_1(Comment), @lTag.Comment, 30);
|
||||||
lTag.Genre := FGenre;
|
lTag.Genre := FGenre;
|
||||||
if lTag.Comment[28] = #0 then
|
if lTag.Comment[28] = #0 then
|
||||||
lTag.Comment[29] := AnsiChar(FAlbumTrack);
|
lTag.Comment[29] := AnsiChar(FAlbumTrack);
|
||||||
@ -322,11 +325,11 @@ begin
|
|||||||
|
|
||||||
if Result then
|
if Result then
|
||||||
begin
|
begin
|
||||||
FSongName := PAnsiCharToAnsiString(@lTag.SongName, 30);
|
FSongName := ISO_8859_1ToUTF8(PAnsiCharToAnsiString(@lTag.SongName, 30));
|
||||||
FArtist := PAnsiCharToAnsiString(@lTag.Artist, 30);
|
FArtist := ISO_8859_1ToUTF8(PAnsiCharToAnsiString(@lTag.Artist, 30));
|
||||||
FAlbum := PAnsiCharToAnsiString(@lTag.Album, 30);
|
FAlbum := ISO_8859_1ToUTF8(PAnsiCharToAnsiString(@lTag.Album, 30));
|
||||||
FYear := PAnsiCharToAnsiString(@lTag.Year, 4);
|
FYear := PAnsiCharToAnsiString(@lTag.Year, 4);
|
||||||
FComment := PAnsiCharToAnsiString(@lTag.Comment, 30);
|
FComment := ISO_8859_1ToUTF8(PAnsiCharToAnsiString(@lTag.Comment, 30));
|
||||||
// (p3) missing genre added
|
// (p3) missing genre added
|
||||||
FGenre := lTag.Genre;
|
FGenre := lTag.Genre;
|
||||||
if lTag.Comment[28] = #0 then
|
if lTag.Comment[28] = #0 then
|
||||||
|
1165
components/jvcllaz/run/JvMM/JvId3v2.pas
Normal file
1165
components/jvcllaz/run/JvMM/JvId3v2.pas
Normal file
File diff suppressed because it is too large
Load Diff
1589
components/jvcllaz/run/JvMM/JvId3v2Types.pas
Normal file
1589
components/jvcllaz/run/JvMM/JvId3v2Types.pas
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user