Показать сообщение отдельно
  #5  
Старый 11.03.2009, 22:59
qwwwq qwwwq вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 47
Репутация: 10
По умолчанию

Ну вот код, скопировал проктически все с главной формы, но я параллельно веду и другой проект, там тоже самое (иногда при компилировании выдает синий экран). Может ли быть это из-за того что у меня 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.
Ответить с цитированием