Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2014, 12:40   #141
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
Пример с Формбаром
Неуловимые мной ошибки при повторном открытии форм.
Посмотрите.
Попробуйте использовать отладчик при возникновении ошибки.
Вот видео отладки по вашему примеру:
http://youtu.be/nVMvF2ldfz0
В коде ставим точку останова F5
Программа встанет, когда дойдет до этой точки, далее выполняем по шагам F8 и смотрим где вылезет ошибка (F9 - продолжить выполнение программы).

Вот исправленный пример:
http://visual-t.ru/files/Dog1412.zip

Ошибки:
После уничтожения формы, переменная, которая хранит ссылку на неё, не обнулялась, поэтому, при повторном создании формы, программа считала, раз переменная не nil, то форма создана и пыталась активировать несуществующую форму. Смотрите в исправленном варианте, у ваших форм обработчик события OnDestroy.

Последний раз редактировалось Rik; 09.12.2014 в 15:58.
Rik вне форума Ответить с цитированием
Старый 10.12.2014, 09:39   #142
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Идем дальше.
Работаем с DAta модулем.
Если компонент xDbf расположен на главном модуле - подключение есть, в Дата модуле - нет.

https://cloud.mail.ru/public/1ddcd8e...Ray_141210.zip
vladrvv вне форума Ответить с цитированием
Старый 10.12.2014, 10:01   #143
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
Идем дальше.
Работаем с DAta модулем.
Если компонент xDbf расположен на главном модуле - подключение есть, в Дата модуле - нет.

https://cloud.mail.ru/public/1ddcd8e...Ray_141210.zip
Объекты в программе сами не создаются, код создания нужно прописывать. У вас модуль данных ни где не создается. Пропишите в главном модуле, перед созданием главной формы:
DM = TDM.Create(Application);
Всё заработает.
Код:
program NewProject;

uses Main, Unit1;

begin
  DM = TDM.Create(Application);
  MainForm = TMainForm.Create(Application);
end.
Rik вне форума Ответить с цитированием
Старый 12.12.2014, 17:15   #144
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Новые ошибки при работе с Дата модулем
https://cloud.mail.ru/public/b0779b029ff3/FormsB.zip
При подключении таблицы
Цитата:
Access violation
vladrvv вне форума Ответить с цитированием
Старый 12.12.2014, 18:17   #145
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
Новые ошибки при работе с Дата модулем
https://cloud.mail.ru/public/b0779b029ff3/FormsB.zip
При подключении таблицы
Обратите внимание на такой момент

1. В главном модуле есть строка
DM = TDM.Create(Application);
Здесь переменная DM буде инициализирована, когда отработатет конструктор создания формы.

2. Во время создания формы
Код:
method TDM.DataModuleCreate(Sender: TObject);
begin
    DM.xDbf1.filePath=ConfigPath+ DirectorySeparator;
    DBFGlobals.DefaultOpenCodePage = 866;
    DM.xDbf1.Active=true;
end;
Вы обращаетесь к пременной DM, которая ещё не инициализирована, значение в ней появится когда конструктор вместе с method TDM.DataModuleCreate(Sender: TObject) отработают, т.е. в строках DM.xDbf1.filePath и DM.xDbf1.Active вы обращаетесь в пустоту.

Здесь правильно будет либо совсем убрать обращение DM. в TDM.DataModuleCreate
Код:
method TDM.DataModuleCreate(Sender: TObject);
begin
    xDbf1.filePath=ConfigPath+ DirectorySeparator;
    DBFGlobals.DefaultOpenCodePage = 866;
    xDbf1.Active=true;
end;
либо используйте self - это встроенная переменная, которая хранит указатель на текущий экземпляр класса

Код:
method TDM.DataModuleCreate(Sender: TObject);
begin
    Self.xDbf1.filePath=ConfigPath+ DirectorySeparator;
    DBFGlobals.DefaultOpenCodePage = 866;
    Self.xDbf1.Active=true;
end;

Последний раз редактировалось Rik; 12.12.2014 в 18:31.
Rik вне форума Ответить с цитированием
Старый 16.12.2014, 08:50   #146
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Формирование отчетов
в оффисных программах с использованием rtf шаблонов.
https://cloud.mail.ru/public/791658c7d0da/reportf.zip
Давно пользуюсь. В делфи 7 код вставляется без проблем.
Посмотрите, может удастся и в Дизель импортировать
vladrvv вне форума Ответить с цитированием
Старый 16.12.2014, 09:19   #147
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Точнее, не импортировать, а "причесать", чтобы с Дизелем работал.
vladrvv вне форума Ответить с цитированием
Старый 16.12.2014, 11:17   #148
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

xDBGrid.
У некоторых Гридов есть такое понятие "замороженные" колонки - FrozenCols (у DbGredEh). Т.е. при горизонтальном прокручивании остаются всегда видны слева.
У xDBGrid есть что-нибудь подобное ?
vladrvv вне форума Ответить с цитированием
Старый 16.12.2014, 11:40   #149
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
xDBGrid.
У некоторых Гридов есть такое понятие "замороженные" колонки - FrozenCols (у DbGredEh). Т.е. при горизонтальном прокручивании остаются всегда видны слева.
У xDBGrid есть что-нибудь подобное ?
посмотрите свойство FixedCols - количество фиксированных колонок слева. Я правда им не пользовался, я делал грид так, что-бы его не нужно было прокручивать совсем, за счет расположения 2х полей в одном столбце...
Rik вне форума Ответить с цитированием
Старый 16.12.2014, 11:45   #150
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
Точнее, не импортировать, а "причесать", чтобы с Дизелем работал.
Надо смотреть, чего-то он в лазарусе с ходу не завелся, да и принцип работы нало понять, если в кросс-платформенном варианте не заведется, придется искать замену. Есть компоненты под лазарус, которые работают с файлами OpenOffice, в крайнем случае можно их попробовать...
Rik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что же я написал? Sibedir Свободное общение 26 04.10.2010 05:01
Я написал текстовую игру... saggy Софт 11 05.06.2010 22:32
Написал редактор карт sasha1993 Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 18.07.2009 21:31
Написал прогу в паскале... deu4er Помощь студентам 2 19.11.2008 20:08
Написал бэкдор, оцените KORN Софт 7 18.11.2007 08:55