Текущий архив: 2004.10.24;
Скачать: CL | DM;
ВнизНе запускается приложение Найти похожие ветки
← →
Брат (2004-10-07 12:24) [0]Может быть у кого-то было такое... Нажимаю выполнить проект и... ничего не происходит, хотя до этого все было ок. Ничего не менял в коде. Вот коды проекта и форм(вылаживаю на всякий случай все). Помогите, не пойму в чем дело.
Проект:
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.
← →
Ega23 © (2004-10-07 12:26) [1]А что F7 показывает?
← →
Amoeba © (2004-10-07 12:33) [2]Прочти вот это и сразу увидишь в ОШИБКУ В ФАЙЛЕ ПРОЕКТА.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=765
Так делать нельзя!
Application.Title := "User_F412";
← →
Брат (2004-10-07 12:36) [3]Я понял в чем дело:
я перед этим заменил строку
while not IBTableUsers.RecNo=NomDefaultUser do IBTableUsers.Next;
на строку
while not IBTableUsers.RecNo=NomDefaultUser do IBTableUsers.Next;
Казалось бы одно и то же но не работает... Не пойму все равно...
Поставил назад - все запускается:
← →
Брат (2004-10-07 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) [5]
> Я понял в чем дело:
> я перед этим заменил строку
>
> while not IBTableUsers.RecNo=NomDefaultUser do IBTableUsers.Next;
>
> на строку
>
> while not IBTableUsers.RecNo=NomDefaultUser do IBTableUsers.Next;
>
> Казалось бы одно и то же но не работает... Не пойму все
> равно...
- Видишь суслика?
- Нет.
- И я не вижу. А он есть.
(c) Дмб
← →
Брат (2004-10-07 12:44) [6]
> 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:46) [7]Это не одно и то же.
Вот
while not (IBTableUsers.RecNo=NomDefaultUser) do IBTableUsers.Next
и
while IBTableUsers.RecNo<>NomDefaultUser do IBTableUsers.Next
это одно и тоже.
← →
Брат (2004-10-07 12:58) [8]ясно
спасибо :)
← →
KSergey © (2004-10-07 13:21) [9]> [4] Брат (07.10.04 12:38)
Зацикливание и не работа - разные вещи, вообще-то.. Может это тот случай?
Страницы: 1 вся ветка
Текущий архив: 2004.10.24;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.049 c