Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.03.2009, 22:36
qwwwq qwwwq вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 47
Репутация: 10
По умолчанию Синий экран

Заметил такую штуку, когда я из делфи работаю с ини файлами то ингода у меня вылетает синий экран смерти. Пробовал ставить разные версии Delphi7 Delphi2007 и Delphi2009 везде одна и та же ситуация. Может конечно я и ошибаюсь что это именно с ини файлами связано, но вот когда мой проект начал использовать ини файлы сразу пошли такие косяки. Так же пробовал переустанавливать винду. Посторонних компонентов не использую, может кто подскажет че делать?
Ответить с цитированием
  #2  
Старый 10.03.2009, 22:49
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Железо тестировать. В первую очередь память.
Еще попробовать отключить антивирусы. Некоторые могут нервно реагировать на определенную активность программ. Но тут скорее проблема антивируса.
А BSOD именно из под Дельфей? А если без дельфей прогу запустить?
Ответить с цитированием
  #3  
Старый 10.03.2009, 23:06
qwwwq qwwwq вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 47
Репутация: 10
По умолчанию

Синий экран возникает именно из под делфи, без делфи прога запускается нормально. Память протестировал виндосовской утилитой, ошибок нет.

Последний раз редактировалось qwwwq, 10.03.2009 в 23:42.
Ответить с цитированием
  #4  
Старый 11.03.2009, 21:19
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

2qwwwq,
ну тогда давай код в студию.
Ответить с цитированием
  #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.
Ответить с цитированием
  #6  
Старый 12.03.2009, 23:07
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

А вы не пробовали перенести запись в IniFile из FormDestroy
в FormClose ?
Ответить с цитированием
  #7  
Старый 12.03.2009, 23:48
qwwwq qwwwq вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 47
Репутация: 10
По умолчанию

по началу у меня вообще небыло по сабытию дестроя ничего и вылетал синий экран.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:42.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025