Форум: "Начинающим";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
ВнизTFrame: класс TDATETIMEFIELD не найден Найти похожие ветки
← →
Rav (2006-07-23 23:03) [0]Доброго времени суток!
Раньше фреймы не использовал, но надоело повторять меню, кнопки, фильтры на каждой форме. Короче приспичило подвести фреймы под это дело. Сделал TFrame, на котором TAdoQuery, DbGrid... ну и там всего по мелочи. Все настроил, вроде бы ок. Кидаю этот фрейм на форму. Добавляю поля и текст запроса в TAdoQuery, столбцы в DbGrid. Запускаю - и получаю ошибку "Класс TDATETIMEFIELD не найден". Я так понимаю, ругается как раз фрейм, ясно дело, там такого поля еще и нет, я его в форме определил. Но как теперь выкрутится?
Вдогонку еще вопрос: можно ли на фрейм в форме накидать компонентов? (конкретно: если я в фрейме поместил панель, на которой показываются данные из таблицы - TDbText, но поскольку таблицы бывают разные, хотелось бы в форме на эту панель (которая включена во фрейм) накидать этих самых TDbText).
← →
DrPass © (2006-07-23 23:14) [1]думаю, не хватает
uses DB в модуле с фреймом
← →
jack128 © (2006-07-23 23:15) [2]Rav (23.07.06 23:03)
Раньше фреймы не использовал, но надоело повторять меню, кнопки, фильтры на каждой форме. Короче приспичило подвести фреймы под это дело. Сделал TFrame, на котором TAdoQuery, DbGrid... ну и там всего по мелочи. Все настроил, вроде бы ок. Кидаю этот фрейм на форму. Добавляю поля и текст запроса в TAdoQuery, столбцы в DbGrid. Запускаю - и получаю ошибку "Класс TDATETIMEFIELD не найден". Я так понимаю, ругается как раз фрейм, ясно дело, там такого поля еще и нет, я его в форме определил. Но как теперь выкрутится?
кидай минимально возможные сорцы, которые воспроизводят глюк.
Rav (23.07.06 23:03)
Вдогонку еще вопрос: можно ли на фрейм в форме накидать компонентов?
можно.
← →
Rav (2006-07-23 23:23) [3]
> DrPass
> думаю, не хватает
> uses DB в модуле с фреймом
Есть он там - unit DbGridFrame;
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ToolWin, ComCtrls, Grids, DBGrids, DBCtrls, RXDBCtrl, ActnList, Menus, Db, ADODB,
RavDbCustom, RavDbGridTuner, RavDbFind, RavDbOrder, RavDbFilter, DBActns,
RavDbColorGrid;
← →
Rav (2006-07-23 23:36) [4]В
> кидай минимально возможные сорцы, которые воспроизводят
> глюк.
Иерархия такова: FrameDbGrid - TADOQuery + TDataSource + TDbGrid (+ мои компоненты: фильтр, сортировка, поиск, настройка полей). Его вставляю в FrameTable - Там все это "обвязываю" меню, панелью TToolBar, TStatusBar, а также добавляю TPanel для вывода детализированных сведений записи. FrameTable уже вставляю в форму TFormChFio и определяю поля. (В FrameDbGrid TAdoQuery "девственно чист" - полей в нем нет).
При попытке создать экземпляр формы - ошибка (метод OnCreate формы даже не вызывается, значит глюк где-то на уровне HistViewer := TFormChFio.Create(Application.MainForm);).
> можно.
не получается :-( вставляемые компоненты "проваливаются" на форму, за TFrame, соответственно за панель. Как воткнуть в фреймовую панель - пока не понимаю...
Вот как опеделен "первичный" фрейм:
TFrameDbGrid = class(TFrame)
ActionList: TActionList;
DbGridPopupMenu: TPopupMenu;
Query: TADOQuery;
DataSource: TDataSource;
DbGrid: TRDbStyledGrid;
RDbFilter: TRDbFilter;
RDbOrder: TRDbOrder;
RDbFind: TRDbFind;
RDbGridTuner: TRDbGridTuner;
DataSetFirst: TDataSetFirst;
DataSetLast: TDataSetLast;
DataSetNext: TDataSetNext;
DataSetPrior: TDataSetPrior;
itemDataSetFirstP: TMenuItem;
itemDataSetPriorP: TMenuItem;
itemDataSetNextP: TMenuItem;
itemDataSetLastP: TMenuItem;
FindRecord: TAction;
FilterUser: TAction;
FilterDefault: TAction;
FilterClear: TAction;
SortUser: TAction;
SortDefault: TAction;
ColumnsUser: TAction;
ColumnsDefault: TAction;
menuDataP: TMenuItem;
itemFindRecordP: TMenuItem;
itemFilterUserP: TMenuItem;
itemFilterDefaultP: TMenuItem;
itemFilterClearP: TMenuItem;
itemSortUserP: TMenuItem;
itemSortDefaultP: TMenuItem;
itemColumnsUserP: TMenuItem;
itemColumnsDefaultP: TMenuItem;
divN1: TMenuItem;
divN2: TMenuItem;
divN3: TMenuItem;
divN4: TMenuItem;
divN5: TMenuItem;
divN6: TMenuItem;
InsertRecord: TAction;
EditRecord: TAction;
DeleteRecord: TAction;
itemInsertRecordP: TMenuItem;
itemEditRecordP: TMenuItem;
itemDeleteRecordP: TMenuItem;
ExportExcel: TAction;
menuReportsP: TMenuItem;
itemExportExcelP: TMenuItem;
DataSetRefresh: TAction;
itemDataSetRefreshP: TMenuItem;
procedure PostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
procedure DeleteError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
procedure InsertRecordUpdate(Sender: TObject);
procedure InsertRecordExecute(Sender: TObject);
procedure EditRecordUpdate(Sender: TObject);
procedure EditRecordExecute(Sender: TObject);
procedure DeleteRecordUpdate(Sender: TObject);
procedure DeleteRecordExecute(Sender: TObject);
procedure ExportExcelUpdate(Sender: TObject);
procedure ExportExcelExecute(Sender: TObject);
procedure InterlalOnChange(DataSet: TDataSet);
procedure FindRecordUpdate(Sender: TObject);
procedure FindRecordExecute(Sender: TObject);
procedure FilterUserUpdate(Sender: TObject);
procedure FilterUserExecute(Sender: TObject);
procedure FilterDefaultUpdate(Sender: TObject);
procedure FilterDefaultExecute(Sender: TObject);
procedure FilterClearUpdate(Sender: TObject);
procedure FilterClearExecute(Sender: TObject);
procedure SortUserUpdate(Sender: TObject);
procedure SortUserExecute(Sender: TObject);
procedure SortDefaultUpdate(Sender: TObject);
procedure SortDefaultExecute(Sender: TObject);
procedure ColumnsUserUpdate(Sender: TObject);
procedure ColumnsUserExecute(Sender: TObject);
procedure ColumnsDefaultUpdate(Sender: TObject);
procedure ColumnsDefaultExecute(Sender: TObject);
procedure DataSetRefreshUpdate(Sender: TObject);
procedure DataSetRefreshExecute(Sender: TObject);
private
FFlagEdit: Boolean;
FSelectQuery: string;
FBaseFilter: string;
FOnDataChange: TNotifyEvent;
FOnDataEdit: TDataSetShowEditorNotifyEvent;
FOnBeforeInsert: TDataSetNotifyEvent;
FOnBeforeEdit: TDataSetNotifyEvent;
FOnBeforeDelete: TDataSetNotifyEvent;
FOnAfterInsert: TDataSetNotifyEvent;
FOnAfterEdit: TDataSetNotifyEvent;
FOnAfterDelete: TDataSetNotifyEvent;
FOnBeforeInsertPost: TDataSetNotifyEvent;
FOnBeforeEditPost: TDataSetNotifyEvent;
FOnAfterInsertPost: TDataSetNotifyEvent;
FOnAfterEditPost: TDataSetNotifyEvent;
FOnExportExcel: TDataSetNotifyEvent;
procedure InitEvents;
public
procedure InitFrame(const AEditEnable: Boolean);
procedure DoneFrame;
procedure LoadTable(const SelectQuery, BaseFilter: string);
procedure ReloadTable;
function ShowRecordEditor: Boolean;
function GetTableInfo: string;
published
property EditEnable: Boolean read FFlagEdit write FFlagEdit default False;
property OnDataChange: TNotifyEvent read FOnDataChange write FOnDataChange;
property OnDataEdit: TDataSetShowEditorNotifyEvent read FOnDataEdit write FOnDataEdit;
property OnBeforeInsert: TDataSetNotifyEvent read FOnBeforeInsert write FOnBeforeInsert;
property OnBeforeEdit: TDataSetNotifyEvent read FOnBeforeEdit write FOnBeforeEdit;
property OnBeforeDelete: TDataSetNotifyEvent read FOnBeforeDelete write FOnBeforeDelete;
property OnAfterInsert: TDataSetNotifyEvent read FOnAfterInsert write FOnAfterInsert;
property OnAfterEdit: TDataSetNotifyEvent read FOnAfterEdit write FOnAfterEdit;
property OnAfterDelete: TDataSetNotifyEvent read FOnAfterDelete write FOnAfterDelete;
property OnBeforeInsertPost: TDataSetNotifyEvent read FOnBeforeInsertPost write FOnBeforeInsertPost;
property OnBeforeEditPost: TDataSetNotifyEvent read FOnBeforeEditPost write FOnBeforeEditPost;
property OnAfterInsertPost: TDataSetNotifyEvent read FOnAfterInsertPost write FOnAfterInsertPost;
property OnAfterEditPost: TDataSetNotifyEvent read FOnAfterEditPost write FOnAfterEditPost;
property OnExportExcel: TDataSetNotifyEvent read FOnExportExcel write FOnExportExcel;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.064 c