Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

Открыть новую тему     Написать ответ в эту тему

data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаем новые возможности и баги
Просьба писать только про Delphi 2009 и выше - по остальным версиям есть соответствующая тема.
Вопросы вареза здесь не обсуждаются !!!
См. также:
Известные важные баги Delphi 2010:

Описание________________________________________________ Исправлено Решение/Альтернатива_____________________
  1. Внимание !  Деинсталляция D2010 нарушает работу D2007 и D2009 !  
При деинсталляции удаляются CC3280MT.DLL и CC3290MT.DLL из Windows\System32,   необходимые для работы D2007 и D2009 соответственно.
Сделайте резервные копии
  2. Code Formatter не работает, если не инсталлирован пакет моделирования.   В нем также присутствует множество багов. Используйте с осторожностью.   1.   JEDI CodeFormat 2.44 SVN Snapshot (~750Kb)   Требуются JCL и JVCL  
2.GExperts with Formatter
  3. Не работает F1 в Object Inspector Update 2   IDEFixPack 2.9 от Andreas Hausladen
(dev. snapshots)
  4. Если IDE начинает падать с сообщением "Out of resources", возможно, что поврежден .res файл проекта. Удалить его, запустить IDE, открыть проект - новый .res файл будет создан автоматически.
  5. В редакторе не работает Class Completion, если в декларируемом классе есть поля с шаблонами. Перед декларированием поля добавить public или private и т.д.
  6. TTrayIcon.ShowBalloonHint() не работает на ОС ниже Vista [QC 77561] Update 2 * Установить Update 2   * ИЛИ почитать о причинах и решении проблемы на форуме embarcadero и в QC   * ИЛИ воспользоваться альтернативой, например Cooltray 4.4.0
  ...      


Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 14:28 26-08-2009 | Исправлено: data man, 18:27 06-08-2010
rrromano



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
eddoc
 
Ну вот, всё, как и предполагалось )
К стати, практика показывает, что к любому продукту (почти) нужен напильник )

Всего записей: 283 | Зарегистр. 20-09-2006 | Отправлено: 15:17 22-09-2011
AKazak



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пишу консольное приложение на XE. Нужен вывод русских сообщений в консоль, и следовательно нужно преобразовать кодировку строки из ANSI или Unicode в OEM. Прошерстил Интернет (см. тут, тут и тут) и оказалось в RAD на работают Unicode in RAD Studio). Пришлось слегка модифицировать функции преобразования кодировки:
Код:
function StrAnsiToOem(const InputString: AnsiString): AnsiString;
begin
  SetLength(Result, Length(InputString));
  AnsiToOemBuff(@InputString[1], @Result[1], Length(InputString));
end;
и
Код:
 
function StrAnsiToOem(const InputString : String) : AnsiString;
begin
  Result := '';
  if InputString = '' then Exit;
  SetLength(Result, Length(InputString));
  CharToOemW(PChar(InputString), PAnsiChar(Result));
end;

 
Первый вариант работает с предупреждением W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString'. Второй вариант работает без предупреждений.

Всего записей: 638 | Зарегистр. 24-12-2005 | Отправлено: 12:38 24-09-2011 | Исправлено: AKazak, 12:40 24-09-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AKazak
Вывод русских буковок в консоль достигается одной строкой кода в начале программы:
Код:
DefaultSystemCodePage := GetConsoleCP;
//а далее просто
WriteLn('Привет мир!');

Что касается преобразований, то рекомендую поискать гуглом SetCodePage на этом форуме.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 13:08 24-09-2011 | Исправлено: Frodo_Torbins, 13:12 24-09-2011
ShadowMen

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Delphi XE. Пропали иконки компонентов с палитры компонентов.  
   
Причем не все, а частично...
Тем не менее, при переключении в Default layout - иконки присутствуют
   
Может кто встречался с таким...
 
Оказывается, это не только у меня...
Подобная проблема описана тут: http://stackoverflow.com/questions/5954718/delphi-xe-icons
Кратковременное решение заключается в удалении веток реестра
 HKEY_CURRENT_USER\Software\Embarcadero\BDS\8.0\Package Cache
 HKEY_CURRENT_USER\Software\Embarcadero\BDS\8.0\Palette\Cache
 
Единственное, что помогает в решении проблемы запуск IDE с -nocache
 
 
 

Всего записей: 263 | Зарегистр. 18-02-2002 | Отправлено: 23:45 22-10-2011 | Исправлено: ShadowMen, 13:34 23-10-2011
Andrey128

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как обнулить одним махом динамический массив?
Хотелось бы это сделать без цикла.
 
Если элемент массива - целочисленный (например Integer), то можно сделать так
Код:
FillChar(A[0], SizeOf(A[0]) * Length(A), 0);

 
Если элемент массива посложнее (например Currency), то такой номер не пройдет.
Код:
 
var
  I: Integer;
  A: array of Currency; // Integer
