> Pessoal; > > Vê se vcs consegue me ajudar. Tô estudando um programinha em Delphi de > cadastramento e atualização de Cd's e na elaboração do sistema, quando eu já > estava ligando a 1ª tabela deu um erro na unit principal do programa na linha > Application.Run. Tô a uma semana quebrando a cabeça e nada... > Pior que é um problema bobo, quando eu inicio o meu programa coloquei um form > fSplash (Janela About box), falando sobre o sistema, enquanto o usuário abre > o aplicativo. Alguem sabe????? > > Olá o código: > program CDDA; > > uses > Forms, > fMenu in 'fMenu.pas' {F_Menu}, > fSobre in 'fSobre.pas' {F_Sobre}, > fSplash in 'fSplash.pas' {F_Splash}, > DMModelo in 'DMModelo.pas' {DM_Modelo: TDataModule}, > fCateg in 'fCateg.pas' {F_Categ}; > > {$R *.res} > > begin > F_Splash:=TF_Splash.Create(Application); > F_Splash.Show; > F_Splash.Refresh; > Application.Initialize; > Application.Title := 'Compact Disc Digital Audio'; > Application.HelpFile := 'C:\Sistema\CadDisco\Guia.hpl'; > Application.CreateForm(TF_Menu, F_Menu); > Application.CreateForm(TF_Sobre, F_Sobre); > Application.CreateForm(TDM_Modelo, DM_Modelo); > Application.CreateForm(TF_Categ, F_Categ); > F_Splash.Free; > Application.Run; =====>>>>> O erro foi aki > end. > > Esta é o form principal > > unit fMenu; > > interface > > uses > Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, > Dialogs, Menus, ComCtrls, DB, DBTables; > > type > TF_Menu = class(TForm) > MainMenu1: TMainMenu; > Arquivo1: TMenuItem; > Consulta1: TMenuItem; > Tabela1: TMenuItem; > Cadastro1: TMenuItem; > N1: TMenuItem; > Sair1: TMenuItem; > ItemTabela1: TMenuItem; > ItemConsulta1: TMenuItem; > ItemConsulta2: TMenuItem; > Relatorio1: TMenuItem; > ItemRelatorio1: TMenuItem; > ItemRelatorio2: TMenuItem; > N2: TMenuItem; > ConfImpressora1: TMenuItem; > Auxlio1: TMenuItem; > ItemAuxilio1: TMenuItem; > Itemauxilio2: TMenuItem; > Itemauxilio3: TMenuItem; > ItemAuxilio4: TMenuItem; > LinhaStatus: TStatusBar; > DBDisco: TDatabase; > procedure FormCreate(Sender: TObject); > procedure Sair1Click(Sender: TObject); > procedure ItemAuxilio2Click(Sender: TObject); > procedure ItemAuxilio3Click(Sender: TObject); > procedure ItemAuxilio4Click(Sender: TObject); > procedure FormDestroy(Sender: TObject); > procedure ItemAuxilio1Click(Sender: TObject); > procedure ItemTabela1Click(Sender: TObject); > private > { Private declarations } > procedure ShowHint (Sender:TObject); > public > { Public declarations } > function CriticaEdicao (DSOrigem:TdataSource; DoQue, > AntesDe:String):boolean; > > end; > > var > F_Menu: TF_Menu; > > implementation > > {$R *.dfm} > > uses > fSobre,fCateg; > > function > TF_Menu.CriticaEdicao(DSOrigem:TDataSource;DoQue,AntesDe:String):boolean; > begin > if DSOrigem.State in[dsEdit,dsInsert] then > begin > MessageDlg('Cancele a Edição(ou Inserção)' + DoQue + 'antes de' + > AntesDe, mtError,[mbOk],0); > Result:=True; > end > else > Result:=False; > end; > > > procedure TF_Menu.ShowHint(Sender:TObject); > begin > LinhaStatus.Panels.Items[0].text:=Application.Hint; > end; > > > procedure TF_Menu.FormCreate(Sender: TObject); > begin > Application.OnHint:=ShowHint; > DBDisco.Connected:=True; > end; > > procedure TF_Menu.Sair1Click(Sender: TObject); > begin > Close; > end; > > procedure TF_Menu.Itemauxilio2Click(Sender: TObject); > begin > Application.HelpCommand(HELP_CONTENTS,0); > end; > > procedure TF_Menu.Itemauxilio3Click(Sender: TObject); > const > EmptyString:pChar=''; > begin > Application.HelpCommand(HELP_PARTIALKEY, LongInt(EmptyString)); > end; > > procedure TF_Menu.ItemAuxilio4Click(Sender: TObject); > begin > Application.HelpCommand(HELP_HELPONHELP,0); > end; > > procedure TF_Menu.FormDestroy(Sender: TObject); > begin > Application.HelpCommand(HELP_QUIT,0); > end; > > procedure TF_Menu.ItemAuxilio1Click(Sender: TObject); > begin > With TF_Sobre.Create(Self) do > begin > ShowModal; > Free; > end; > end; > > procedure TF_Menu.ItemTabela1Click(Sender: TObject); > begin > Screen.Cursor:=crHourglass; > F_Categ:=TF_Categ.Create(Application); > F_Categ.Inicio; > F_Categ.Free; > Screen.Cursor:=crDefault; > end; > > end. > > Este é o código referente ao BD > > unit DMModelo; > > interface > > uses > SysUtils, Windows, Classes, Graphics, Controls, > Forms, Dialogs, DB, DBTables; > > type > TDM_Modelo = class(TDataModule) > TabCategorSIG_CATEG: TStringField; > TabCategorDES_CATEG: TStringField; > DSCategor: TDataSource; > TabCategor: TTable; > TabCategorConf: TTable; > StringField1: TStringField; > StringField2: TStringField; > procedure TabCategorAfterPost(DataSet: TDataSet); > procedure TabCategorSIG_CATEGValidate(Sender: TField); > procedure TabCategorNewRecord(DataSet: TDataSet); > private > { private declarations } > public > { public declarations } > end; > > var > DM_Modelo: TDM_Modelo; > > implementation > > {$R *.DFM} > > uses > fMenu, > fCateg; > > procedure TDM_Modelo.TabCategorAfterPost(DataSet: TDataSet); > begin > if F_Menu.DBDisco.IsSqlbased then > begin > F_Menu.DBDisco.Commit; > F_Menu.DBDisco.StartTransaction; > end; > end; > > procedure TDM_Modelo.TabCategorSIG_CATEGValidate(Sender: TField); > begin > if DSCategor.State in [dsEdit,dsInsert] then > if TabCategorConf.FindKey([TabCategorSIG_CATEG]) then > begin > F_Categ.SetFocus; > raise Exception.Create('Sigla da categoria duplicado'#10 + 'Click no > botão "Localiza" em caso de dúvida'); > end; > > end; > > procedure TDM_Modelo.TabCategorNewRecord(DataSet: TDataSet); > begin > F_Categ.SetFocus; > end; > > end. > > > unit fCateg; > > interface > > uses > Windows, Messages, Classes, SysUtils, Graphics, Controls, StdCtrls, Forms, > Dialogs, DBCtrls, DB, Mask, ExtCtrls, Buttons; > > type > TF_Categ = class(TForm) > ScrollBox: TScrollBox; > Label1: TLabel; > Label2: TLabel; > DBNavigator: TDBNavigator; > Panel1: TPanel; > Panel2: TPanel; > Panel3: TPanel; > ButFechar: TBitBtn; > ButLocalizar: TBitBtn; > procedure FormClose(Sender: TObject; var Action: TCloseAction); > procedure ButLocalizarClick(Sender: TObject); > > > public > { public declarations } > procedure inicio; > end; > > var > F_Categ: TF_Categ; > > implementation > > {$R *.DFM} > > uses FMenu, > DMModelo; > > procedure TF_Categ.inicio; > begin > if F_Menu.DBDisco.IsSQLBased then > F_Menu.DBDisco.StartTransaction; > DM_Modelo.TabCategor.Open; > Screen.Cursor:=crDefault; > ShowModal; > end; > > procedure TF_Categ.FormClose(Sender:TObject; var Action: TCloseAction); > begin > if F_Menu.CriticaEdicao(DM_Modelo.DSCategor,'Categoria', 'fechar') then > begin > Action:=caNone; > Exit; > end; > Screen.Cursor:=crHourGlass; > Close; > if F_Menu.DBDisco.IsSQLBased then > F_Menu.DBDisco.Commit; > end; > > procedure TF_Categ.ButLocalizarClick(Sender:TObject); > var > ObjPesquisa:String; > begin > if F_Menu.CriticaEdicao(DM_Modelo.DSCategor,'Categoria','localizar') then > Exit; > ObjPesquisa:=DM_Modelo.TabCategorSig_Categ.Value; > if InputQuery('Entre com a sigla da Categoria', 'Sigla', ObjPesquisa) then > MessageDlg('Sigla da Categoria não encontrada.',mtInformation,[mbOK],0); > end; > > end. > > > Att. > André Ferreira > Brasilsaúde Cia de Seguros > [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html