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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обнаружил случайно для себя свой баг который не замечал никогда. Это общяя шляпа для всех версий Delphi.
Оказывается AnsiCompareStr не подходит для сортировки. Дело в том что
AnsiCompareStr('''v', 'v') выдает разный результат с
AnsiCompareStr('''v', 'vv')
Одинарная кавычка воспринимается по разному.
 
Лечится с флагом SORT_STRINGSORT. Обнаружил когда не смог найти Москву ))).

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 13:41 17-04-2013
LadyOfWood

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cyrilo
С невизуальными вещами проблем при переходе на FireMonkey явно будет меньше. Но визуалку переделывать придется полностью, хотя надо сказать по отзывам FireMonkey еще достаточно сырая штука.

Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 14:50 17-04-2013
delover

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

Цитата:
Одинарная кавычка воспринимается по разному.  

Сортировка выглядит так:
avkhak
av'khca
avkhca
avkhin
Но если я нахожу первый avk, а далее по порядку хочу все начинающиеся на avk, то я спотыкаюсь на av'k. Следовательно остальных не вижу. Можно конечно удалить все ударения. Но кто сказал что пользователю нужно именно это? А если я хочу всех на av', то получю все на av??? То есть partialKey и инкрементальный фильтр отпадают. То есть SysUtils.StartsStr не поможет нам.
 
Добавлено:
Вобщем новая версия отменяется. А решил оставить как есть сортировку системную. Помоему partialKey должен справится. Нулы я решил так и оставить в конце списка, а инкрементальные фильтры это невизуальные вещи.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 19:08 17-04-2013
LadyOfWood

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

Цитата:
Это общяя шляпа для всех версий Delphi.  

А какое это отношение к Delphi имеет? AnsiCompareStr обертка над апишной функцией CompareString. CompareStr например выдает один и тоже результат.

Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 20:54 17-04-2013
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LadyOfWood
Да мне побарабану - системы нет в принцыпе с этой функцией. Delphi доверились системе Windows Default Version Build и способностям девелопера, думаю сделали правильно.
 
зызы
Я свои баги подчищаю.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 21:31 17-04-2013 | Исправлено: delover, 21:38 17-04-2013
delphinoob

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
делаю типа mdi. привязываю формы к TabSheet
Код:
      NewForm := ARef.Create(ATab);
      with NewForm do
      begin
        Parent := ATab;
        Align := alClient;
        BorderStyle := bsNone;
      end;
      ATab.TabVisible := true;
      pcMain.ActivePage := ATab;
при создании формы видно как она появляется. на долю секунды, но все равно напрягает. как убрать мерцание при создании?

Всего записей: 8 | Зарегистр. 22-05-2013 | Отправлено: 12:25 22-05-2013
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delphinoob
Выставьте в свойствах Visible=False.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 17:32 22-05-2013
neznayka3

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как избежать хинтов компилятора типа:

Цитата:
[dcc32 Hint] Unit9.pas(42): H2077 Value assigned to 'TForm9.Check' never used

код такой:

Код:
function TForm9.Check: Boolean;
begin
  Result:=false; // если закомментировать, то предупреждения нет
 
  if 1 = 1 then
    Result := true;
end;
 
procedure TForm9.btn1Click(Sender: TObject);
begin
  if Check() then
    Caption := 'ok';
end;

Всего записей: 385 | Зарегистр. 07-06-2007 | Отправлено: 13:31 20-06-2013
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
neznayka3
Не писать if 1 = 1 ведь этот код будет выполнятся всегда, а следовательно result := False - излишний

Всего записей: 2434 | Зарегистр. 18-05-2005 | Отправлено: 13:41 20-06-2013
neznayka3

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1=1 для примера, в коде этого нет.

Всего записей: 385 | Зарегистр. 07-06-2007 | Отправлено: 14:15 20-06-2013
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
neznayka3
И я для примера, смысл в этом: где-то в коде при любых условиях идет присваивание, значит инициализация бессмысленна.

Всего записей: 2434 | Зарегистр. 18-05-2005 | Отправлено: 14:19 20-06-2013
ulyss1977



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

Цитата:
как избежать хинтов компилятора типа:  
 
