Дельфикингдом прочесываю...а что за торри?
» Вопросы по 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 интерфейсы к ярлыкам стали с ошибками работать, так я и не подозревал что где-то юникод просмотрел.
Тут Вы меня сильно просветили, и я бы сказал озадачили... Мне уже видно свои брёвна.

Всем салют. не знаю туда ли пишу но вопрос такой
поставил 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. Существует ли способ решить эту проблему: чтобы смогли отображаться русские буквы в заголовках окон и в экшенах в английской винде с английскими же региональными настройками? По первому вопросу я ответа совершенно не знаю, по второму догадываюсь, что может упорядочивать окна какими-то апишными функциями? Но я не знаю, какими, да и поможет ли это в смысле решения проблемы, тоже не догадываюсь.
Я, конечно, понимаю, что оптимальное решение сделать еще английскую локализацию в своей программе - я этим и занимаюсь, но с заголовками все не просто - у меня в них отображаются названия документов, а они русские.
Да, пока не забыл

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, истории становления российского интернета. Сделано для людей.