2020-03-30 18:01:44 +00:00
|
|
|
unit ContextHelpUnit;
|
|
|
|
|
|
|
|
{$mode objfpc}
|
|
|
|
{$H+}
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
uses
|
2020-09-22 10:42:22 +00:00
|
|
|
IniFiles, Classes, SysUtils, FileUtil, Forms, Controls, Graphics,
|
2020-03-30 18:01:44 +00:00
|
|
|
Dialogs, ExtCtrls, StdCtrls;
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
|
|
{ TContextHelpForm }
|
|
|
|
|
|
|
|
TContextHelpForm = class(TForm)
|
|
|
|
Button1: TButton;
|
|
|
|
Memo1: TMemo;
|
|
|
|
Panel1: TPanel;
|
|
|
|
procedure Button1Click(Sender: TObject);
|
|
|
|
private
|
|
|
|
{ private declarations }
|
|
|
|
public
|
|
|
|
{ public declarations }
|
|
|
|
procedure HelpMessage(lTag: integer);
|
|
|
|
end;
|
|
|
|
|
|
|
|
var
|
|
|
|
ContextHelpForm: TContextHelpForm;
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
2020-09-22 10:42:22 +00:00
|
|
|
{$R *.lfm}
|
|
|
|
|
2020-03-30 18:01:44 +00:00
|
|
|
function ReadIniFileTag(var lTag: Integer): string;
|
|
|
|
//Read string with index lTag
|
|
|
|
var
|
|
|
|
lIniFile: TIniFile;
|
2020-09-22 10:42:22 +00:00
|
|
|
lFileName,lLang: string;
|
2020-03-30 18:01:44 +00:00
|
|
|
begin
|
2020-09-22 10:42:22 +00:00
|
|
|
lFilename := ChangeFileExt(ParamStr(0), '.ini');
|
|
|
|
if (not FileExists(lFilename)) then begin
|
|
|
|
Result := 'No contextual help: unable to find '+lFilename;
|
2020-03-30 18:01:44 +00:00
|
|
|
exit;
|
|
|
|
end;
|
2020-09-22 10:42:22 +00:00
|
|
|
Result := 'No contextual help found for '+IntToStr(lTag);
|
2020-03-30 18:01:44 +00:00
|
|
|
lIniFile := TIniFile.Create(lFilename);
|
|
|
|
try
|
|
|
|
lLang := lIniFile.ReadString('LANGUAGE', 'DEFAULT', '');
|
2020-09-22 10:42:22 +00:00
|
|
|
Result := lIniFile.ReadString(lLang, IntToStr(lTag), Result);
|
|
|
|
Result := StringReplace(Result, '\n', LineEnding, [rfIgnoreCase, rfReplaceAll]);
|
2020-03-30 18:01:44 +00:00
|
|
|
finally
|
|
|
|
lIniFile.Free;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TContextHelpForm.Button1Click(Sender: TObject);
|
|
|
|
begin
|
|
|
|
Close;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TContextHelpForm.HelpMessage(lTag: integer);
|
|
|
|
begin
|
|
|
|
Memo1.Lines.Clear;
|
2020-09-22 10:42:22 +00:00
|
|
|
Memo1.Lines.Text := ReadIniFileTag(lTag);
|
|
|
|
Show;
|
2020-03-30 18:01:44 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
end.
|
|
|
|
|