Дельфикингдом прочесываю...а что за торри?
» Вопросы по Delphi (все версии) - часть 4
z3r
____://torry.net/
____://torry.net/
Помогите разобраться плз..
var
Reg: TRegistry;
Res:string;
buf: array of byte;
i,bufSize:integer;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := Key;
if Reg.OpenKey(SubKey, True) then
begin
// Определить размер
bufSize:=Reg.GetDataSize(Param);
// Установить размер динамического массива
SetLength(buf,bufSize);
Reg.ReadBinaryData(Param, buf,bufSize);
Showmessage((IntToHex(buf[0],2)));
finally
Reg.CloseKey;
Reg.Free;
end;
end;
на Showmessage получаю Acsess violation.
Если же использую статический массив то все работает.
var
Reg: TRegistry;
Res:string;
buf: array [0..15]of byte;
i,bufSize:integer;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := Key;
if Reg.OpenKey(SubKey, True) then
begin
// Определить размер
bufSize:=sizeof(buf);
Reg.ReadBinaryData(Param, buf,bufSize);
Showmessage((IntToHex(buf[0],2)));
end;
finally
Reg.CloseKey;
Reg.Free;
end;
Добавлено:
спасибо за внимание. достаточно было сделать так: Reg.ReadBinaryData(Param, buf[0], bufSize)
var
Reg: TRegistry;
Res:string;
buf: array of byte;
i,bufSize:integer;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := Key;
if Reg.OpenKey(SubKey, True) then
begin
// Определить размер
bufSize:=Reg.GetDataSize(Param);
// Установить размер динамического массива
SetLength(buf,bufSize);
Reg.ReadBinaryData(Param, buf,bufSize);
Showmessage((IntToHex(buf[0],2)));
finally
Reg.CloseKey;
Reg.Free;
end;
end;
на Showmessage получаю Acsess violation.
Если же использую статический массив то все работает.
var
Reg: TRegistry;
Res:string;
buf: array [0..15]of byte;
i,bufSize:integer;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := Key;
if Reg.OpenKey(SubKey, True) then
begin
// Определить размер
bufSize:=sizeof(buf);
Reg.ReadBinaryData(Param, buf,bufSize);
Showmessage((IntToHex(buf[0],2)));
end;
finally
Reg.CloseKey;
Reg.Free;
end;
Добавлено:
спасибо за внимание. достаточно было сделать так: Reg.ReadBinaryData(Param, buf[0], bufSize)
Erazer
Попробуйте так:
Код: Reg.ReadBinaryData(Param, buf[0],bufSize);
Попробуйте так:
Код: Reg.ReadBinaryData(Param, buf[0],bufSize);
Frodo_Torbins
Да это понятно, если моя прога работает с UnicodeString, то систему никто ещё не отменял. Я знаю функции MessageBoxA и MessageBoxW. Но функцию MessageBoxU я не видывал. Есть ли смысл заморачиваться с переводом такой проги, которая уже конвертит юникод в анси, так вот есть ли смысл переводить её на WideString при обращении к системе?
Да это понятно, если моя прога работает с UnicodeString, то систему никто ещё не отменял. Я знаю функции MessageBoxA и MessageBoxW. Но функцию MessageBoxU я не видывал. Есть ли смысл заморачиваться с переводом такой проги, которая уже конвертит юникод в анси, так вот есть ли смысл переводить её на WideString при обращении к системе?
delover
WideString остается только для работы с COM, во всех остальных случаях его заменяет UnicodeString. Например:
Код: MessageBoxW(0, PChar(Form1.Caption), 'Message:', MB_OK);
WideString остается только для работы с COM, во всех остальных случаях его заменяет UnicodeString. Например:
Код: MessageBoxW(0, PChar(Form1.Caption), 'Message:', MB_OK);
Ребята, посоветуйте наиболее актуальные и прогрессивные на данный момент способы локализации приложений с использованием Delphi 7. А также рекомендуемые компоненты.
Frodo_Torbins
Тут Вы меня сильно просветили, и я бы сказал озадачили... Мне уже видно свои брёвна. Я ещё по CPU не успел полазить. У меня что-то Shell интерфейсы к ярлыкам стали с ошибками работать, так я и не подозревал что где-то юникод просмотрел.
Тут Вы меня сильно просветили, и я бы сказал озадачили... Мне уже видно свои брёвна. Я ещё по CPU не успел полазить. У меня что-то Shell интерфейсы к ярлыкам стали с ошибками работать, так я и не подозревал что где-то юникод просмотрел.
Всем салют. не знаю туда ли пишу но вопрос такой
поставил CodeGear.Rad.Studio. 2009
но вот проблема, не сохраняется скомпилированный файл проекта, вообще никакого, кроме демо
пишет warring - установлен параметр -J
где можно это убрать? или проблема в кряке...
поставил CodeGear.Rad.Studio. 2009
но вот проблема, не сохраняется скомпилированный файл проекта, вообще никакого, кроме демо
пишет warring - установлен параметр -J
где можно это убрать? или проблема в кряке...
delover
Очень рекомендую: Delphi2009 Handbook
InSe0F
Пожалуй лучше сюда: Embarcadero (CodeGear) RAD Studio 2009.
Очень рекомендую: Delphi2009 Handbook
InSe0F
Пожалуй лучше сюда: Embarcadero (CodeGear) RAD Studio 2009.
InSe0F
С таким вопросом скорее всего сюда.
С таким вопросом скорее всего сюда.
Ставлю на Delphi 2009 компонент VKDBF108 ругается на эти строки которые стоят в цикле:
[DCC Error] VKDBFGostCrypt.pas(490): E2064 Left side cannot be assigned to
1. Byte(c[i]) := Byte(c[i]) xor pGostNB(@Gamma0)[j];
2. Byte(pChar(p1)[i]) := Byte(pChar(p1)[i]) xor Byte(pChar(p2)[i]);
Слышал чегото в Delphi 2009 поубирали, на что можно заменить?
[DCC Error] VKDBFGostCrypt.pas(490): E2064 Left side cannot be assigned to
1. Byte(c[i]) := Byte(c[i]) xor pGostNB(@Gamma0)[j];
2. Byte(pChar(p1)[i]) := Byte(pChar(p1)[i]) xor Byte(pChar(p2)[i]);
Слышал чегото в Delphi 2009 поубирали, на что можно заменить?
bandyn
Byte(pChar(p1)[i]) := Byte(pChar(p1)[i]) xor Byte(pChar(p2)[i]); возможно надо заменить на
Byte(pAnsiChar(p1)[i]) := Byte(pAnsiChar(p1)[i]) xor Byte(pAnsiChar(p2)[i]);
а по поводу 1. Byte(c[i]) := Byte(c[i]) xor pGostNB(@Gamma0)[j];
заменить описание переменной с (например c : String; на c : AnsiString;)
Byte(pChar(p1)[i]) := Byte(pChar(p1)[i]) xor Byte(pChar(p2)[i]); возможно надо заменить на
Byte(pAnsiChar(p1)[i]) := Byte(pAnsiChar(p1)[i]) xor Byte(pAnsiChar(p2)[i]);
а по поводу 1. Byte(c[i]) := Byte(c[i]) xor pGostNB(@Gamma0)[j];
заменить описание переменной с (например c : String; на c : AnsiString;)
bandyn
pChar можо еще заменить на pByte.
pChar можо еще заменить на pByte.
Frodo_Torbins
Спасибо, я так и понял. Видел статью Марко месяца три назад на квелити. Он писал, что надо писать
Код:
type
TUnicodeString = string;
Спасибо, я так и понял. Видел статью Марко месяца три назад на квелити. Он писал, что надо писать
Код:
type
TUnicodeString = string;
А есть какая либо возможность изменить настройки компилятра
или как отключить ключик -J
илл по советуйте где почитать об этом
мне кажется тут не активация виновата
или как отключить ключик -J
илл по советуйте где почитать об этом
мне кажется тут не активация виновата
InSe0F
Я думаю, что это бага, а фикс уже имеется. На сколько я помню там была проблемма с ненахождением существующих dcu, даже если прописаны пути. Потом это исправили. Я тестил 2009, проект сохранялся.
Я думаю, что это бага, а фикс уже имеется. На сколько я помню там была проблемма с ненахождением существующих dcu, даже если прописаны пути. Потом это исправили. Я тестил 2009, проект сохранялся.
delover
я ставил самый последний апдейт (
хорошо что нашел как 7ую делфю запустить на висте,
завтра попробую тестануть 2007ую
я ставил самый последний апдейт (
хорошо что нашел как 7ую делфю запустить на висте,
завтра попробую тестануть 2007ую
Ребята, такая проблема: локализую свое приложение и возникли два момента:
Использую Tnt Unicode Components (еще не tms-овкий вариант, посколько он один работает с SpTBXLib. Есть русскоговорящий пользователь, живущий в штатах, соответственно винда у него с английскими региональными настройкаи и анлийский же для неюникодных программ. После перевода всех сообщений в программе на Юникод, в интерфейсе остаются вопросительные знаки вместо русских символов в заголовках окон, а также кантролах, использующих стандартные экшены (например, упорядочить окна каскадом, по горизонтали и т. п.), хотя сам экшнлист от Tnt. Существует ли способ решить эту проблему: чтобы смогли отображаться русские буквы в заголовках окон и в экшенах в английской винде с английскими же региональными настройками? По первому вопросу я ответа совершенно не знаю, по второму догадываюсь, что может упорядочивать окна какими-то апишными функциями? Но я не знаю, какими, да и поможет ли это в смысле решения проблемы, тоже не догадываюсь.
Я, конечно, понимаю, что оптимальное решение сделать еще английскую локализацию в своей программе - я этим и занимаюсь, но с заголовками все не просто - у меня в них отображаются названия документов, а они русские.
Да, пока не забыл существует ли альтернатива связке SpTBXLib+TntUnicode?
Использую Tnt Unicode Components (еще не tms-овкий вариант, посколько он один работает с SpTBXLib. Есть русскоговорящий пользователь, живущий в штатах, соответственно винда у него с английскими региональными настройкаи и анлийский же для неюникодных программ. После перевода всех сообщений в программе на Юникод, в интерфейсе остаются вопросительные знаки вместо русских символов в заголовках окон, а также кантролах, использующих стандартные экшены (например, упорядочить окна каскадом, по горизонтали и т. п.), хотя сам экшнлист от Tnt. Существует ли способ решить эту проблему: чтобы смогли отображаться русские буквы в заголовках окон и в экшенах в английской винде с английскими же региональными настройками? По первому вопросу я ответа совершенно не знаю, по второму догадываюсь, что может упорядочивать окна какими-то апишными функциями? Но я не знаю, какими, да и поможет ли это в смысле решения проблемы, тоже не догадываюсь.
Я, конечно, понимаю, что оптимальное решение сделать еще английскую локализацию в своей программе - я этим и занимаюсь, но с заголовками все не просто - у меня в них отображаются названия документов, а они русские.
Да, пока не забыл существует ли альтернатива связке SpTBXLib+TntUnicode?
DmitryKz
Цитата:
Копайте в сторону Language And Settings закладка Advanced (на его англ винде). Там выставите Russian - тогда менюшки будут на русском языке (проверено 100%).
Цитата:
Существует ли способ решить эту проблему: чтобы смогли отображаться русские буквы в заголовках окон и в экшенах в английской винде с английскими же региональными настройками?
Копайте в сторону Language And Settings закладка Advanced (на его англ винде). Там выставите Russian - тогда менюшки будут на русском языке (проверено 100%).
ShIvADeSt
Да я предложил ему это как временное решение, но ведь это не выход, менять формат всех величин, он же в Штатах живет.
Да я предложил ему это как временное решение, но ведь это не выход, менять формат всех величин, он же в Штатах живет.
InSe0F
У меня 2009 без абдейтов, только багофиксы. Вообще на абдейты ориентироваться - это не особенно хороший стиль.
У меня 2009 без абдейтов, только багофиксы. Вообще на абдейты ориентироваться - это не особенно хороший стиль.
Подскажите как переделать ComboBoxEx в уникодный (widestring вместо string в caption итемов)?
DmitryKz
А вы уверен, что у вас все контроли и переменные unicode-вские? По моему регионалные настройки никак не влияют на полную unicode-программу.
Кстати, не сказали какая ОС у ваш друг.
А вы уверен, что у вас все контроли и переменные unicode-вские? По моему регионалные настройки никак не влияют на полную unicode-программу.
Кстати, не сказали какая ОС у ваш друг.
DmitryKz
Цитата:
А каким образом язык для неюникодовских программ влияет на региональные настройки? Еще раз говорю, на закладке Advanced - там еще текст идет non-unicode. Вот там выставить Russian.
Цитата:
Да я предложил ему это как временное решение, но ведь это не выход, менять формат всех величин, он же в Штатах живет.
А каким образом язык для неюникодовских программ влияет на региональные настройки? Еще раз говорю, на закладке Advanced - там еще текст идет non-unicode. Вот там выставить Russian.
ShIvADeSt
Я не спорю, что это решение действует. Просто судя по имени и фамилии он не русский, а вроде какой-то словак и не исключено, что там у него даже не английский язык стоит и не русский. Кроме того, при этом варианте вместо кракозябров в менюшках знаки вопроса. А они убираются только изменением региональных вопросов. Но, возможно, в этом я сам напортачил, не указав для них RUSSIAN_CHARSET. Но, возможно, я тут и ни при чем, так как надпись в заголовках окон, без региональных изменений на русский, отображаются знаками вопроса. Это те, которые я сделал в дизайнтайме; для дочерних окон, отображающих документы, и заголовки которых назначаются в рантайме, эти заголовки отображаются корректно.
Вчера уже поздно ночью нашел в Королевстве вопрос 36984, пока не изучал, может это решение.
Добавлено:
Это решение помогает только частично. Только если язык неюникодных программ установлен в русский, в противном случае, все надписи в заголовках окон, сделанные в дизайнтайме превращаются в знаки вопроса, а сделанные в рантайме - в кракозябры.
Подскажите, существует ли способ перекрыть отображение заголовка окна своим кодом, чтобы выводить в них юникодный текст?
Или как использовать Tnt, чтобы и заголовки окон были юникодными, если, конечно, в нем это возможно?
Я не спорю, что это решение действует. Просто судя по имени и фамилии он не русский, а вроде какой-то словак и не исключено, что там у него даже не английский язык стоит и не русский. Кроме того, при этом варианте вместо кракозябров в менюшках знаки вопроса. А они убираются только изменением региональных вопросов. Но, возможно, в этом я сам напортачил, не указав для них RUSSIAN_CHARSET. Но, возможно, я тут и ни при чем, так как надпись в заголовках окон, без региональных изменений на русский, отображаются знаками вопроса. Это те, которые я сделал в дизайнтайме; для дочерних окон, отображающих документы, и заголовки которых назначаются в рантайме, эти заголовки отображаются корректно.
Вчера уже поздно ночью нашел в Королевстве вопрос 36984, пока не изучал, может это решение.
Добавлено:
Это решение помогает только частично. Только если язык неюникодных программ установлен в русский, в противном случае, все надписи в заголовках окон, сделанные в дизайнтайме превращаются в знаки вопроса, а сделанные в рантайме - в кракозябры.
Подскажите, существует ли способ перекрыть отображение заголовка окна своим кодом, чтобы выводить в них юникодный текст?
Или как использовать Tnt, чтобы и заголовки окон были юникодными, если, конечно, в нем это возможно?
DmitryKz
Цитата:
Заменяешь объявление формы с
TMyDlg = class(TForm)
на
TMyDlg = class(TTntForm)
и всех дел!
Цитата:
Или как использовать Tnt, чтобы и заголовки окон были юникодными, если, конечно, в нем это возможно?
Заменяешь объявление формы с
TMyDlg = class(TForm)
на
TMyDlg = class(TTntForm)
и всех дел!
anfilat
Спасибо
Спасибо
DmitryKz
Цитата:
Перехватывать WM_NCPAINT и рисовать свой заголовок (таким образом работают компоненты по градиентной заливке и вывода текста в заголовок разными шрифтами).
Цитата:
Подскажите, существует ли способ перекрыть отображение заголовка окна своим кодом
Перехватывать WM_NCPAINT и рисовать свой заголовок (таким образом работают компоненты по градиентной заливке и вывода текста в заголовок разными шрифтами).
Плиз, скинте ссылку на русификатор Delphi 2007!!!!!!!!!!
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
Предыдущая тема: Глобальные переменные в разных формах с++ builder 'a.
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.