mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 02:48:07 +02:00
Merged revision(s) 45479, 45489 from trunk:
+ add additional overloads for FindResource and FindResourceEx so that mixtures of AnsiString and MAKEINTRESOURCE types as well as names can be used + added test for ReadComponentRes (which called the wrong FindResource before) ........ * disable the new FindResource(Ex) overloads for Win16 for now (the one with PChar is disabled as well); this will need to be revisited once Win16 receives proper resource support ........ git-svn-id: branches/fixes_3_2@47603 -
This commit is contained in:
parent
4dca62b568
commit
f4003a0981
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -15463,6 +15463,8 @@ tests/test/units/system/tres4.pp svneol=native#text/plain
|
||||
tests/test/units/system/tres4.res -text
|
||||
tests/test/units/system/tres5.pp svneol=native#text/plain
|
||||
tests/test/units/system/tres5.rc svneol=native#text/plain
|
||||
tests/test/units/system/tres6.lfm svneol=native#text/plain
|
||||
tests/test/units/system/tres6.pp svneol=native#text/pascal
|
||||
tests/test/units/system/tresb.rc svneol=native#text/plain
|
||||
tests/test/units/system/tresb.res -text
|
||||
tests/test/units/system/tresext.pp svneol=native#text/plain
|
||||
|
@ -78,6 +78,12 @@ Function FreeResource(ResData: TFPResourceHGLOBAL): LongBool;
|
||||
{$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
|
||||
Function FindResource(ModuleHandle: TFPResourceHMODULE; const ResourceName, ResourceType: AnsiString): TFPResourceHandle;
|
||||
Function FindResourceEx(ModuleHandle: TFPResourceHMODULE; const ResourceType, ResourceName: AnsiString; Language : word): TFPResourceHandle;
|
||||
{$ifndef Win16}
|
||||
Function FindResource(ModuleHandle: TFPResourceHMODULE; const ResourceName: AnsiString; ResourceType: PChar): TFPResourceHandle;
|
||||
Function FindResourceEx(ModuleHandle: TFPResourceHMODULE; ResourceType: PChar; const ResourceName: AnsiString; Language : word): TFPResourceHandle;
|
||||
Function FindResource(ModuleHandle: TFPResourceHMODULE; ResourceName: PChar; const ResourceType: AnsiString): TFPResourceHandle;
|
||||
Function FindResourceEx(ModuleHandle: TFPResourceHMODULE; const ResourceType: AnsiString; ResourceName: PChar; Language : word): TFPResourceHandle;
|
||||
{$endif Win16}
|
||||
{$endif}
|
||||
|
||||
type
|
||||
|
@ -43,6 +43,32 @@ Function FindResourceEx(ModuleHandle: TFPResourceHMODULE; const ResourceType, Re
|
||||
begin
|
||||
Result:=FindResourceEx(ModuleHandle,PChar(ResourceType),PChar(ResourceName),Language);
|
||||
end;
|
||||
|
||||
{$ifndef Win16}
|
||||
Function FindResource(ModuleHandle: TFPResourceHMODULE; const ResourceName: AnsiString; ResourceType: PChar): TFPResourceHandle;
|
||||
|
||||
begin
|
||||
Result:=FindResource(ModuleHandle,PChar(ResourceName),ResourceType);
|
||||
end;
|
||||
|
||||
Function FindResourceEx(ModuleHandle: TFPResourceHMODULE; ResourceType: PChar; const ResourceName: AnsiString; Language : word): TFPResourceHandle;
|
||||
|
||||
begin
|
||||
Result:=FindResourceEx(ModuleHandle,ResourceType,PChar(ResourceName),Language);
|
||||
end;
|
||||
|
||||
Function FindResource(ModuleHandle: TFPResourceHMODULE; ResourceName: PChar; const ResourceType: AnsiString): TFPResourceHandle;
|
||||
|
||||
begin
|
||||
Result:=FindResource(ModuleHandle,ResourceName,PChar(ResourceType));
|
||||
end;
|
||||
|
||||
Function FindResourceEx(ModuleHandle: TFPResourceHMODULE; const ResourceType: AnsiString; ResourceName: PChar; Language : word): TFPResourceHandle;
|
||||
|
||||
begin
|
||||
Result:=FindResourceEx(ModuleHandle,PChar(ResourceType),ResourceName,Language);
|
||||
end;
|
||||
{$endif Win16}
|
||||
{$endif}
|
||||
|
||||
(*****************************************************************************
|
||||
|
3
tests/test/units/system/tres6.lfm
Normal file
3
tests/test/units/system/tres6.lfm
Normal file
@ -0,0 +1,3 @@
|
||||
object MyRes: TMyRes
|
||||
Str1 = 'Foobar'
|
||||
end
|
38
tests/test/units/system/tres6.pp
Normal file
38
tests/test/units/system/tres6.pp
Normal file
@ -0,0 +1,38 @@
|
||||
program tres6;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
uses
|
||||
SysUtils, Classes;
|
||||
|
||||
type
|
||||
TMyRes = class(TComponent)
|
||||
private
|
||||
fStr1: String;
|
||||
published
|
||||
property Str1: String read fStr1 write fStr1;
|
||||
end;
|
||||
|
||||
{$R tres6.lfm}
|
||||
|
||||
var
|
||||
r: TMyRes;
|
||||
begin
|
||||
r := TMyRes.Create(Nil);
|
||||
try
|
||||
try
|
||||
ReadComponentRes('TMyRes', r);
|
||||
except
|
||||
on e: Exception do begin
|
||||
Writeln('Exception (', e.ClassName, '): ', e.Message);
|
||||
DumpExceptionBacktrace(Output);
|
||||
Halt(1);
|
||||
end;
|
||||
end;
|
||||
Writeln(r.Str1);
|
||||
if r.Str1 <> 'Foobar' then
|
||||
Halt(2);
|
||||
finally
|
||||
r.Free;
|
||||
end;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user