Цитата:
[dcc32 Hint] Unit9.pas(42): H2077 Value assigned to 'TForm9.Check' never used
 

В данном конкретном случае нужно убрать первое присвоение, а к if'у добавить else, в котором присваивать Result'у false:

Код:
 
function TForm9.Check: Boolean;  
begin  
  if 1 = 1 then  
    Result := true
  else
    Result := false;
end;  
 

Хотя еще лучше будет вообще избавиться от if'а:

Код:
 
function TForm9.Check: Boolean;  
begin  
  Result := 1 = 1;
end;  
 

под "1 = 1" подразумевается условие из if'а

Всего записей: 30 | Зарегистр. 19-07-2005 | Отправлено: 14:40 20-06-2013 | Исправлено: ulyss1977, 14:41 20-06-2013
vikop15

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А подробнее можно узнать что именно править в HKEY_CURRENT_USER?

Всего записей: 1 | Зарегистр. 27-09-2013 | Отправлено: 16:48 27-09-2013
nevertime



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
если такая ошибка HKEY_CURRENT_USER\\" is of wrong kind or size  
 
открываете редактор regedit если встать на ветку HKEY_CURRENT_USER  
справа должно быть Имя (По умолчанию) Тип REG_SZ (Значение не присвоено)
 
для примера откройте корень других веток, если в HKEY_CURRENT_USER что то другое то будет ошибка  is of wrong kind or size  

Всего записей: 47 | Зарегистр. 24-10-2009 | Отправлено: 23:21 27-09-2013 | Исправлено: nevertime, 23:24 27-09-2013
dred2k



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть такая штука.
Пишу под D2010. Массово рожаю объекты, использую, убиваю. В том числе - формы.
Но тут, при отладке, затеялся моментом...
Создаю внутри хз где форму:
 
Код:
tmpF := TClassForm.Create(nil);

Я как честный парень, контролирую переменную, потом ее освобождаю. Точно, без бэ.
Использую встроенные средства контроля утечек.
И вот вопрос - почему мне не показывают утечку, если я просто беру и не освобождаю созданный объект ?
Спасибо.

Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 03:09 04-10-2013 | Исправлено: dred2k, 03:13 04-10-2013
Dmitry

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

Цитата:
Использую встроенные средства контроля утечек.
И вот вопрос - почему мне не показывают утечку, если я просто беру и не освобождаю созданный объект ?  

А встроенные это какие именно?

Всего записей: 81 | Зарегистр. 24-09-2003 | Отправлено: 11:26 04-10-2013
AntonioT

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

Цитата:
А встроенные это какие именно?

Видимо эту:
 initialization
  ReportMemoryLeaksOnShutdown := True;

Всего записей: 17 | Зарегистр. 22-05-2006 | Отправлено: 13:18 06-10-2013
Dmitry

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

Цитата:
ReportMemoryLeaksOnShutdown

AntonioT

Цитата:
Видимо эту:
 initialization
  ReportMemoryLeaksOnShutdown := True;

 
Лучше тогда уж полноценный FastMM поставить. В нем точно все подобные утечки показываются.

Всего записей: 81 | Зарегистр. 24-09-2003 | Отправлено: 19:23 06-10-2013
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dred2k
Форму может удалить не только Owner, но и Parent. Правда это может случится только при удалении самого Parent-а, но с точки зрения менеджера памяти утечки тут не будет.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 13:18 07-10-2013
bukerman1975

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
господа-товарищи, может кто подскажет-сталкивался.
есть компоненты XL Report от AfalinaSoft (http://www.afalinasoft.com/rus/xl-report/). юзаются в разных проектах на D7, D2010 и DXE3. все прекрасно работает с разными версиями MS Office по 2010 включительно.  
но вот столкнулся поставил программу на комп, где установлен Office и соотв-но Excel 2013 и при запуске на формирование отчета вылетает эксепшен с ошибкой "OLE error 800A03EC"
 
никто не знает, победить как-то можно или только установкой офиса 2010?
 
заранее спасибо за любые ответы.

Всего записей: 13 | Зарегистр. 05-04-2011 | Отправлено: 03:13 09-10-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 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