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

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я дико извиняюсь но повторю совй вопрос:
 
У мну такая беда в делфи 2010 уже достала:  
Когда пишешь имя фиелда в FieldName колонки грида например он ругается что такого фиелда нет в датасете (его там на самом деле нет, потому что я не определяю фиелды заранее по некоторым причинам), как сделать так чтобы не ругался? (чтобы не выполнял эту проверку)

Всего записей: 380 | Зарегистр. 02-10-2009 | Отправлено: 15:17 29-11-2009
psa1974



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

Цитата:
появляются ли изменения порогов лага при изменении PixelsPerInch c включенным Scale в Висте или 7 на тестовых вариантах?

Да. В семерке изменил системный масштаб на 125% (PixelsPerInch=120), в итоге в дельфийской программе для шрифта Tahoma, 8  - предел видимости уменьшился до ~5270 символов. Остальные тесты не стал проверять. Тенденция понятна и к Дельфи отношения не имеет. Однако знать ее полезно
 
 
Добавлено:
snike555
Думаю, если бы кто-то знал ответ, то обязательно тебе б ответил На мой взгляд, если фиелда нет, зачем тогда его писать в дизайнере? Смысл? Пиши динамически во время выполнения. Или я чего-то не понимаю.  
Кстати, а что, в других версиях студии было по другому?
Имхо, ты хочешь не возможного - это сродни тому, что попытаться скажем, в инспекторе объектов форме или кнопке прописать в свойстве PopupMenu какое-то имя, при условии что реально на форме нету компонента ТPopupMenu с этим именем.

Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 15:50 29-11-2009 | Исправлено: psa1974, 16:03 29-11-2009
spasius



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
snike555
из тех примеров что видел или сам использовал скажу что всегда это делается динамически, кроме некоторых случаев (в основном случае справедливы для сторонних аналогов).
psa1974
согласен. тему с буферизацией можно закрыть. в случае теста на стандартной теме либо с Scale=False наблюдаем неправильную работу отрисовки в TEdit. на ум приходит только кривая реализация буферизации, хотя ввести в TEdit больше тысячи символов может потребоваться в очень редких случаях.

Всего записей: 695 | Зарегистр. 16-03-2009 | Отправлено: 16:15 29-11-2009
snike555



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

Цитата:
На мой взгляд, если фиелда нет, зачем тогда его писать в дизайнере?

 
Я ведь написал что в гриде приписать фиелды, а нет их в десидж тайме, а во время выполнения они появятся, но поскольку я точно знаю что они появятся их проше прописать в десиджтайм в гриде чем во время выполнения.
Например в 7ке он только на сессию ругался и никогда что фиелда нет. А в 2010 и когда пишешь в FieldName , а иногда и просто выскакивает предупреждение, бесит страшно.
 

Всего записей: 380 | Зарегистр. 02-10-2009 | Отправлено: 16:21 29-11-2009
psa1974



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

Цитата:
а во время выполнения они появятся

Ну вот и пиши фиелды в гриде тогда, когда они появятся. На мой взгляд это логично. Так же, как и логично со стороны дизайнера студии требовать описывать связи в дизайнайме только между существующими объектами. Снова возвращаюсь к попупменю (можно ряд других примеров привести): ты не сможешь объекту написать в инспекторе объектов в дизайнтайме имя несуществующего меню ни в Дельфи 2010 нм в Дельфи 7. Чем фиелды лучше попупменю? Ничем.
А вообще все эти дела реазизуются в редакторах свойств. Ты можешь сам написать редактор свойства для свойства типа TField и реализовать там любое поведение, какое тебе заблагорассудится, зарегистрировать в студии этот редактор свойства - и наблюдать результат своей фантазии  
Видимо в Дельфи 2010 чуток изменили штатный редактор свойства, и на мой взгляд, в лучшую сторону, потому как может ты и отдаешь себе отчет в своих действиях по обману студии (допуская наличие потенциальных ошибок), но не вся программистская братия такая, и польза от этой свободы, в общем случае сомнительная.
 
Добавлено:
spasius

Цитата:
в случае теста на стандартной теме либо с Scale=False наблюдаем неправильную работу отрисовки в TEdit

Добавлю только что  тесты не зависят от используемой темы - я пробовал и на классической теме и на самой кучерявой - в обоих случаях баг присутствует .  
Я подозреваю, что в ранних версиях систем (98, ХР) буфиризировались только символы (ну не объектные были системы - если взглянуть на API - нету ни одного класса - только функции и мессаги) и ограничение было 64 кб по-любому и только на кол-во символов. А в последних версиях (Виста, семерка), построенных уже на по-настоящему объектному API (.Net FrameWork) вероятно буфферизируется все вкупе, как элементы некоей сущности (объекта) - и символы и шрифт и масштаб, и может еще что-то. Имхо. И если это так, то все логично.

Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 16:45 29-11-2009 | Исправлено: psa1974, 17:07 29-11-2009
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
psa1974
.Net FrameWork используется в системных либах?

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 18:19 29-11-2009
snike555



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

Цитата:
Ну вот и пиши фиелды в гриде тогда, когда они появятся. На мой взгляд это логично. Так же, как и логично со стороны дизайнера студии требовать описывать связи в дизайнайме только между существующими объектами.  

 
пусть требует, но опционально
 
Может кто знает отключается ли эта фича?
 

Всего записей: 380 | Зарегистр. 02-10-2009 | Отправлено: 18:55 29-11-2009
psa1974



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Точно не могу утверждать - я ж написал, что это мое мнение. Просто в таком случае все бы объяснялось. Все, тема окончательно ушла в оффтоп, я больше об этом ни слова...

Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 19:14 29-11-2009
V1s1ter



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

Цитата:
пусть требует, но опционально

Поскольку никто прямо не ответил, то посмею предложить посмотреть в модуле DSDefine объект  TDefineField и модуль DBGrids объект TColumn.
Хоть это относится к D2007, я думаю Вы найдете все что Вам нужно и в D2010.

Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 19:39 29-11-2009
psa1974



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
snike555
Тааак. Собственно, решил таки воспроизвести ситуацию. Взял в руки Дельфи 2010, кинул на форму TDBGrid, TDataSource, TTable. Связал между собой, для TTable прописал DatabaseName = 'DBDEMOS',  TableName = 'customer.db'. Никаких полей в TTable не добавлял. Иду в грид, вызываю его редактор, добавляю поля, приписываю в свойстве FieldName все, на что фантазия способна - все пучком, никаких ругательств. Вообще никаких.  Пробовал и при активном и при неактивном TTable.
Что я не так сделал?

Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 19:53 29-11-2009
snike555



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

Цитата:
Тааак. Собственно, решил таки воспроизвести ситуацию. Взял в руки Дельфи 2010, кинул на форму TDBGrid, TDataSource, TTable. Связал между собой, для TTable прописал DatabaseName = 'DBDEMOS',  TableName = 'customer.db'. Никаких полей в TTable не добавлял. Иду в грид, вызываю его редактор, добавляю поля, приписываю в свойстве FieldName все, на что фантазия способна - все пучком, никаких ругательств. Вообще никаких.  Пробовал и при активном и при неактивном TTable.  
Что я не так сделал?  

 
Хм, неужто это DOA делает, трудно в это поверить.
 
Добавлено:
ушел проверять

Всего записей: 380 | Зарегистр. 02-10-2009 | Отправлено: 20:18 29-11-2009
spasius



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
snike555
psa1974
на тестовой машине даже без обновлений студии 2010 все прошло на ура. единственное после указаний tablename & databasename сделал active:=true;
скомпилировалось. менял. игрался. все гуд.

Всего записей: 695 | Зарегистр. 16-03-2009 | Отправлено: 20:29 29-11-2009
psa1974



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
snike555
Не знаю кто такой этот DOA, но вполне возможно, что он подменил стандартные редакторы свойств на свои собственные, или просто у него для фиелдов используется свой тип, скажем TDOAField, в этом случае DOA может пользоваться своими редакторами свойств, не мешая другим компаноидам. В первом случае у тебя тогда везде будет проявляться этот эффект, с любыми компаноидами. Во втором - только с этим DOA.
 
ЗЫ: А я тут распинаюсь о высоких материях пол-дня...

Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 20:42 29-11-2009 | Исправлено: psa1974, 20:50 29-11-2009
snike555



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

