![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi 10 Seattle, преобразование типов
Антонов Саша © (2016-07-17 14:03:00)Здравствуйте мастера! Изучаю сабж, использую функцию работы с ресурсами,пример:
rs_img:=TResourceStream.Create(0,'1',PChar(RT_RCDATA));
... дальше стрим и присвоение картинке.. все работает..
данные с идентификатором "1" читает, но нужно просмотреть
все ресурсы, делаю дальше так:
for i:=1 to 5 do
begin
rs_img:=TResourceStream.Create(0,IntToStr(i),PChar(RT_RCDATA));
end;
Не компилит, просит тут IntToStr(i) для себя PChar, хорошо пишу тогда так:
rs_img:=TResourceStream.Create(0,PChar(IntToStr(i)),PChar(RT_RCDATA));
все компилит, но при выполнении вылетает ошибка и ничего читает.. ((
Как правильно преобразовать String в PChar?
DayGaykin (2016-07-24 22:51:00) [1]Дело скорее всего не в преобразовании. Я ни разу не сталкивался с проблемой преобразования PChar(... any string...).
Может вместо нуля стоит указать HInstanceвсе-таки?
NoUser (2016-07-19 19:02:00) [2]
r1 := TResourceStream.CreateFromID(0,1,RT_RCDATA);
r2 := TResourceStream.CreateFromID(0,2,RT_RCDATA);
--
RT_RCDATA объявлен как
const RT_RCDATA = PChar(10);
и дополнительно PChar() ему не надо.
--
И если в цикле, то необходимо помыть посуду:
for i:=1 to 5 do
begin
rs_img:=TResourceStream.CreateFromID(0, i, RT_RCDATA);
// ...
rs_img.Free; // !
end;
Германн (2016-07-19 01:15:00) [3]
> Антонов Саша (17.07.16 14:03)
Ваша главная ошибка в том, что вы получив "при выполнении вылетает ошибка" не стали разбираться что это за ошибка. И тут не привели этого сообщения об ошибке. Вместо этого вы подумали что проблема именно в преобразовании типа string в тип PChar при передаче параметра в WINAPI функцию. А таких проблем отродясь не было.
(2016-07-17 23:36:00) [4]Удалено модератором
Kilkennycat (2016-07-17 22:39:00) [5]пример корректного кода для фиреманки:
http://stackoverflow.com/questions/18426914/how-to-store-images-in-firemonkey
Kilkennycat (2016-07-17 22:29:00) [6]
> непонятно.. ((
да. а еще непонятно, какая при выполнении вылетает ошибка
Так приятно, что на тематических форумах новички считают профессионалов телепатами, могущими по кое-как предоставленной информации помочь в столь примитивном искусстве программировании, что можно помнить абсолютно всё, быстренько установить Делфи с Firemonkey, накидать код новичка, убедится, что все работает, а ошибка, мож, от отсутствующих ресурсов или еще хрени какой-нить.
Антонов Саша (2016-07-17 15:05:00) [7]Баркадеровцы же пишут, что все не так просто:
http://docwiki.embarcadero.com/RADStudio/Seattle/en/String_to_PChar_Conversions
Но как именно нужно непонятно.. ((
Антонов Саша (2016-07-17 15:02:00) [8]Нашел:
function strtoPchar(s:string):Pchar;
begin
S := S+#0;
result:=StrPCopy(@S[1], S) ;
end;
Не помогло.. ((
Антонов Саша (2016-07-17 14:59:00) [9]Большое спасибо за полезные советы, оч.помогли в решении проблемы!
Так приятно что в интернете есть тематические форумы и профессионалы всегда
готовые помочь молодым, "зеленым" новичкам в изучении сложного иссккства программирования когда нагуглить ничего толком не получается. Особенно мало информации к сожалению по новой Firemonkey и ее особенностям при написании программ для мобильных устройств.. (( Еще раз благодарствую!
Игорь Шевченко (2016-07-17 14:46:00) [10]
> вылетает ошибка
Надо исправить.
А на будущее прочитать
http://segfault.kiev.ua/smart-questions-ru.html