mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 04:09:11 +02:00
+ Implemented resource stuff
This commit is contained in:
parent
d21b73460a
commit
1035a30a91
@ -15,6 +15,7 @@
|
|||||||
**********************************************************************}
|
**********************************************************************}
|
||||||
{$Mode ObjFpc}
|
{$Mode ObjFpc}
|
||||||
{$I-,S-}
|
{$I-,S-}
|
||||||
|
|
||||||
unit objpas;
|
unit objpas;
|
||||||
|
|
||||||
interface
|
interface
|
||||||
@ -53,6 +54,13 @@ unit objpas;
|
|||||||
{ ParamStr should return also an ansistring }
|
{ ParamStr should return also an ansistring }
|
||||||
Function ParamStr(Param : Integer) : Ansistring;
|
Function ParamStr(Param : Integer) : Ansistring;
|
||||||
|
|
||||||
|
{ Resourcestring support }
|
||||||
|
Function GetResourceString(Hash : Longint) : AnsiString;
|
||||||
|
Procedure ResetResourceTables;
|
||||||
|
Function SetResourceString(Hash : longint; Const Value : AnsiString) : Boolean;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
@ -148,11 +156,82 @@ begin
|
|||||||
else
|
else
|
||||||
paramstr:='';
|
paramstr:='';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ ---------------------------------------------------------------------
|
||||||
|
ResourceString support
|
||||||
|
---------------------------------------------------------------------}
|
||||||
|
|
||||||
|
Type
|
||||||
|
|
||||||
|
TResourceStringRecord = Record
|
||||||
|
DefaultValue,
|
||||||
|
CurrentValue : AnsiString;
|
||||||
|
HashValue : longint;
|
||||||
|
end;
|
||||||
|
TResourceStringTable = Record
|
||||||
|
Count : longint;
|
||||||
|
Resrec : Array[Cardinal] of TResourceStringRecord;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Var
|
||||||
|
ResourceStringTable : TResourceStringTable; External Name 'RESOURCESTRINGLIST';
|
||||||
|
|
||||||
|
Function FindHashIndex (Value : Longint) : Longint;
|
||||||
|
|
||||||
|
VAr I : longint;
|
||||||
|
|
||||||
|
begin
|
||||||
|
// Linear search, later we can implement binary search.
|
||||||
|
With ResourceStringTable do
|
||||||
|
For I:=0 to Count-1 do
|
||||||
|
If Value=Resrec[result].HashValue then
|
||||||
|
begin
|
||||||
|
Result:=I;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
Result:=-1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Function GetResourceString(Hash : Longint) : AnsiString;[Public,Alias : 'FPC_GETRESOURCESTRING'];
|
||||||
|
|
||||||
|
begin
|
||||||
|
Hash:=FindHashIndex(Hash);
|
||||||
|
If Hash<>-1 then
|
||||||
|
Result:=ResourceStringTable.ResRec[Hash].CurrentValue
|
||||||
|
else
|
||||||
|
Result:='';
|
||||||
|
end;
|
||||||
|
|
||||||
|
Function SetResourceString(Hash : longint; Const Value : AnsiString) : Boolean;
|
||||||
|
|
||||||
|
begin
|
||||||
|
Hash:=FindHashIndex(Hash);
|
||||||
|
Result:=Hash<>-1;
|
||||||
|
If Result then
|
||||||
|
ResourceStringTable.ResRec[Hash].CurrentValue:=Value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Procedure ResetResourceTables;
|
||||||
|
|
||||||
|
Var I : longint;
|
||||||
|
|
||||||
|
begin
|
||||||
|
With ResourceStringTable do
|
||||||
|
For I:=0 to Count-1 do
|
||||||
|
With ResRec[i] do
|
||||||
|
CurrentValue:=DefaultValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Initialization
|
||||||
|
ResetResourceTables;
|
||||||
end.
|
end.
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.26 1999-07-07 10:04:04 michael
|
Revision 1.27 1999-07-22 20:30:13 michael
|
||||||
|
+ Implemented resource stuff
|
||||||
|
|
||||||
|
Revision 1.26 1999/07/07 10:04:04 michael
|
||||||
+ Paramstr now returns cmdline args >255 chars in ansistring objpas.pp
|
+ Paramstr now returns cmdline args >255 chars in ansistring objpas.pp
|
||||||
|
|
||||||
Revision 1.25 1999/07/06 22:44:22 florian
|
Revision 1.25 1999/07/06 22:44:22 florian
|
||||||
|
Loading…
Reference in New Issue
Block a user