55 lines
1.2 KiB
ObjectPascal
55 lines
1.2 KiB
ObjectPascal
unit ClrDemoStringsForm;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, Buttons, ComCtrls, JclCLR;
|
|
|
|
type
|
|
TfrmStrings = class(TForm)
|
|
lstStrings: TListView;
|
|
btnOK: TBitBtn;
|
|
procedure lstStringsData(Sender: TObject; Item: TListItem);
|
|
private
|
|
FStream: TJclCLRStringsStream;
|
|
procedure ShowStrings(const AStream: TJclCLRStringsStream);
|
|
public
|
|
class procedure Execute(const AStream: TJclCLRStringsStream);
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
JclUnicode;
|
|
|
|
{ TfrmStrings }
|
|
|
|
class procedure TfrmStrings.Execute(const AStream: TJclCLRStringsStream);
|
|
begin
|
|
with TfrmStrings.Create(nil) do
|
|
try
|
|
ShowStrings(AStream);
|
|
ShowModal;
|
|
finally
|
|
Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmStrings.ShowStrings(const AStream: TJclCLRStringsStream);
|
|
begin
|
|
FStream := AStream;
|
|
lstStrings.Items.Count := FStream.StringCount;
|
|
end;
|
|
|
|
procedure TfrmStrings.lstStringsData(Sender: TObject; Item: TListItem);
|
|
begin
|
|
Item.Caption := IntToStr(Item.Index);
|
|
Item.SubItems.Add(IntToHex(FStream.Offsets[Item.Index], 8));
|
|
Item.SubItems.Add(FStream.Strings[Item.Index]);
|
|
end;
|
|
|
|
end.
|