begin
  SetLength(A, 9);
  for I := Low(A) to High(A) do
    A[ I ] := I + 10;
  FillChar(A[0], SizeOf(A[0]) * Length(A), 0); // <= компилятор ругается здесь
  for I := Low(A) to High(A) do
    A[ I ] := I + 100;
end;

Во общем, сабж.

Всего записей: 410 | Зарегистр. 16-01-2003 | Отправлено: 15:47 02-11-2011 | Исправлено: Andrey128, 15:48 02-11-2011
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andrey128
вариант 1 a := nil;
вариант 2 SetLength(a,0);

Всего записей: 2594 | Зарегистр. 18-05-2005 | Отправлено: 16:45 02-11-2011
Andrey128

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samotek
В Вашем варианте, память массива будет уничтожена и заново выделена.
 
Забыл написать, что обнуление массива происходит в длительном цикле, и хотелось бы лишние манипуляции исключить, т.е. обнулить через FillChar или что-либо подобное.

Всего записей: 410 | Зарегистр. 16-01-2003 | Отправлено: 17:10 02-11-2011
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andrey128

Цитата:
Как обнулить одним махом динамический массив?

Динамический массив имеет размерность в виде количества элементов. Обнулить такой массив может означать только удалить все элементы. Вы наверно имели в виде "обнулить значения элементов"? Тогда бы я не отвечал, так как не знаю такого. Удачи.

Всего записей: 2594 | Зарегистр. 18-05-2005 | Отправлено: 17:27 02-11-2011
Andrey128

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samotek
Прошу прощения, что ввел в заблуждение.
Нужно обнулить значения элементов.

Всего записей: 410 | Зарегистр. 16-01-2003 | Отправлено: 18:04 02-11-2011
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andrey128

Код:
 
var  
   I: Integer;  
   A: array of Currency; // Integer  
 begin  
   SetLength(A, 9);  
   for I := Low(A) to High(A) do  
     A[ I ] := I + 10;  
  FillChar(A, SizeOf(A[0]) * Length(A), 0);
   for I := Low(A) to High(A) do  
     A[ I ] := I + 100;  
 end;
 

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 19:43 02-11-2011
Andrey128

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wasilissk
В Вашем варианте обнуляется сама переменная A и после этого переменная A никуда не указывает. А выделенная раннее память остается бесхозной.
 
Попытался отследить отладчиком CPU, что же вызывается в SetLength (ведь после нее, элементы массива обнулены). И увидел знакомую функцию FillChar.
На мой взгляд, переменная A - это указатель на выделенный массив в памяти. После недолгих экспериментов родился рабочий вариант.
Код:
FillChar(Pointer(A)^, SizeOf(A[0]) * Length(A), 0);

Всего записей: 410 | Зарегистр. 16-01-2003 | Отправлено: 06:54 03-11-2011 | Исправлено: Andrey128, 06:55 03-11-2011
KF121



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С++ Builder. задача прочитать на x64 ветку в реестре, приложение пишу x86. по умолчанию вычитывает с Wow64node. как заставить 32-х разрядное приложение прочитать из HKEY_LOCAL_MACHINE\SOFTWARE\ а не HKEY_LOCAL_MACHINE\SOFTWARE\Wow64node

Всего записей: 170 | Зарегистр. 24-05-2006 | Отправлено: 10:07 08-11-2011 | Исправлено: KF121, 10:09 08-11-2011
Pavel_M2



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MSDN

Всего записей: 12 | Зарегистр. 19-08-2005 | Отправлено: 10:21 08-11-2011
KF121



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Через TRegistry это можно сделать?

Всего записей: 170 | Зарегистр. 24-05-2006 | Отправлено: 10:23 08-11-2011
Senpai07



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KF121
 

Цитата:
Через TRegistry это можно сделать?

Можно.

Всего записей: 295 | Зарегистр. 05-12-2005 | Отправлено: 15:16 08-11-2011
KF121



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Senpai07
а не подскажите как? чет не нашел флага отвечающий за редирект.

Всего записей: 170 | Зарегистр. 24-05-2006 | Отправлено: 15:39 08-11-2011 | Исправлено: KF121, 15:39 08-11-2011
Pavel_M2



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KF121
Ты по ссылке, что я прислал, ходил?

Всего записей: 12 | Зарегистр. 19-08-2005 | Отправлено: 20:08 08-11-2011
AdapterLp



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
можете посоветовать обфускатор не кода а исполняемого файла и cmd ?

Всего записей: 426 | Зарегистр. 15-09-2009 | Отправлено: 00:24 14-11-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AdapterLp
В исполняемом файле, после отключения отладочных опций компилятора, обфусцировать и так нечего. Все что там остается будет необходимо для работы. Но даже такой файл можно обработать криптором и протектором.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 00:43 14-11-2011
apnss

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AdapterLp
для  EXE  хорошо себя зарекомендовал:  
http://www.oreans.com/themida.php  
 
тут в варезнике поищи.  
мне она так понравилась что я ее купил ...

Всего записей: 708 | Зарегистр. 26-02-2002 | Отправлено: 02:58 14-11-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru