git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.jcl@20 c37d764d-f447-7644-a108-883140d013fb
135 lines
5.9 KiB
ObjectPascal
135 lines
5.9 KiB
ObjectPascal
{**************************************************************************************************}
|
|
{ }
|
|
{ Project JEDI Code Library (JCL) }
|
|
{ }
|
|
{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); }
|
|
{ you may not use this file except in compliance with the License. You may obtain a copy of the }
|
|
{ License at http://www.mozilla.org/MPL/ }
|
|
{ }
|
|
{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF }
|
|
{ ANY KIND, either express or implied. See the License for the specific language governing rights }
|
|
{ and limitations under the License. }
|
|
{ }
|
|
{ The Original Code is JclStackTraceViewerModuleFrame.pas. }
|
|
{ }
|
|
{ The Initial Developer of the Original Code is Uwe Schuster. }
|
|
{ Portions created by Uwe Schuster are Copyright (C) 2009 Uwe Schuster. All rights reserved. }
|
|
{ }
|
|
{ Contributor(s): }
|
|
{ Uwe Schuster (uschuster) }
|
|
{ }
|
|
{**************************************************************************************************}
|
|
{ }
|
|
{ Last modified: $Date:: 2009-09-14 18:00:50 +0200 (lun., 14 sept. 2009) $ }
|
|
{ Revision: $Rev:: 3012 $ }
|
|
{ Author: $Author:: outchy $ }
|
|
{ }
|
|
{**************************************************************************************************}
|
|
|
|
unit JclStackTraceViewerModuleFrame;
|
|
|
|
{$I jcl.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
ComCtrls, IniFiles,
|
|
{$IFDEF UNITVERSIONING}
|
|
JclUnitVersioning,
|
|
{$ENDIF UNITVERSIONING}
|
|
JclDebugSerialization;
|
|
|
|
type
|
|
TfrmModule = class(TFrame)
|
|
lv: TListView;
|
|
private
|
|
FModuleList: TJclSerializableModuleInfoList;
|
|
procedure SetModuleList(const Value: TJclSerializableModuleInfoList);
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
property ModuleList: TJclSerializableModuleInfoList read FModuleList write SetModuleList;
|
|
procedure LoadState(AIni: TCustomIniFile; const ASection: string);
|
|
procedure SaveState(AIni: TCustomIniFile; const ASection: string);
|
|
end;
|
|
|
|
{$IFDEF UNITVERSIONING}
|
|
const
|
|
UnitVersioning: TUnitVersionInfo = (
|
|
RCSfile: '$URL: https://jcl.svn.sourceforge.net/svnroot/jcl/tags/JCL-2.1-Build3536/jcl/experts/stacktraceviewer/JclStackTraceViewerModuleFrame.pas $';
|
|
Revision: '$Revision: 3012 $';
|
|
Date: '$Date: 2009-09-14 18:00:50 +0200 (lun., 14 sept. 2009) $';
|
|
LogPath: 'JCL\experts\stacktraceviewer';
|
|
Extra: '';
|
|
Data: nil
|
|
);
|
|
{$ENDIF UNITVERSIONING}
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses
|
|
JclOtaResources;
|
|
|
|
{ TfrmModule }
|
|
|
|
constructor TfrmModule.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
lv.Columns.Items[0].Caption := LoadResString(@RsStartAddr);
|
|
lv.Columns.Items[1].Caption := LoadResString(@RsEndAddr);
|
|
lv.Columns.Items[2].Caption := LoadResString(@RsSystemModule);
|
|
lv.Columns.Items[3].Caption := LoadResString(@RsBinFileName);
|
|
lv.Columns.Items[4].Caption := LoadResString(@RsBinFileVersion);
|
|
lv.Columns.Items[5].Caption := LoadResString(@RsFileVersion);
|
|
lv.Columns.Items[6].Caption := LoadResString(@RsFileDescription);
|
|
end;
|
|
|
|
procedure TfrmModule.LoadState(AIni: TCustomIniFile; const ASection: string);
|
|
var
|
|
I: Integer;
|
|
begin
|
|
for I := 0 to lv.Columns.Count - 1 do
|
|
lv.Columns.Items[I].Width := AIni.ReadInteger(ASection,
|
|
Format('ModuleFrameColumnWidth%d', [I]), lv.Columns.Items[I].Width);
|
|
end;
|
|
|
|
procedure TfrmModule.SaveState(AIni: TCustomIniFile; const ASection: string);
|
|
var
|
|
I: Integer;
|
|
begin
|
|
for I := 0 to lv.Columns.Count - 1 do
|
|
AIni.WriteInteger(ASection, Format('ModuleFrameColumnWidth%d', [I]), lv.Columns.Items[I].Width);
|
|
end;
|
|
|
|
procedure TfrmModule.SetModuleList(const Value: TJclSerializableModuleInfoList);
|
|
var
|
|
I: Integer;
|
|
ListItem: TListItem;
|
|
begin
|
|
FModuleList := Value;
|
|
lv.Items.Clear;
|
|
for I := 0 to FModuleList.Count - 1 do
|
|
begin
|
|
ListItem := lv.Items.Add;
|
|
ListItem.Caption := FModuleList[I].StartStr;
|
|
ListItem.SubItems.Add(FModuleList[I].EndStr);
|
|
ListItem.SubItems.Add(FModuleList[I].SystemModuleStr);
|
|
ListItem.SubItems.Add(ExtractFileName(FModuleList[I].ModuleName));
|
|
ListItem.SubItems.Add(FModuleList[I].BinFileVersion);
|
|
ListItem.SubItems.Add(FModuleList[I].FileVersion);
|
|
ListItem.SubItems.Add(FModuleList[I].FileDescription);
|
|
end;
|
|
end;
|
|
|
|
{$IFDEF UNITVERSIONING}
|
|
initialization
|
|
RegisterUnitVersion(HInstance, UnitVersioning);
|
|
|
|
finalization
|
|
UnregisterUnitVersion(HInstance);
|
|
{$ENDIF UNITVERSIONING}
|
|
|
|
end.
|