Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)

Автор: mdaii
Дата сообщения: 30.07.2010 14:20
Хм...

2 mcka
----
У меня 1-5 нет
6-7 - да
8 - вроде нет
Остальное надо проверять
с 17 18 - точно есть какие-то проблемы

D 2010 лицензия со всеми апдейтами
W7 тоже лицензия
Никаких расширений IDE не ставил.

что характерно, стек оверфлоу на 2009й частый гость
но я грешу на девковские скины... Там где они не используются этого вроде нет

Автор: mcka
Дата сообщения: 30.07.2010 15:00
Frodo_Torbins
>Мыло убирается
Поделитесь секретом.

mdaii
>но я грешу на девковские скины
Что за скины?, доп. скины я не использую


Обновил пост.
Автор: Frodo_Torbins
Дата сообщения: 30.07.2010 16:09
mcka
На счет пункта 20 можно подробнее?

Цитата:
Поделитесь секретом.
https://forums.embarcadero.com/thread.jspa;jsessionid=091DD6AA3DAD51AD4695BE599622BE57?messageID=216741

Цитата:
Хотя странно почему не добавили Build Events(Pre-build и Post-Buid) на каждый конфиг.
Добавили, на сколько я помню.
Автор: mcka
Дата сообщения: 30.07.2010 19:28
Frodo_Torbins
> На счет пункта 20 можно подробнее?
Обновил 20-й пункт

> Поделитесь секретом.
Спасибо, проверю, отпишусь.

> Добавили, на сколько я помню.
(Pre-build и Post-Buid) добавили один для всех конфигов, а мне понадобилось для Release/WIBU и Release/Sentinel свой Post-Buid конфиг (см. выше как я это обошел).
Автор: kvazars
Дата сообщения: 31.07.2010 18:45
Доброго времени суток! Перечетал страницы, но возмжно пропустил...
почему в D2010 после продолжительной работы ОС - начинает явным образом тупить?
при наведении на объект кода - долго думает потом показывает к какому классу принадлежит.
и мн. другое. (железо и настройки ОС во мнимание брать не стоит, так как все настроено на оптимальную работу (имхо), да и с предыдущими версиями Delphi таких багов не наблюдалось)

Добавлено:
Да и чуть не забыл....почему остаются линии при переключениями между окнами.
то есть остаются края предыдущих открытых окон. Это началось в Д2009 - и есть также в 2010
Автор: AlexIntegral
Дата сообщения: 31.07.2010 20:44
Сталкивался ли кто-нибудь с такой ошибкой: TListView.Items.itemData: Stream read error при попытке загрузки данных из файла в ListView в виде vsReport когда Items пустые, как решить проблему?



То есть ошибка, то нету...
Автор: Frodo_Torbins
Дата сообщения: 31.07.2010 22:27
kvazars
Проверьте расход оперативной памяти. Включите в диспетчере задач отображение всех столбцов, имеющих отношение к памяти, и наверняка увидите приличную утечку.
Автор: kvazars
Дата сообщения: 01.08.2010 04:30
Frodo_Torbins,
С тормозами понятно теперь, покаопаюсь. а как быть с отрисовкой предыдущих форм во всей IDE?то есть они убираются только если верешься на ту же самую форму. Они остаются даже если закрыть проект
Автор: Frodo_Torbins
Дата сообщения: 01.08.2010 09:59
kvazars
Скорее всего это неудачная попытка оптимизации отрисовки. Тут вряд ли что то можно сделать.
Автор: kvazars
Дата сообщения: 01.08.2010 18:13
Очень жаль, а то этот баг (или фича) нервирует когда в проекте куча форм.....
Автор: Frodo_Torbins
Дата сообщения: 01.08.2010 18:27
kvazars
Так у вас именно формы из проекта не перерисовываются? У меня только после выезжающих панелей иногда артефакты остаются, а про формы впервые слышу.
Автор: kvazars
Дата сообщения: 01.08.2010 19:31
Как бы описать...всё отрисовывается супер пупер. Но в момент когда переключаюсь на другую форму - остаются следы предыдущей формы - то есть синий полосы краев предыдущей формы. Можно проект закрыть, а полосы останутся. Решается перезапусуком среды или же, открыть ту форму которая дала артефакты. Глюк IDR - однозначный, потому как и дома и на работе одно и тоже. да и у друзей так
Автор: andrewtishkin
Дата сообщения: 01.08.2010 19:39

