Ну вот код, скопировал проктически все с главной формы, но я параллельно веду и другой проект, там тоже самое (иногда при компилировании выдает синий экран). Может ли быть это из-за того что у меня Windows Vista x64? Одно не понятно почему иногда только выдает, т.е. я для проверки компилирую несколько раз один и тот же код и вот приблизительно 1 раз из 20 у меня синий экран. Еще думал что может быть проблема с жестким диском, проект копировал на другой раздел и даже на другой жесткий все тоже самое. Сейчас для себя решил что поставлю вмваре и на нем буду програмировать, но все таки если есть возможность кто чем может помогите!!!
Код:
unit HomBuhUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ToolWin, ActnMan, ActnCtrls, Ribbon, RibbonLunaStyleActnCtrls,
ComCtrls, O_programmeUnit, StdCtrls, ActnList, PlatformDefaultStyleActnCtrls,
Buttons, Grids, DBGrids, DataModule_Unit, Add_rasshodi_unit, Spisok_user_Unit,
add_edit_user_unit, Spisok_valjut_unit, Add_edit_valjuta_Unit,
Add_edit_schet_unit, Setting_unit, Add_edit_Dohodi_Unit, Mask, dblookup,
DBCtrls, IniFiles, DB, ADODB;
type
var
HomBuhForm: THomBuhForm;
outfile: TextFile; //FS: TFileStream;
InfoFile,InfoFile1: TSearchRec;
AttrFile, AttrFile1: Integer;
ErrorReturn, ErrorReturn1, Result: Integer;
IniFile: TIniFile;
s, Result_s1: string;
implementation
{$R *.dfm}
procedure THomBuhForm.AddUserExecute(Sender: TObject);
begin
Close;
end;
procedure THomBuhForm.bbAddObsheeClick(Sender: TObject);
begin
AttrFile := $0000003F; {Any file}
ErrorReturn := FindFirst(extractfilepath(paramstr(0))+'Log/deistvija.log', AttrFile, InfoFile);
if ErrorReturn <> 0 then
Result := -1 {в случае, если файл не найден}
else
Result := InfoFile.Size; {Размер файла в байтах}
FindClose(InfoFile);
DateTimeToString(s, 'dd/mm/yyyy hh:nn:ss.zzz', Now());
Result_s1 := s;
AssignFile(outfile, extractfilepath(paramstr(0))+'Log/deistvija.log');
if Result > 5242880 then Rewrite(outfile) else Append(outfile); //если размер файла больше заданного то то файл перезаписывается (5242880 = 5 мегобайт)
Append(outfile);
writeln(outfile, Result_s1, ' - ', 'Нажата кнопка добавить в категории "Общее" - Успешно');
CloseFile(outfile);
DataModule1.Schet_ADOTable.Insert;
Add_edit_schet_Form.ShowModal;
end;
procedure THomBuhForm.bbUpdateDohodiClick(Sender: TObject);
begin
DataModule1.Dohodii_ADOTable1.Refresh; //Обновление значений в таблице "Доходы"
end;
procedure THomBuhForm.bbUpdateObsheeClick(Sender: TObject);
var h : string;
begin
DataModule1.Schet_ADOTable.Refresh;
end;
procedure THomBuhForm.bbUpdeteRasClick(Sender: TObject);
begin
DataModule1.Rashodi_ADOTable1.Refresh;
end;
procedure THomBuhForm.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If TDBGrid(Sender).DataSource.DataSet.RecNo/2=trunc(TDBGrid(Sender).DataSource.DataSet.RecNo/2)
Then
TDBGrid(Sender).Canvas.Brush.Color := $f7f7f7
Else
TDBGrid(Sender).Canvas.Brush.Color := $e6e6e6;
TDBGrid(Sender).Canvas.Font.Color := clblack;
TDBGrid(Sender).DefaultDrawColumnCell(rect,datacol,column,state)
end;
procedure THomBuhForm.Del_dohodiClick(Sender: TObject);
Var result_dohodi_table,b,g,id_schet,r,r1 : integer;
begin
AttrFile := $0000003F; {Any file}
ErrorReturn := FindFirst(extractfilepath(paramstr(0))+'Log/deistvija.log', AttrFile, InfoFile);
if ErrorReturn <> 0 then
Result := -1 {в случае, если файл не найден}
else
Result := InfoFile.Size; {Размер файла в байтах}
FindClose(InfoFile);
DateTimeToString(s, 'dd/mm/yyyy hh:nn:ss.zzz', Now());
Result_s1 := s;
AssignFile(outfile, extractfilepath(paramstr(0))+'Log/deistvija.log');
if Result > 5242880 then Rewrite(outfile) else Append(outfile); //если размер файла больше заданного то то файл перезаписывается (5242880 = 5 мегобайт)
Append(outfile);
writeln(outfile, Result_s1, ' - ', 'Нажата кнопка Удалить в категории "Доходы" - Успешно');
CloseFile(outfile);
If Application.MessageBox(PChar('Вы действительно хотите удалить-'+
' '+DataModule1.Dohodii_ADOTable1Name.AsString),
'Внимание!!!', MB_OKCANCEL)=Id_OK then
Begin
result_dohodi_table := DataModule1.Dohodii_ADOTable1.FieldByName('Summ').AsInteger;
id_schet := DataModule1.Dohodii_ADOTable1.FieldByName('Id_schet').AsInteger;
DataModule1.Rashodi_podschet_ADOQuery.Active:= false;
DataModule1.Rashodi_podschet_ADOQuery.SQL.Clear;
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('select Dohodi, Balans ');
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('FROM [Schet]');
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('WHERE Id =' + inttostr(id_schet));
DataModule1.Rashodi_podschet_ADOQuery.Active:= true;
b := DataModule1.Rashodi_podschet_ADOQuery.Fields[0].AsInteger;
g := DataModule1.Rashodi_podschet_ADOQuery.Fields[1].AsInteger;
r := g - result_dohodi_table;
r1 := b - result_dohodi_table;
DataModule1.Rashodi_podschet_ADOQuery.Active:= false;
DataModule1.Rashodi_podschet_ADOQuery.SQL.Clear;
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('Update Schet');
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('SET Balans =' + inttostr(r));
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add(', Dohodi =' + inttostr(r1));
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('WHERE Id ='+ inttostr(id_schet));
DataModule1.Rashodi_podschet_ADOQuery.ExecSQL;
DataModule1.Dohodii_ADOTable1.Delete;
DataModule1.Dohodii_ADOTable1.Refresh;
DataModule1.Schet_ADOTable.Refresh;
End;
end;
procedure THomBuhForm.Del_rashodiClick(Sender: TObject);
Var result_rashodi_table,b,g,id_schet,r,r1 : integer;
begin
AttrFile := $0000003F; {Any file}
ErrorReturn := FindFirst(extractfilepath(paramstr(0))+'Log/deistvija.log', AttrFile, InfoFile);
if ErrorReturn <> 0 then
Result := -1 {в случае, если файл не найден}
else
Result := InfoFile.Size; {Размер файла в байтах}
FindClose(InfoFile);
DateTimeToString(s, 'dd/mm/yyyy hh:nn:ss.zzz', Now());
Result_s1 := s;
AssignFile(outfile, extractfilepath(paramstr(0))+'Log/deistvija.log');
if Result > 5242880 then Rewrite(outfile) else Append(outfile); //если размер файла больше заданного то то файл перезаписывается (5242880 = 5 мегобайт)
Append(outfile);
writeln(outfile, Result_s1, ' - ', 'Нажата кнопка Удалить в категории "Расходы" - Успешно');
CloseFile(outfile);
If Application.MessageBox(PChar('Вы действительно хотите удалить-'+
' '+DataModule1.Rashodi_ADOTable1Name.AsString),
'Внимание!!!', MB_OKCANCEL)=Id_OK then
Begin
result_rashodi_table := DataModule1.Rashodi_ADOTable1.FieldByName('Summ').AsInteger;
id_schet := DataModule1.Rashodi_ADOTable1.FieldByName('Id_schet').AsInteger;
DataModule1.Rashodi_podschet_ADOQuery.Active:= false;
DataModule1.Rashodi_podschet_ADOQuery.SQL.Clear;
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('select Rashodi, Balans ');
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('FROM [Schet]');
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('WHERE Id =' + inttostr(id_schet));
DataModule1.Rashodi_podschet_ADOQuery.Active:= true;
b := DataModule1.Rashodi_podschet_ADOQuery.Fields[0].AsInteger;
g := DataModule1.Rashodi_podschet_ADOQuery.Fields[1].AsInteger;
r := g - result_rashodi_table;
r1 := b - result_rashodi_table;
DataModule1.Rashodi_podschet_ADOQuery.Active:= false;
DataModule1.Rashodi_podschet_ADOQuery.SQL.Clear;
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('Update Schet');
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('SET Balans =' + inttostr(r));
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add(', Rashodi =' + inttostr(r1));
DataModule1.Rashodi_podschet_ADOQuery.SQL.Add('WHERE Id ='+ inttostr(id_schet));
DataModule1.Rashodi_podschet_ADOQuery.ExecSQL;
DataModule1.Rashodi_ADOTable1.Delete;
DataModule1.Rashodi_ADOTable1.Refresh;
DataModule1.Schet_ADOTable.Refresh;
End;
end;
procedure THomBuhForm.Dohodi_DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If TDBGrid(Sender).DataSource.DataSet.RecNo/2=trunc(TDBGrid(Sender).DataSource.DataSet.RecNo/2)
Then
TDBGrid(Sender).Canvas.Brush.Color := $f7f7f7
Else
TDBGrid(Sender).Canvas.Brush.Color := $e6e6e6;
TDBGrid(Sender).Canvas.Font.Color := clblack;
TDBGrid(Sender).DefaultDrawColumnCell(rect,datacol,column,state)
end;
procedure THomBuhForm.FormDestroy(Sender: TObject);
var IniFile: Tinifile;
begin
IniFile:=TiniFile.Create(extractfilepath(paramstr(0))+'setup.ini');
IniFile.WriteInteger('HomBuhForm_Form','Width',HomBuhForm.width);
IniFile.WriteInteger('HomBuhForm_Form','Height',HomBuhForm.height);
IniFile.WriteInteger('HomBuhForm_Form','X',HomBuhForm.left);
IniFile.WriteInteger('HomBuhForm_Form','Y',HomBuhForm.top);
IniFile.Free;
end;
procedure THomBuhForm.Rashodi_DBGrid2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If TDBGrid(Sender).DataSource.DataSet.RecNo/2=trunc(TDBGrid(Sender).DataSource.DataSet.RecNo/2)
Then
TDBGrid(Sender).Canvas.Brush.Color := $f7f7f7
Else
TDBGrid(Sender).Canvas.Brush.Color := $e6e6e6;
TDBGrid(Sender).Canvas.Font.Color := clblack;
TDBGrid(Sender).DefaultDrawColumnCell(rect,datacol,column,state)
end;
procedure THomBuhForm.SpisokExecute(Sender: TObject);
begin
Spisok_user_Form.ShowModal;
end;
end.
|