2 |
|
interface |
3 |
|
uses |
4 |
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
5 |
< |
Dialogs, StdCtrls, Template; |
5 |
> |
Dialogs, StdCtrls, Template, ExtCtrls; |
6 |
|
|
7 |
|
type |
8 |
|
TForm_WhatLinksHere = class(TForm) |
9 |
< |
list: TListBox; |
9 |
> |
Panel1: TPanel; |
10 |
> |
list_from: TListBox; |
11 |
|
label_what: TLabel; |
12 |
+ |
Panel2: TPanel; |
13 |
+ |
label_to: TLabel; |
14 |
+ |
list_to: TListBox; |
15 |
+ |
Splitter1: TSplitter; |
16 |
|
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
17 |
|
procedure FormShow(Sender: TObject); |
18 |
< |
procedure listDblClick(Sender: TObject); |
18 |
> |
procedure list_fromDblClick(Sender: TObject); |
19 |
|
private |
20 |
|
public |
21 |
|
SenderForm: TForm_ToolTemplate; |
46 |
|
links: TLinks; |
47 |
|
i: Integer; |
48 |
|
fullname: String; |
49 |
+ |
links_to: TDatLinkList; |
50 |
|
begin |
51 |
|
Form_Main.Enabled := False; |
52 |
< |
list.Items.Clear; |
52 |
> |
list_from.Items.Clear; |
53 |
> |
list_to.Items.Clear; |
54 |
|
fileinfo := ConManager.Connection[ConID].GetFileInfo(FileID); |
55 |
|
label_what.Caption := FormatNumber(fileinfo.ID, 5, '0') + '-' + |
56 |
|
fileinfo.Name + '.' + fileinfo.Extension; |
57 |
< |
links := TAccess_OUP_ADB(ConManager.Connection[ConID]).GetLinksToFile(fileinfo.ID); |
58 |
< |
if Length(links.ByID) > 0 then |
59 |
< |
for i := 0 to High(links.ByID) do |
57 |
> |
links_to := ConManager.Connection[ConID].GetDatLinks(fileinfo.ID); |
58 |
> |
if ConManager.Connection[ConID] is TAccess_OUP_ADB then begin |
59 |
> |
links := TAccess_OUP_ADB(ConManager.Connection[ConID]).GetLinksToFile(fileinfo.ID); |
60 |
> |
if Length(links.ByID) > 0 then |
61 |
> |
for i := 0 to High(links.ByID) do |
62 |
> |
begin |
63 |
> |
fileinfo := ConManager.Connection[ConID].GetFileInfo(links.ByID[i].Destination); |
64 |
> |
fullname := FormatNumber(fileinfo.ID, 5, '0') + '-' + fileinfo.Name + '.' + fileinfo.Extension; |
65 |
> |
list_from.Items.Add(fullname + ' (Offset 0x' + IntToHex(links.ByID[i].SrcOffset, 8) + ')'); |
66 |
> |
end; |
67 |
> |
end; |
68 |
> |
if Length(links_to) > 0 then |
69 |
> |
begin |
70 |
> |
for i := 0 to High(links_to) do |
71 |
|
begin |
72 |
< |
fileinfo := ConManager.Connection[ConID].GetFileInfo(links.ByID[i].Destination); |
73 |
< |
fullname := FormatNumber(fileinfo.ID, 5, '0') + '-' + fileinfo.Name + '.' + fileinfo.Extension; |
74 |
< |
list.Items.Add(fullname + ' (Offset 0x' + IntToHex(links.ByID[i].SrcOffset, 8) + ')'); |
72 |
> |
if links_to[i].DestID >= 0 then |
73 |
> |
begin |
74 |
> |
fileinfo := ConManager.Connection[ConID].GetFileInfo(links_to[i].DestID); |
75 |
> |
fullname := FormatNumber(fileinfo.ID, 5, '0') + '-' + fileinfo.Name + '.' + fileinfo.Extension; |
76 |
> |
end else |
77 |
> |
fullname := 'no link'; |
78 |
> |
list_to.Items.Add(fullname + ' (Offset 0x' + IntToHex(links_to[i].SrcOffset, 8) + ')'); |
79 |
|
end; |
80 |
+ |
end; |
81 |
|
end; |
82 |
|
|
83 |
< |
procedure TForm_WhatLinksHere.listDblClick(Sender: TObject); |
83 |
> |
procedure TForm_WhatLinksHere.list_fromDblClick(Sender: TObject); |
84 |
|
var |
85 |
|
id: Integer; |
86 |
+ |
box: TListBox; |
87 |
+ |
name: String; |
88 |
|
begin |
89 |
< |
id := ConManager.Connection[ConID].ExtractFileIDOfName(list.Items.Strings[list.ItemIndex]); |
89 |
> |
box := TListBox(Sender); |
90 |
> |
name := box.Items.Strings[box.ItemIndex]; |
91 |
> |
if Pos('no link', name) > 0 then |
92 |
> |
Exit |
93 |
> |
else |
94 |
> |
id := ConManager.Connection[ConID].ExtractFileIDOfName(name); |
95 |
|
SenderForm.SelectFileID(ConID, id); |
96 |
|
Form_Main.Enabled := True; |
97 |
|
Visible := False; |