Всего записей: 380 | Зарегистр. 02-10-2009 | Отправлено: 21:04 29-11-2009
relictus

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

Цитата:
И мне кажется, что такое поведение среды - совершенно логично. Кстати, те области, что были явно обозначены фолдящимися с помощью директивы REGION, на дописывание хоть бегинов, хоть ендов - совершенно не реагируют.

Да, только регионами и спасаюсь. Но насчет логично - не согласен. ИМХО, не надо парсить весь код, пока я не выйду из тела процедуры, то бишь, пока курсор редактирования не выйдет.

Всего записей: 3710 | Зарегистр. 19-04-2005 | Отправлено: 08:52 30-11-2009
JAPWork

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

Цитата:
ИМХО, не надо парсить весь код, пока я не выйду из тела процедуры, то бишь, пока курсор редактирования не выйдет.

Конечно, тут точек зрения может быть гораздо более одной.  
Просто если в процессе работы окна редактирования кода пространство имен не замыкается только на текущем блоке самого низкого уровня, то вроде бы логично, что идет постоянный парсинг всего кода, с постоянным псевдоинтеллектуальным участием среды (подчеркивание неописанных переменных, синтаксическая подсветка и т.д.). И чисто формально - имеется исчерпывающий набор альтернатив. Хочешь - будет участие среды в фолдинге и расфолдинге. Участки, которые хочешь сохранить - тоже дано средство фиксации, вывода из области действия автомата разбора.
 

Всего записей: 467 | Зарегистр. 12-02-2003 | Отправлено: 10:10 30-11-2009
snike555



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

Всего записей: 380 | Зарегистр. 02-10-2009 | Отправлено: 14:16 30-11-2009
psa1974



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

Цитата:
Кстати у тебя апдейт 3 стоит?

Нет. Интересно, а у spasius стоит апдейт 3 (у него как и у меня проблема не наблюдается)?
 
Что я думаю:
Свойство Column в гриде - имеет тип TColumns и наследуется от TCollection. Для этого свойства вызывается стандартный редактор свойства (у меня, по крайней мере) и для каждого столбца отображает опубликованные свойства класса TColumn, который унаследован от TCollectionItem. Таким образом поскольку сво-во FieldName является строковым и для него я не нашел специального редактора свойства (у меня, по крайней мере), то и поведение  дизайнера стандартно и руководствуется при установке значения свойству TColumns[i].FieldName собственно методом TColumn.SetFieldName в модуле DBGrids.pas. Сам метод у меня имеет такой вид:

Код:
procedure TColumn.SetFieldName(const Value: WideString);
var
  AField: TField;
  Grid: TCustomDBGrid;
begin
  AField := nil;
  Grid := GetGrid;
  if Assigned(Grid) and Assigned(Grid.DataLink.DataSet) and
    not (csLoading in Grid.ComponentState) and (Length(Value) > 0) then
      AField := Grid.DataLink.DataSet.FindField(Value); { no exceptions }
  FFieldName := Value;
  SetField(AField);
  Changed(False);
end;
 

Эти рассуждения верны и для ДОА, только вот там может использоваться другой тип для столбцов и другая реализация этого метода для установки значения св-ву FieldName. Вроде так. Вобщем, надо проверять...

Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 15:40 30-11-2009 | Исправлено: psa1974, 15:55 30-11-2009
snike555



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
psa1974
У меня ещё и гриды все Ehlibовские

Всего записей: 380 | Зарегистр. 02-10-2009 | Отправлено: 16:01 30-11-2009
psa1974



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

Цитата:
У меня ещё и гриды все Ehlibовские

Ага, потихоньку выплывают детали... То, о чем я и говорил: если взглянуть на процедуру Register в модуле EhLibReg.pas, нельзя не заметить, строку:

Код:
RegisterPropertyEditor(TypeInfo(string), TColumnEh, 'FieldName', TDBGridEhFieldProperty);

что, во первых, говорит о том, что у Ehlib свой тип столбцов, и во-вторых, у него для свойства FieldName класса TColumnEh зарегистрирован свой редактор свойства TDBGridEhFieldProperty...  
Кстати, ты проверял по моей схеме со стандартным гридом? Каковы результаты?

Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 16:48 30-11-2009
Открыть новую тему     Написать ответ в эту тему

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