Форум: "Основная";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];
ВнизГлюк при показе формы Найти похожие ветки
← →
supersan (2003-04-18 15:42) [0]Здравствуйте, господа. Суть проблемы. Был старый вариант MDIChild формы. В процессе работы он был исправлен. Но при запуске проги выдается все равно старый вариант!!! Хотя при проектировании - новый!!!
Условия: Эта форма отображает TRXGrid, в новом варианте были добавлены столбцы, форма создается в процессе выполнения.
Мои действия: Пытался выполнить Build All; удалять/возвращать форму в проект; перенести проект в другой каталог; удалять dcu файлы. Ничего из этого не помогло.
Дополнительно: Текст формы (dfm и pas) показывают новый вариант.
Подскажите еще какую-нибудь идею по исправлению, если можно, работоспособную. Заранее спасибо.
← →
Cobalt (2003-04-18 16:27) [1]попробуй удалить *.ехе
← →
NikB (2003-04-19 00:47) [2]Ne ochen veroiatno, no posmotri Path gde sohranil novii variant - nado sootvetstvovat Path v Project manager-e
← →
supersan (2003-04-21 07:06) [3]
> Cobalt © (18.04.03 16:27)
Не помогло, к сожалению. Будут еще какие идеи?
> NikB (19.04.03 00:47)
Имеются в виду настройки в Project/Options/Directories\Conditionals? Тогда, наверное, не то: у меня там прописаны относительные пути. Чтоб не быть голословным, приведу дерево каталогов на этот проект:
C:\work\dpl\
------------dbase\ (тут лежит БД, на Interbase)
------------source\ (тут лежат исходники: *.pas,*.dfm, dpl.dpr и др.)
------------units\ (сюда компилируются файлы, т.е. здесь *.dcu)
------------dpl.exe (сам исполняемый файл)
Открываю в Delphi файл -----\source\dpl.dpr
Есть еще несколько каталогов (типа Images, Documents, shabl, и т.п., но они роли играть не должны, там всякая вспом. информация)
Настройки в Project/Options/Directories\Conditionals:
Output Directory: "..\" (т.е. компилирую в C:\work\dpl\)
Unit output directory: "..\units\" (т.е. чтобы *.dcu попадали в C:\work\dpl\units\).
Вот, вроде бы все правильно сделал, а оно, нехорошее такое, не хотит себя правильно вести. Может, кто подскажет, чего еще придумать?
← →
Shirson (2003-04-21 08:03) [4]В директории, где лежит глючащая форма, удали её dcu.
← →
supersan (2003-04-21 08:51) [5]
> Shirson © (21.04.03 08:03)
Пробовал, не помогает (см > supersan © (18.04.03 15:42))
Плюс к тому (см > supersan © (21.04.03 07:06)), все dcu файлы лежат в отдельном каталоге.
Или имелось в виду что-то иное?
Мне тут посоветовали уже переставить Delphi. Не хочу пока это делать, т.к. придется опять ее настраивать (в частности, прописывать в Tools\Editor Options\Code Insight сокращения для Ctrl+J. Кстати вопрос: можно ли их сохранить, сохранив, например, какие-нибудь файлы, а потом их заменить после новой установки?)
И большая просьба: плиз, прежде чем что-то советовать, может, стоит внимательно прочитать предыдущие сообщения? Извините, если нагрубил :-)
← →
supersan (2003-04-21 09:13) [6]Дополнение к > supersan © (21.04.03 08:51)
Возможно, забыл важное обстоятельство. На этой форме еще лежит TFormStorage из RxLibrary. В его свойствах было сохранение столбцов Grid"а. Попробовал его удалить - нормально, т.е. отображает в Grid все поля, которые нужны (т.е. добавленные). Поставил обратно, все равно отображает нужные поля. Но нужно бы запомнить, какие изменения внес пользователь в эти поля, т.е. опять вношу в свойства TFormStorage запоминание столбцов Grid"а, а отображаются опять старые поля!!!
Итак, если нет запоминания свойств TDBGrid.Columns в TFormStorage, то все нормально, а если поставить запоминание, то новые столбцы пропадают, отображаются старые. Почему?
PS Делал Build Project, т.е. компилил по-новой.
← →
evvcom (2003-04-21 09:20) [7]Может присутствует логическая ошибка в сохранении/чтении через TFormStorage. Попробуй чикнуть сохраненные TFormStorage данные и в конце концов прошагать по обработчикам TFormStorage, если такие дополнительно прописаны.
← →
Kuusiniemi (2003-04-21 09:54) [8]А Вы оставляли старый проект? Сделали новый путем его копирования в новую директорию? Тогда такие ошибки могут вызываться информацией из .dsk файла - закройте проект и удалите его. При открытии проекта этот файл будет создан заново с правильными путями.
← →
supersan (2003-04-21 10:24) [9]
> Kuusiniemi © (21.04.03 09:54)
Попробовал, не помогло.
> evvcom ©
Попробовал по F7 прогнать проект, на обработчики TFormStorage не заходит (что удивительно, т.к. RxLibrary постоянно показывает свои исходники при пошаговом выполнении, поэтому морально к этому приготовился, ан нет, оказалось - не надо :-0). По слухам, FormStorage сохраняет настройки в реестре, может, там где-нибудь глянуть (еще есть возможность использовать ini файл, но я не знаю, как :-()
Еще будут какие-нибудь соображения?
← →
supersan (2003-04-21 11:50) [10]В реестре упоминание о проекте, относящееся к FormStorage, не нашел (возможно, что ошибаюсь, но ничего похожего вроде). Может, с ini файлом подскажете, как работать :-(
← →
Плохиш (2003-04-21 11:55) [11]"По слухам" очень надёжный источник. А хелп почитать, я так понимаю, религия не позволяет и в обьект-инспекторе свойства глянуть тоже?
Если б не религия, давно уже увидел свойства: IniFileName, IniSection, RegistryRoot, UseRegistry.
Про F7 аналогично: Изучайте работу Delphi. dcu с и без отладочной информацией, в частности.
← →
Валерыч (2003-04-22 03:53) [12]Попробуй варианты:
1. Открой текст проекта ( dpr) и посмотри там пути, возможно осталась ссылка на старый файл
2. Наиболее вероятно, что все из-за FormStorage. Посмотри в его натройках. Если он сохраняет все в ini файл, поищи его и убей. Он может находится в каталоге виндовки или твоей проги (рядом с exe), либо каталог может быть указан в компоненте явно. Если расширение у файла в компоненте не указано, то он и будет без расширения.
← →
les (2003-04-23 23:18) [13]Кажись знаю. Увеличь версию - там то ли в RXGrid, то и в етом Storage должно бить такое свойство - Version. Просто измени значение на большее. Сочувствую. Вот я когда то тоже с етим навозился! :)
← →
les (2003-04-23 23:20) [14]А, ну или просто убей соотв. ini-шку или почисть реєстр (ну думаю знаеш как) от етих storage"й.
← →
supersan (2003-04-24 06:23) [15]Господа, спасибо всем, кто принял участие в обсуждении.
Помогло следующее: оказывается, проект создавал ini файл в каталоге c:\winnt (у меня 2000-ая винда). Его убил - все нормально стало. (Способ подсказан Vinny-Pooh ICQ# 68224478 чуть пораньше, чем > Валерыч (22.04.03 03:53)). Теперь осталась только маааааленькая закавыка: как умудриться сделать так, чтобы ентот ini файл создавался в том же каталоге, что и exe? Простое присваивание значения TFormStorage.IniFileName = "pendpl.ini" не помогает, все равно файл оказывается в c:\winnt, а прописывание абсолютного пути по понятным причинам делать не хочется. Так бы и шут с ним, пусть создает, где хочет, но если у пользователя будут права "Пользователь" (простите за каламбур :-)), то в c:\winnt доступ будет ему запрещен... Могу попробовать присваивать это значение в процессе выполнения. Нет ли проще способа?
PS Ну нет у меня хелпа по RxLibrary!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.009 c