📄 ufunctions.pas
字号:
unit uFunctions;
interface
uses IniFiles,SysUtils,Forms,DB,Dialogs,ShellApi,Windows;
type
TFrmAlterDataAction = (faInsert,faEdit);
var
fActiveDatabaseFile : String;
procedure WriteIni(SectionStr,KeyStr,ValueStr:String);
function ReadIni(SectionStr,KeyStr,ValueStr:String):String;
procedure InitializeApp;
procedure InitializeCDS;
procedure ReOrderCDS;
procedure BuildCDSFilter;
procedure PlayCurrentFile;
function ShowMsgDialog(CapStr:String;MesStr:String;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons):Integer;
implementation
uses dMain, Classes,fMain, StdCtrls;
procedure WriteIni(SectionStr,KeyStr,ValueStr:String);
var
IniF : TIniFile;
TempPath : String;
begin
TempPath := ExtractFileDir(Application.ExeName)+'\Settings\LyricsOrganizer.Settings';
IniF := TIniFile.Create(TempPath);
IniF.WriteString(SectionStr,KeyStr,ValueStr);
// IniF.Free;
FreeAndNil(IniF);
end;
function ReadIni(SectionStr,KeyStr,ValueStr:String):String;
var
IniF : TIniFile;
TempPath : String;
begin
TempPath := ExtractFileDir(Application.ExeName)+'\Settings\LyricsOrganizer.Settings';
IniF := TIniFile.Create(TempPath);
Result := IniF.ReadString(SectionStr,KeyStr,ValueStr);
// IniF.Free;
FreeAndNil(IniF);
end;
procedure InitializeApp;
var
sTemp : String;
begin
sTemp := ExtractFileDir(Application.ExeName);
if not DirectoryExists(sTemp+'\Database') then
CreateDir(sTemp+'\Database');
if not DirectoryExists(sTemp+'\Settings') then
CreateDir(sTemp+'\Settings');
if not FileExists(sTemp+'\Database\Lyrics.dbLyrics') then
InitializeCDS
else dModule.cdsMain.LoadFromFile(sTemp+'\Database\Lyrics.dbLyrics');
frmMain.cbField.ItemIndex := StrToInt(ReadIni('LyricSearch','FieldIndex','0'));
ReOrderCDS;
dModule.cdsMain.First;
end;
procedure InitializeCDS;
begin
dModule.cdsMain.FieldDefs.Clear;
with dModule.cdsMain.FieldDefs.AddFieldDef do
begin
Name := 'Id';
DataType := ftAutoInc;
end;
with dModule.cdsMain.FieldDefs.AddFieldDef do
begin
Name := 'Artist';
DataType := ftString;
Size := 180;
end;
with dModule.cdsMain.FieldDefs.AddFieldDef do
begin
Name := 'Album';
DataType := ftString;
Size := 180;
end;
with dModule.cdsMain.FieldDefs.AddFieldDef do
begin
Name := 'Title';
DataType := ftString;
Size := 180;
end;
with dModule.cdsMain.FieldDefs.AddFieldDef do
begin
Name := 'Lyric';
DataType := ftMemo;
end;
with dModule.cdsMain.FieldDefs.AddFieldDef do
begin
Name := 'SongFileName';
DataType := ftString;
Size := 500;
end;
dModule.cdsMain.CreateDataSet;
dModule.cdsMain.SaveToFile(ExtractFileDir(Application.ExeName)+'\Database\Lyrics.dbLyrics');
end;
function ShowMsgDialog(CapStr:String;MesStr:String;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons):Integer;
var
TempForm : TForm;
// i : Integer;
begin
TempForm := CreateMessageDialog(MesStr,DlgType,Buttons);
TempForm.Caption := CapStr;
{ TempForm.Top := FrmMain.Height + 50;
TempForm.Left := Round(FrmMain.Width / 2) - Round(TempForm.Width/2);
for i := 0 to TempForm.ComponentCount - 1 do
begin
if TempForm.Components[i] is TButton then
begin
TempBtn := TButton(TempForm.Components[i]);
if LowerCase(TempBtn.Name) = 'yes' then TempBtn.Caption := '歪
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -