![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не запускается приложение [D6, Win2k]
Брат © (2004-10-07 12:24:00)Может быть у кого-то было такое... Нажимаю выполнить проект и... ничего не происходит, хотя до этого все было ок. Ничего не менял в коде. Вот коды проекта и форм(вылаживаю на всякий случай все). Помогите, не пойму в чем дело.
Проект:
program F412_User;
uses
Forms,
untMain in 'untMain.pas' {frmMain},
untOptions in 'untOptions.pas' {frmOptions},
untQueryPassword in 'untQueryPassword.pas' {frmQueryPassword};
{$R *.res}
begin
Application.Initialize;
Application.Title := 'User_F412';
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TfrmOptions, frmOptions);
Application.CreateForm(TfrmQueryPassword, frmQueryPassword);
Application.Run;
end.
Главная форма:
unit untMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGridEh, ExtCtrls, RXCtrls, StdCtrls, Buttons, DB,
IBCustomDataSet, IBTable, IBDatabase;
type
TfrmMain = class(TForm)
Panel1: TPanel;
DBGridTables: TDBGridEh;
btnOpenTable: TBitBtn;
btnCreateTable: TBitBtn;
btnEditTable: TBitBtn;
btnDeleteTable: TBitBtn;
btnDovidniki: TBitBtn;
RxLabel1: TRxLabel;
RxLabel2: TRxLabel;
RxLabel3: TRxLabel;
btnForms412: TBitBtn;
Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel;
btnExit: TBitBtn;
Bevel4: TBevel;
btnOptions: TBitBtn;
IBDatabase: TIBDatabase;
IBTableTables: TIBTable;
IBTransaction: TIBTransaction;
DataSource1: TDataSource;
procedure btnExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnOptionsClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
uses untQueryPassword, untOptions;
{$R *.dfm}
procedure TfrmMain.btnExitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmMain.FormShow(Sender: TObject);
begin
frmQueryPassword.ShowModal;
end;
procedure TfrmMain.btnOptionsClick(Sender: TObject);
begin
frmOptions.ShowModal;
end;
end.
frmQueryPassword:
unit untQueryPassword;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, RXCtrls, Buttons, DB, IBCustomDataSet, IBTable, IniFiles;
type
TfrmQueryPassword = class(TForm)
GroupBox1: TGroupBox;
RxLabel1: TRxLabel;
RxLabel2: TRxLabel;
cbUserName: TComboBox;
edtUserPassword: TEdit;
CheckBox1: TCheckBox;
btnOK: TBitBtn;
btnCancel: TBitBtn;
IBTableUsers: TIBTable;
procedure btnCancelClick(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure cbUserNameChange(Sender: TObject);
private
{ Private declarations }
procedure WriteToIniDefaultUser;
public
{ Public declarations }
end;
var
frmQueryPassword: TfrmQueryPassword;
LinkError : Boolean;
DefaultUser : String[30];
NomDefaultUser : Integer;
implementation
uses untMain, untOptions;
{$R *.dfm}
procedure TfrmQueryPassword.btnCancelClick(Sender: TObject);
begin
//
frmMain.Close;
end;
procedure TfrmQueryPassword.WriteToIniDefaultUser;
var ConfigDB : TIniFile;
begin
//
if CheckBox1.Checked then
DefaultUser:=cbUserName.Items[cbUsername.ItemIndex]
else
DefaultUser:='';
//
ConfigDB:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Config_u.ini');
ConfigDB.WriteString('GENERAL','DefaultUser',DefaultUser);
ConfigDB.Free;
end;
procedure TfrmQueryPassword.btnOKClick(Sender: TObject);
begin
//
if edtUserPassword.Text=Trim(IBTableUsers.FieldByName('USER_PASSWORD').AsString) then
begin
//
Close;
end
else
begin
MessageDlg('Неверный пароль!',mtError,[mbOK],0);
edtUserPassword.Text:='';
edtUserPassword.SetFocus;
end;
end;
procedure TfrmQueryPassword.FormActivate(Sender: TObject);
begin
//
edtUserPassword.SetFocus;
end;
procedure TfrmQueryPassword.FormCreate(Sender: TObject);
var i : Integer;
ConfigDB : TIniFile;
begin
//
ConfigDB:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Config_u.ini');
DefaultUser:=ConfigDB.ReadString('GENERAL','DefaultUser','');
ConfigDB.Free;
//
if DefaultUser<>'' then CheckBox1.Checked:=True;
//
frmMain.IBDatabase.Connected:=False;
frmMain.IBDatabase.DatabaseName:=frmOptions.edtDBPath.Text;
frmMain.IBDatabase.Params.Add(frmOptions.edtDBName.Text);
frmMain.IBDatabase.Params.Add(frmOptions.edtDBPassword.Text);
try
//
frmMain.IBDatabase.Connected:=True;
LinkError:=False;
except
if MessageDlg('Ошибка подключения к базе.'+#13#10+
'Открыть окно настроек?',
mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
//
LinkError:=True;
frmOptions.ShowModal;
end
else
begin
//
frmMain.Close;
end;
end;
//
IBTableUsers.Active:=True;
//
IBTableUsers.FetchAll;
IBTableUsers.First;
for i:=1 to IBTableUsers.RecordCount do
begin
cbUserName.Items.Add(Trim(IBTableUsers.FieldByName('USER_NAME').AsString));
if Trim(IBTableUsers.FieldByName('USER_NAME').AsString)=DefaultUser then
cbUserName.ItemIndex:=IBTableUsers.RecNo-1;
IBTableUsers.Next;
end;
//
IBTableUsers.FetchAll;
IBTableUsers.First;
NomDefaultUser:=0;
for i:=1 to IBTableUsers.RecordCount do
begin
if IBTableUsers.FieldByName('USER_NAME').AsString=DefaultUser then
begin
cbUserName.ItemIndex:=IBTableUsers.RecNo-1;
NomDefaultUser:=IBTableUsers.RecNo;
end;
IBTableUsers.Next;
end;
//
IBTableUsers.First;
while IBTableUsers.RecNo<>NomDefaultUser do IBTableUsers.Next;
end;
procedure TfrmQueryPassword.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
WriteToIniDefaultUser;
end;
end.
KSergey (2004-10-07 13:21:00) [1]> [4] Брат (07.10.04 12:38)
Зацикливание и не работа - разные вещи, вообще-то.. Может это тот случай?
Брат (2004-10-07 12:58:00) [2]ясно
спасибо :)
Gero (2004-10-07 12:46:00) [3]Это не одно и то же.
Вот
while not (IBTableUsers.RecNo=NomDefaultUser )do IBTableUsers.Next
и
while IBTableUsers.RecNo<>NomDefaultUser do IBTableUsers.Next
это одно и тоже.
Брат (2004-10-07 12:44:00) [4]
> Gero © (07.10.04 12:40) [5]
смотри сюда:
Брат (07.10.04 12:38) [4]
> Брат (07.10.04 12:36) [3]
Здесь ошибка читать так:
я перед этим заменил строку
while not IBTableUsers.RecNo=NomDefaultUser do IBTableUsers.Next;
на строку
while IBTableUsers.RecNo<>NomDefaultUser do IBTableUsers.Next;
Казалось бы одно и то же но не работает... Не пойму все равно...
Поставил назад - все запускается:
;)
Gero (2004-10-07 12:40:00) [5]
> Я понял в чем дело:
> я перед этим заменил строку
>
> while not IBTableUsers.RecNo=NomDefaultUser do IBTableUsers.Next;
>
> на строку
>
> while not IBTableUsers.RecNo=NomDefaultUser do IBTableUsers.Next;
>
> Казалось бы одно и то же но не работает... Не пойму все
> равно...
- Видишь суслика?
- Нет.
- И я не вижу. А он есть.
(c) Дмб
Брат (2004-10-07 12:38:00) [6]
> Брат (07.10.04 12:36) [3]
Здесь ошибка читать так:
я перед этим заменил строку
while not IBTableUsers.RecNo=NomDefaultUser do IBTableUsers.Next;
на строку
while IBTableUsers.RecNo<>NomDefaultUser do IBTableUsers.Next;
Казалось бы одно и то же но не работает... Не пойму все равно...
Поставил назад - все запускается:
Брат (2004-10-07 12:36:00) [7]Я понял в чем дело:
я перед этим заменил строку
while not IBTableUsers.RecNo=NomDefaultUser do IBTableUsers.Next;
на строку
while not IBTableUsers.RecNo=NomDefaultUser do IBTableUsers.Next;
Казалось бы одно и то же но не работает... Не пойму все равно...
Поставил назад - все запускается:
Amoeba (2004-10-07 12:33:00) [8]Прочти вот это и сразу увидишь в ОШИБКУ В ФАЙЛЕ ПРОЕКТА.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=765
Так делать нельзя!
Application.Title := 'User_F412';
Ega23 (2004-10-07 12:26:00) [9]А что F7 показывает?