source: oup/releases/0.34b/Helper/WhatLinksHere.pas@ 455

Last change on this file since 455 was 205, checked in by alloc, 18 years ago
File size: 2.9 KB
RevLine 
[205]1unit WhatLinksHere;
2interface
3uses
4 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
5 Dialogs, StdCtrls, Template, ExtCtrls;
6
7type
8 TForm_WhatLinksHere = class(TForm)
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 list_fromDblClick(Sender: TObject);
19 private
20 public
21 SenderForm: TForm_ToolTemplate;
22 ConID: Integer;
23 FileID: Integer;
24 end;
25
26var
27 Form_WhatLinksHere: TForm_WhatLinksHere;
28
29implementation
30{$R *.dfm}
31uses ConnectionManager, Access_OUP_ADB, TypeDefs, Functions, Main;
32
33{ TForm_WhatLinksHere }
34
35procedure TForm_WhatLinksHere.FormCloseQuery(Sender: TObject;
36 var CanClose: Boolean);
37begin
38 Form_Main.Enabled := True;
39 Visible := False;
40 CanClose := False;
41end;
42
43procedure TForm_WhatLinksHere.FormShow(Sender: TObject);
44var
45 fileinfo: TFileInfo;
46 links: TLinks;
47 i: Integer;
48 fullname: String;
49 links_to: TDatLinkList;
50begin
51 Form_Main.Enabled := False;
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_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 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;
81end;
82
83procedure TForm_WhatLinksHere.list_fromDblClick(Sender: TObject);
84var
85 id: Integer;
86 box: TListBox;
87 name: String;
88begin
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;
98end;
99
100end.
Note: See TracBrowser for help on using the repository browser.