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