Цитата:
Как бы описать...

Зачем? Проще показать на скриншотах "до" и "после"
Лучше один раз увидеть...
Автор: kvazars
Дата сообщения: 01.08.2010 20:53
andrewtishkin, завтра будет
Автор: mcka
Дата сообщения: 04.08.2010 10:06
Обновил пост
Автор: 0D0A
Дата сообщения: 04.08.2010 11:12
mcka, какой смысл об этом писать тут, а не в QC?
Автор: mcka
Дата сообщения: 04.08.2010 15:59
0D0A Для русскоязычного населения. И ветка называется "Обсуждаем новые возможности и баги"
Автор: 0D0A
Дата сообщения: 05.08.2010 07:22
mcka, есть смысл обсуждать способы исправления багов, а не перечислять. Они что, от этого исчезнут?
Автор: mcka
Дата сообщения: 05.08.2010 11:56
0D0A Если Вы внимательно читали, то заметили бы, что местами написано: как можно обойти/исправить.

Лично я, например не знал, как исправить [more=размытое приложение.] [/more]
Спасибо Frodo_Torbins он показал как [more=это можно исправить] <asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>[/more].
Автор: salexn1
Дата сообщения: 05.08.2010 12:04
никто случайно не встречал ORM под Delphi 2010? Что нить типа NHibernate, SubSonic...
Автор: Granmer
Дата сообщения: 06.08.2010 15:18
Существует программа написанная на d2007 (начальный разработчик недоступен, только немножко сопровождаем код), там всё работает нормально. Попробовали скомпилировать на d2010, вылетает Access Violation. Начали разбираться, выяснилось, что создаётся форма №1 - потомок формы №0, затем она присваивается новой вкладке в PageControl на главной форме. А вот при закрытии этой вкладки и возникает ошибка, т.к. инициирует закрытие кнопка, находящаяся на форме №1, а вызывает она обработчик с главной формы (который также удаялет и вкладку с PageControl). Получается, что нажав кнопку - мы вызываем с другой формы обработчик, удаляющий вызвавшую форму и при этом на событии OnMouseUP вызвавшей формы вылетает Access Violation, т.к. самой кнопки уже не существует. Вопрос, почему это без ошибок работало в d2007 и с ошибкой в d2010? И можно ли это как-то исправить, не переписывая добрую половину программы? Буду весьма признателен любой помощи, кроме совета не переходить на 2010
Автор: Frodo_Torbins
Дата сообщения: 06.08.2010 15:38
Granmer
Ошибка Access Violation неприятна в первую очередь тем, что проявляется не всегда, и не обязательно там где возникла. Хотя если она не появляется, это еще не значит что ее нету, просто в этот раз битый указатель показывает на не критическую область памяти. Подробнее о AV можно почитать тут: http://www.gunsmoker.ru/2010/03/blog-post.html
Конкретно в вашем случае с проблемой справится довольно легко: пускай кнопка через PostMessage посылает специальное сообщение главной форме. А та уже в обработчике сообщений удалит нужную форму вместе со страницей пейджконтрола.
Автор: psa1974
Дата сообщения: 07.08.2010 18:01
Granmer

Цитата:
почему это без ошибок работало в d2007 и с ошибкой в d2010?

У меня была подобная ситуевина, когда портировал одну библиотеку на d2009/d2010. Там тоже все было сложно закручено при разрушении объектов - объект, разрщаясь, разрушал другой объект, которым владел, а потом еще и обращался к его свойствам... В D2007 и ранее никогда ошибок не ворзникало, и поскольку последняя версия была под D5, то автор само собой ошибку не заметил. Однако в d2009/d2010 четко вылазил AV. Поборол путем пересмотра логики и изменения последовательности рузрушения объектов.
Вероятно, компилятор в Дельфи до 2009 не сильно следил за ссылками на разрушенные объекты и занимаемую ими при жизни память, и если сразу же после разрушения объекта память, занимая им еще не была распределена заново (фактически все данные разрушенного объекта еще по-прежнему оставались в памяти), то обращение к этой памяти по ссылке уже умервщленного объекта прокатывала.
В d2009/d2010 компилятор более тщательно следит за памятью и такой вольности не допускает.

Решение Frodo_Torbins довольно симпатичное
Как вариант можно в обработчике нажатия кнопки, по которой вызывается с другой формы обработчик, удаляющий вызвавшую форму, первой строкой обнулить свойство OnMouseUP этой кнопки:
ButtonName.OnMouseUP:=nil;
а после этого - все остальное. Или (еще лучше) сделать это в обработчике OnMouseDown...

ЗЫ: И да, на Дельфи 2010 переходить надо - она очень вкусная
Автор: Granmer
Дата сообщения: 09.08.2010 11:54
Frodo_Torbins
psa1974
Спасибо, что натолкнули на мысли, сделал что-то среднее - частично переписал код, частично изменил обработку.

Цитата:
ButtonName.OnMouseUP:=nil;
- это не помогло (
Автор: mcka
Дата сообщения: 10.08.2010 16:36
А тут (Quality Central Eng) полный список багов
Автор: Ludens
Дата сообщения: 14.08.2010 21:50
Вот есть ScrollBox1, в который помещены пять контролов — Memo1, Memo2, Memo3, Memo4, и Memo5. (У каждого из них свойство Align = alTop.)

Мне нужно в рантайме поменять местами Memo2 и Memo3. Просто тупо поменять местами.
Пока я нашел для этого только один работающий способ: удалить ВСЕ Memo из ScrollBox1 (Parent := nil), а затем друг за дружкой вставить их обратно в ScrollBox1 в новом порядке.
Но такой способ мне кажется слишком тяжелым. Неужели нет варианта попроще? Кто-нибудь сталкивался с аналогичной задачей?
Автор: volser
Дата сообщения: 14.08.2010 22:38
Ludens
Нужно менять Top контрола.
Автор: Ludens
Дата сообщения: 14.08.2010 22:52
volser,
пробовал.
Типа,

Код: Controls[2].Top := Controls[1].Top;
Автор: volser
Дата сообщения: 14.08.2010 23:44
Ludens
Все отлично работает Memo3.Top := Memo2.Top; Правда пропадает скрол, для этого нужно добавить ScrollBox1.Realign;
Автор: Ludens
Дата сообщения: 15.08.2010 01:08
volser
да, ты прав: в таком виде действительно работает.
Но я, стремясь предельно упростить формулировку своей задачи, в итоге сформулировал ее не совсем верно.
На самом деле, мне нужно не просто один раз поменять местами Memo2 и Memo3, а постоянно менять местами те или иные соседние Memo, расположенные на произвольных местах и созданные в рантайме. Может быть, вот в таком виде будет более внятно:

Код: procedure TForm1.FormCreate(Sender: TObject);
var I: Integer; M: TMemo;
begin
for I := 4 downto 0 do begin
M := TMemo.Create(ScrollBox1);
ScrollBox1.InsertControl(M);
M.Height := 50;
M.Lines[0] := 'Memo' + IntToStr(I+1);
M.Align := alTop;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
with ScrollBox1 do
Controls[2].Top := Controls[1].Top;
end;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: Установка копоненты ZipTV


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.