📄 viewlist.pas
字号:
end;
procedure TfrmViewList.GridItemBindCharNameClick(Sender: TObject);
var
nIndex:Integer;
ItemBind:pTItemBind;
begin
nIndex:=GridItemBindCharName.Row - 1;
if nIndex < 0 then exit;
g_ItemBindCharName.Lock;
try
if nIndex >= g_ItemBindCharName.Count then exit;
ItemBind:=pTItemBind(g_ItemBindCharName.Items[nIndex]);
EditItemBindCharNameItemName.Text:=UserEngine.GetStdItemName(ItemBind.nItemIdx);
EditItemBindCharNameItemIdx.Value:=ItemBind.nItemIdx;
EditItemBindCharNameItemMakeIdx.Value:=ItemBind.nMakeIdex;
EditItemBindCharNameName.Text:=ItemBind.sBindName;
finally
g_ItemBindCharName.UnLock;
end;
ButtonItemBindCharNameDel.Enabled:=True;
end;
procedure TfrmViewList.EditItemBindCharNameItemIdxChange(Sender: TObject);
begin
if EditItemBindCharNameItemIdx.Text = '' then begin
EditItemBindCharNameItemIdx.Text:='0';
exit;
end;
EditItemBindCharNameItemName.Text:=UserEngine.GetStdItemName(EditItemBindCharNameItemIdx.Value);
ButtonItemBindCharNameMod.Enabled:=True;
end;
procedure TfrmViewList.EditItemBindCharNameItemMakeIdxChange(
Sender: TObject);
begin
if EditItemBindCharNameItemMakeIdx.Text = '' then begin
EditItemBindCharNameItemMakeIdx.Text:='0';
exit;
end;
ButtonItemBindCharNameMod.Enabled:=True;
end;
procedure TfrmViewList.EditItemBindCharNameNameChange(Sender: TObject);
begin
ButtonItemBindCharNameMod.Enabled:=True;
end;
procedure TfrmViewList.ButtonItemBindCharNameAddClick(Sender: TObject);
var
I:Integer;
nMakeIdex:Integer;
nItemIdx :Integer;
sBindName:String;
ItemBind:pTItemBind;
begin
nItemIdx:=EditItemBindCharNameItemIdx.Value;
nMakeIdex:=EditItemBindCharNameItemMakeIdx.Value;
sBindName:=Trim(EditItemBindCharNameName.Text);
if (nItemIdx <= 0) or (nMakeIdex < 0) or (sBindName = '') then begin
Application.MessageBox('输入的信息不正确!!!','提示信息',MB_OK + MB_ICONERROR);
exit;
end;
g_ItemBindCharName.Lock;
try
for I := 0 to g_ItemBindCharName.Count - 1 do begin
ItemBind:=g_ItemBindCharName.Items[I];
if (ItemBind.nItemIdx = nItemIdx) and (ItemBind.nMakeIdex = nMakeIdex) then begin
Application.MessageBox('此物品已经绑定到其他的角色上了!!!','提示信息',MB_OK + MB_ICONERROR);
exit;
end;
end;
New(ItemBind);
ItemBind.nItemIdx:=nItemIdx;
ItemBind.nMakeIdex:=nMakeIdex;
ItemBind.sBindName:=sBindName;
g_ItemBindCharName.Insert(0,ItemBind);
finally
g_ItemBindCharName.UnLock;
end;
SaveItemBindCharName();
RefItemBindCharName();
end;
procedure TfrmViewList.ButtonItemBindCharNameModClick(Sender: TObject);
var
nSelIndex:Integer;
nMakeIdex:Integer;
nItemIdx :Integer;
sBindName:String;
ItemBind:pTItemBind;
begin
nItemIdx:=EditItemBindCharNameItemIdx.Value;
nMakeIdex:=EditItemBindCharNameItemMakeIdx.Value;
sBindName:=Trim(EditItemBindCharNameName.Text);
nSelIndex:=GridItemBindCharName.Row -1;
if nSelIndex < 0 then exit;
g_ItemBindCharName.Lock;
try
if nSelIndex >= g_ItemBindCharName.Count then exit;
ItemBind:=g_ItemBindCharName.Items[nSelIndex];
ItemBind.nItemIdx:=nItemIdx;
ItemBind.nMakeIdex:=nMakeIdex;
ItemBind.sBindName:=sBindName;
finally
g_ItemBindCharName.UnLock;
end;
SaveItemBindCharName();
RefItemBindCharName();
end;
procedure TfrmViewList.ButtonItemBindCharNameDelClick(Sender: TObject);
var
ItemBind:pTItemBind;
nSelIndex:Integer;
begin
nSelIndex:=GridItemBindCharName.Row -1;
if nSelIndex < 0 then exit;
g_ItemBindCharName.Lock;
try
if nSelIndex >= g_ItemBindCharName.Count then exit;
ItemBind:=g_ItemBindCharName.Items[nSelIndex];
Dispose(ItemBind);
g_ItemBindCharName.Delete(nSelIndex);
finally
g_ItemBindCharName.UnLock;
end;
SaveItemBindCharName();
RefItemBindCharName();
end;
procedure TfrmViewList.ButtonItemBindCharNameRefClick(Sender: TObject);
begin
RefItemBindCharName();
end;
procedure TfrmViewList.RefItemBindIPaddr;
var
I:Integer;
ItemBind:pTItemBind;
begin
GridItemBindIPaddr.RowCount:=2;
GridItemBindIPaddr.Cells[0,1]:='';
GridItemBindIPaddr.Cells[1,1]:='';
GridItemBindIPaddr.Cells[2,1]:='';
GridItemBindIPaddr.Cells[3,1]:='';
ButtonItemBindIPaddrMod.Enabled:=False;
ButtonItemBindIPaddrDel.Enabled:=False;
g_ItemBindIPaddr.Lock;
try
GridItemBindIPaddr.RowCount:=g_ItemBindIPaddr.Count + 1;
for I := 0 to g_ItemBindIPaddr.Count - 1 do begin
ItemBind:=g_ItemBindIPaddr.Items[I];
if ItemBind <> nil then begin
GridItemBindIPaddr.Cells[0,I + 1]:=UserEngine.GetStdItemName(ItemBind.nItemIdx);
GridItemBindIPaddr.Cells[1,I + 1]:=IntToStr(ItemBind.nItemIdx);
GridItemBindIPaddr.Cells[2,I + 1]:=IntToStr(ItemBind.nMakeIdex);
GridItemBindIPaddr.Cells[3,I + 1]:=ItemBind.sBindName;
end;
end;
finally
g_ItemBindIPaddr.UnLock;
end;
end;
procedure TfrmViewList.GridItemBindIPaddrClick(Sender: TObject);
var
nIndex:Integer;
ItemBind:pTItemBind;
begin
nIndex:=GridItemBindIPaddr.Row - 1;
if nIndex < 0 then exit;
g_ItemBindIPaddr.Lock;
try
if nIndex >= g_ItemBindIPaddr.Count then exit;
ItemBind:=pTItemBind(g_ItemBindIPaddr.Items[nIndex]);
EditItemBindIPaddrItemName.Text:=UserEngine.GetStdItemName(ItemBind.nItemIdx);
EditItemBindIPaddrItemIdx.Value:=ItemBind.nItemIdx;
EditItemBindIPaddrItemMakeIdx.Value:=ItemBind.nMakeIdex;
EditItemBindIPaddrName.Text:=ItemBind.sBindName;
finally
g_ItemBindIPaddr.UnLock;
end;
ButtonItemBindIPaddrDel.Enabled:=True;
end;
procedure TfrmViewList.EditItemBindIPaddrItemIdxChange(Sender: TObject);
begin
if EditItemBindIPaddrItemIdx.Text = '' then begin
EditItemBindIPaddrItemIdx.Text:='0';
exit;
end;
EditItemBindIPaddrItemName.Text:=UserEngine.GetStdItemName(EditItemBindIPaddrItemIdx.Value);
ButtonItemBindIPaddrMod.Enabled:=True;
end;
procedure TfrmViewList.EditItemBindIPaddrItemMakeIdxChange(
Sender: TObject);
begin
if EditItemBindIPaddrItemMakeIdx.Text = '' then begin
EditItemBindIPaddrItemMakeIdx.Text:='0';
exit;
end;
ButtonItemBindIPaddrMod.Enabled:=True;
end;
procedure TfrmViewList.EditItemBindIPaddrNameChange(Sender: TObject);
begin
ButtonItemBindIPaddrMod.Enabled:=True;
end;
procedure TfrmViewList.ButtonItemBindIPaddrAddClick(Sender: TObject);
var
I:Integer;
nMakeIdex:Integer;
nItemIdx :Integer;
sBindName:String;
ItemBind:pTItemBind;
begin
nItemIdx:=EditItemBindIPaddrItemIdx.Value;
nMakeIdex:=EditItemBindIPaddrItemMakeIdx.Value;
sBindName:=Trim(EditItemBindIPaddrName.Text);
if not IsIPaddr(sBindName) then begin
Application.MessageBox('IP地址格式输入不正确!!!','提示信息',MB_OK + MB_ICONERROR);
EditItemBindIPaddrName.SetFocus;
exit;
end;
if (nItemIdx <= 0) or (nMakeIdex < 0) then begin
Application.MessageBox('输入的信息不正确!!!','提示信息',MB_OK + MB_ICONERROR);
exit;
end;
g_ItemBindIPaddr.Lock;
try
for I := 0 to g_ItemBindIPaddr.Count - 1 do begin
ItemBind:=g_ItemBindIPaddr.Items[I];
if (ItemBind.nItemIdx = nItemIdx) and (ItemBind.nMakeIdex = nMakeIdex) then begin
Application.MessageBox('此物品已经绑定到其他的IP地址上了!!!','提示信息',MB_OK + MB_ICONERROR);
exit;
end;
end;
New(ItemBind);
ItemBind.nItemIdx:=nItemIdx;
ItemBind.nMakeIdex:=nMakeIdex;
ItemBind.sBindName:=sBindName;
g_ItemBindIPaddr.Insert(0,ItemBind);
finally
g_ItemBindIPaddr.UnLock;
end;
SaveItemBindIPaddr();
RefItemBindIPaddr();
end;
procedure TfrmViewList.ButtonItemBindIPaddrModClick(Sender: TObject);
var
nSelIndex:Integer;
nMakeIdex:Integer;
nItemIdx :Integer;
sBindName:String;
ItemBind:pTItemBind;
begin
nItemIdx:=EditItemBindIPaddrItemIdx.Value;
nMakeIdex:=EditItemBindIPaddrItemMakeIdx.Value;
sBindName:=Trim(EditItemBindIPaddrName.Text);
if not IsIPaddr(sBindName) then begin
Application.MessageBox('IP地址格式输入不正确!!!','提示信息',MB_OK + MB_ICONERROR);
EditItemBindIPaddrName.SetFocus;
exit;
end;
nSelIndex:=GridItemBindIPaddr.Row -1;
if nSelIndex < 0 then exit;
g_ItemBindIPaddr.Lock;
try
if nSelIndex >= g_ItemBindIPaddr.Count then exit;
ItemBind:=g_ItemBindIPaddr.Items[nSelIndex];
ItemBind.nItemIdx:=nItemIdx;
ItemBind.nMakeIdex:=nMakeIdex;
ItemBind.sBindName:=sBindName;
finally
g_ItemBindIPaddr.UnLock;
end;
SaveItemBindIPaddr();
RefItemBindIPaddr();
end;
procedure TfrmViewList.ButtonItemBindIPaddrDelClick(Sender: TObject);
var
ItemBind:pTItemBind;
nSelIndex:Integer;
begin
nSelIndex:=GridItemBindIPaddr.Row -1;
if nSelIndex < 0 then exit;
g_ItemBindIPaddr.Lock;
try
if nSelIndex >= g_ItemBindIPaddr.Count then exit;
ItemBind:=g_ItemBindIPaddr.Items[nSelIndex];
Dispose(ItemBind);
g_ItemBindIPaddr.Delete(nSelIndex);
finally
g_ItemBindIPaddr.UnLock;
end;
SaveItemBindIPaddr();
RefItemBindIPaddr();
end;
procedure TfrmViewList.ButtonItemBindIPaddrRefClick(Sender: TObject);
begin
RefItemBindIPaddr();
end;
procedure TfrmViewList.RefItemCustomNameList;
var
I:Integer;
ItemName:pTItemName;
begin
// GridItemNameList.RowCount:=2;
GridItemNameList.Cells[0,1]:='';
GridItemNameList.Cells[1,1]:='';
GridItemNameList.Cells[2,1]:='';
ButtonItemNameMod.Enabled:=False;
ButtonItemNameDel.Enabled:=False;
ItemUnit.m_ItemNameList.Lock;
try
GridItemNameList.RowCount:=ItemUnit.m_ItemNameList.Count + 1;
for I := 0 to ItemUnit.m_ItemNameList.Count - 1 do begin
ItemName:=ItemUnit.m_ItemNameList.Items[I];
if ItemName <> nil then begin
GridItemNameList.Cells[0,I + 1]:=UserEngine.GetStdItemName(ItemName.nItemIndex);
GridItemNameList.Cells[1,I + 1]:=IntToStr(ItemName.nMakeIndex);
GridItemNameList.Cells[2,I + 1]:=ItemName.sItemName;
end;
end;
finally
ItemUnit.m_ItemNameList.UnLock;
end;
end;
procedure TfrmViewList.GridItemNameListClick(Sender: TObject);
var
nIndex:Integer;
ItemName:pTItemName;
begin
nIndex:=GridItemNameList.Row - 1;
if nIndex < 0 then exit;
ItemUnit.m_ItemNameList.Lock;
try
if nIndex >= ItemUnit.m_ItemNameList.Count then exit;
ItemName:=pTItemName(ItemUnit.m_ItemNameList.Items[nIndex]);
EditItemNameOldName.Text:=UserEngine.GetStdItemName(ItemName.nItemIndex);
EditItemNameIdx.Value:=ItemName.nItemIndex;
EditItemNameMakeIndex.Value:=ItemName.nMakeIndex;
EditItemNameNewName.Text:=ItemName.sItemName;
finally
ItemUnit.m_ItemNameList.UnLock;
end;
ButtonItemNameDel.Enabled:=True;
end;
procedure TfrmViewList.EditItemNameIdxChange(Sender: TObject);
begin
EditItemNameOldName.Text:=UserEngine.GetStdItemName(EditItemNameIdx.Value);
ButtonItemNameMod.Enabled:=True;
end;
procedure TfrmViewList.EditItemNameMakeIndexChange(Sender: TObject);
begin
ButtonItemNameMod.Enabled:=True;
end;
procedure TfrmViewList.EditItemNameNewNameChange(Sender: TObject);
begin
ButtonItemNameMod.Enabled:=True;
end;
procedure TfrmViewList.ButtonItemNameAddClick(Sender: TObject);
var
I:Integer;
nMakeIdex:Integer;
nItemIdx :Integer;
sNewName:String;
ItemName:pTItemName;
begin
nItemIdx:=EditItemNameIdx.Value;
nMakeIdex:=EditItemNameMakeIndex.Value;
sNewName:=Trim(EditItemNameNewName.Text);
if (nItemIdx <= 0) or (nMakeIdex < 0) or (sNewName = '') then begin
Application.MessageBox('输入的信息不正确!!!','提示信息',MB_OK + MB_ICONERROR);
exit;
end;
ItemUnit.m_ItemNameList.Lock;
try
for I := 0 to ItemUnit.m_ItemNameList.Count - 1 do begin
ItemName:=ItemUnit.m_ItemNameList.Items[I];
if (ItemName.nItemIndex = nItemIdx) and (ItemName.nMakeIndex = nMakeIdex) then begin
Application.MessageBox('此物品已经自定义过名称了!!!','提示信息',MB_OK + MB_ICONERROR);
exit;
end;
end;
New(ItemName);
ItemName.nItemIndex:=nItemIdx;
ItemName.nMakeIndex:=nMakeIdex;
ItemName.sItemName:=sNewName;
ItemUnit.m_ItemNameList.Insert(0,ItemName);
finally
ItemUnit.m_ItemNameList.UnLock;
end;
ItemUnit.SaveCustomItemName();
RefItemCustomNameList();
end;
procedure TfrmViewList.ButtonItemNameModClick(Sender: TObject);
var
nSelIndex:Integer;
nMakeIdex:Integer;
nItemIdx :Integer;
sNewName:String;
ItemName:pTItemName;
begin
nItemIdx:=EditItemNameIdx.Value;
nMakeIdex:=EditItemNameMakeIndex.Value;
sNewName:=Trim(EditItemNameNewName.Text);
nSelIndex:=GridItemNameList.Row -1;
if nSelIndex < 0 then exit;
ItemUnit.m_ItemNameList.Lock;
try
if nSelIndex >= ItemUnit.m_ItemNameList.Count then exit;
ItemName:=ItemUnit.m_ItemNameList.Items[nSelIndex];
ItemName.nItemIndex:=nItemIdx;
ItemName.nMakeIndex:=nMakeIdex;
ItemName.sItemName:=sNewName;
finally
ItemUnit.m_ItemNameList.UnLock;
end;
ItemUnit.SaveCustomItemName();
RefItemCustomNameList();
end;
procedure TfrmViewList.ButtonItemNameDelClick(Sender: TObject);
var
ItemName:pTItemName;
nSelIndex:Integer;
begin
nSelIndex:=GridItemNameList.Row -1;
if nSelIndex < 0 then exit;
ItemUnit.m_ItemNameList.Lock;
try
if nSelIndex >= ItemUnit.m_ItemNameList.Count then exit;
ItemName:=ItemUnit.m_ItemNameList.Items[nSelIndex];
Dispose(ItemName);
ItemUnit.m_ItemNameList.Delete(nSelIndex);
finally
ItemUnit.m_ItemNameList.UnLock;
end;
ItemUnit.SaveCustomItemName();
RefItemCustomNameList();
end;
procedure TfrmViewList.ButtonItemNameRefClick(Sender: TObject);
begin
RefItemCustomNameList();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -