работа с ресурсами .res
Модератор: Модераторы
работа с ресурсами .res
проблемма такая
через $R подключаю несколько файлов ресурсов
и пытаюсь прочитать через FindResource...
однако подхватываются ресурсы только с первого по порядку $R
как подлючить / прочитать остальные?
зараннее извиняюсь ежели это вопрос одной галочки или одного ключа... но ни в .PDF хелпа (http://www.freepascal.org/docs.var) ни на форуме я ответа не нашел...
через $R подключаю несколько файлов ресурсов
и пытаюсь прочитать через FindResource...
однако подхватываются ресурсы только с первого по порядку $R
как подлючить / прочитать остальные?
зараннее извиняюсь ежели это вопрос одной галочки или одного ключа... но ни в .PDF хелпа (http://www.freepascal.org/docs.var) ни на форуме я ответа не нашел...
Но это еще не все.
В systemh.inc тип Integer определен как SmallInt! Процедуры работы с ресурсами описаны в файлах resh.inc (и elfres32.inc), которые подключаются в systemh.inc. А переопределение Integer = Longint происходит ниже, в system.inc. Получается, что функция SizeOfResource будет возвращать значения типа SmallInt. Т.е. при относительно больших ресурсах возвращаемое значение будет некорректным.
В systemh.inc тип Integer определен как SmallInt! Процедуры работы с ресурсами описаны в файлах resh.inc (и elfres32.inc), которые подключаются в systemh.inc. А переопределение Integer = Longint происходит ниже, в system.inc. Получается, что функция SizeOfResource будет возвращать значения типа SmallInt. Т.е. при относительно больших ресурсах возвращаемое значение будет некорректным.
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Поясните пожалуйста, есть два ресурса value.rc и value2.rc
Выполняю процедуру:
Получаю строки первого ресурса, как получить и второго?
0.9.27, 2.2.5, WinXP
Код: Выделить всё
STRINGTABLE {
4, "hello World !"
5, "hello world again !"
6, "last hello world !"
}
STRINGTABLE {
1, "--------------"
2, "=============="
3, "++++++++++++++"
}
Выполняю процедуру:
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
Function LoadResourceString (Index : longint): Shortstring;
begin
SetLength(Result,LoadString(FindResource(0,NIL,RT_STRING),Index,@Result[1],SizeOf(Result)));
end;
Var
I: longint;
begin
For i:=1 to 6 do
try
ShowMessage(Loadresourcestring(i));
except
end;
end;Получаю строки первого ресурса, как получить и второго?
0.9.27, 2.2.5, WinXP
