Ошибка read of address 00000008

Не грузится Монитор ОЗ

Mishavz
Автор темы
Mishavz
Автор темы
Репутация: 0
Сообщения: 198
Зарегистрирован: 30.10.2015
С нами: 7 лет 7 месяцев
Профессия: Инженер

Добрый день! Такая же ошибка сегодня проявилась. Орион 7.6.2, при запуске ОЗ выскакивает и наслаивается, а АБД отдельно от ОЗ работает без проблем. Тех. поддержка пока молчит. Может кто-нибудь уже знает ответ?



Mishavz
Автор темы
Mishavz
Автор темы
Репутация: 0
Сообщения: 198
Зарегистрирован: 30.10.2015
С нами: 7 лет 7 месяцев
Профессия: Инженер

Непрочитанное сообщение #3 Mishavz » 29.03.2017, 09:34

Пропадало электропитание, после включения АВР это и случилось.



Mishavz
Автор темы
Mishavz
Автор темы
Репутация: 0
Сообщения: 198
Зарегистрирован: 30.10.2015
С нами: 7 лет 7 месяцев
Профессия: Инженер

Непрочитанное сообщение #5 Mishavz » 29.03.2017, 09:44

При проверке БД подвисает не дойдя до конца проверки. Там же по-моему нет пункта «проверка БД», а есть только «Архивация», «Удаление» и еще какой-то или я что-то путаю. И в АБД то все отлично, приборы опрашиваются, все на месте или при не работающей БД такое тоже может быть?


google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 38
Репутация: 92
Сообщения: 2089
Зарегистрирован: 11.06.2015
С нами: 8 лет
Профессия: Инженер
Откуда: Sml — Msk

ICQ

Непрочитанное сообщение #6 google » 29.03.2017, 09:47

Так у вас просто Орион. Так чего вы свой вопрос засунули в эту тему?

Добавлено спустя 2 минуты 4 секунды:
Перенес в новую тему. Речь вот про такую ошибку http://forum-bolid.ru/viewtopic.php?f=6&t=631

Спойлер

Warfeer писал(а):После перехода с 1.11 на 1.12 монитор ОЗ зависает сразу после ввода пароля.
Вот что пишется в логе ошибок

Спойлер
20.03.2013 12:43:05 | Error: Ошибка приложения: Access violation at address 0075CFFF in module ‘OMonitor.exe’. Read of address 00000008
20.03.2013 12:43:05 | Error: Ошибка приложения: Access violation at address 0075CFFF in module ‘OMonitor.exe’. Read of address 00000008
20.03.2013 12:43:06 | Hint: Соединение с сервером
20.03.2013 12:43:07 | Error: Ошибка приложения: Access violation at address 00763298 in module ‘OMonitor.exe’. Read of address 00000008
20.03.2013 12:43:10 | Error: Ошибка приложения: Access violation at address 00405A90 in module ‘OMonitor.exe’. Read of address 00000004
20.03.2013 12:43:10 | Error: Ошибка приложения: Access violation at address 00763298 in module ‘OMonitor.exe’. Read of address 00000008
20.03.2013 12:45:41 | Error: Ошибка приложения: Access violation at address 00763298 in module ‘OMonitor.exe’. Read of address 00000008
20.03.2013 12:45:57 | Error: Ошибка приложения: Access violation at address 00763298 in module ‘OMonitor.exe’. Read of address 00000008
20.03.2013 12:46:49 | Error: Ошибка приложения: Access violation at address 00763298 in module ‘OMonitor.exe’. Read of address 00000008
20.03.2013 12:47:14 | Error: Ошибка приложения: Access violation at address 00763298 in module ‘OMonitor.exe’. Read of address 00000008

и так до бесконечности. Что делать? Повторная установка не дала результатов!


pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 44
Репутация: 138
Сообщения: 3281
Зарегистрирован: 11.11.2012
С нами: 10 лет 7 месяцев
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #7 pet-and » 29.03.2017, 09:52

Mishavz писал(а):При проверке БД подвисает не дойдя до конца проверки. Там же по-моему нет пункта «проверка БД»…..

Вы уж разберитесь с тем, что у вас есть, а чего нет.


Mishavz
Автор темы
Mishavz
Автор темы
Репутация: 0
Сообщения: 198
Зарегистрирован: 30.10.2015
С нами: 7 лет 7 месяцев
Профессия: Инженер

Непрочитанное сообщение #8 Mishavz » 29.03.2017, 09:55

Прошу прощения, пишу в торопях. При сохранении БД хотел написать

Добавлено спустя 2 минуты 6 секунд:

«Засунул» дабы не плодить похожих тем, а Орион старый 7.6.2, как и написано у меня вначале в описании проблемы моей.



pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 44
Репутация: 138
Сообщения: 3281
Зарегистрирован: 11.11.2012
С нами: 10 лет 7 месяцев
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #10 pet-and » 29.03.2017, 10:03

При каком сохранении БД? Что в этот момент делаете?
Выполните модернизацию БД в мастере системы.


Mishavz
Автор темы
Mishavz
Автор темы
Репутация: 0
Сообщения: 198
Зарегистрирован: 30.10.2015
С нами: 7 лет 7 месяцев
Профессия: Инженер

Непрочитанное сообщение #11 Mishavz » 29.03.2017, 10:05

Посмотрю обязательно, помимо этого что-то еще может быть? На просторах интернета пишут про «ковырянии» в реестре, вирусах, антивирусах.


pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 44
Репутация: 138
Сообщения: 3281
Зарегистрирован: 11.11.2012
С нами: 10 лет 7 месяцев
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #12 pet-and » 29.03.2017, 10:17

Mishavz писал(а):про «ковырянии» в реестре

Это точняк лишнее.


Mishavz
Автор темы
Mishavz
Автор темы
Репутация: 0
Сообщения: 198
Зарегистрирован: 30.10.2015
С нами: 7 лет 7 месяцев
Профессия: Инженер

Непрочитанное сообщение #13 Mishavz » 03.04.2017, 07:30

Привет всем! Выполнил проверку БД через мастер системы, все хорошо, но проблема не ушла. Затем ночью позвонили и сказали, что само запустилось. Причина так и не выяснена, полагаю, что если перезагрузить компьютер или отключить компьютер, то ОЗ снова не запустится.



Mishavz
Автор темы
Mishavz
Автор темы
Репутация: 0
Сообщения: 198
Зарегистрирован: 30.10.2015
С нами: 7 лет 7 месяцев
Профессия: Инженер

Непрочитанное сообщение #15 Mishavz » 03.04.2017, 11:21

Я с вами согласен полностью, ну что же осталось залезть в реестр, авось поможет.



Mishavz
Автор темы
Mishavz
Автор темы
Репутация: 0
Сообщения: 198
Зарегистрирован: 30.10.2015
С нами: 7 лет 7 месяцев
Профессия: Инженер

Непрочитанное сообщение #17 Mishavz » 03.04.2017, 12:14

На просторах интернета предлагают расширение загрузчика Windows немного поменять через файл Winlogon



pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 44
Репутация: 138
Сообщения: 3281
Зарегистрирован: 11.11.2012
С нами: 10 лет 7 месяцев
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #19 pet-and » 03.04.2017, 12:36

Может уже не стоит заморачиваться, а переустановить АРМ? Процедура несложная, только номер регистрационный надо знать, а узнать его можно в НВП, заполнив регистрационную карту и отослав ее в адрес ТП.


Mishavz
Автор темы
Mishavz
Автор темы
Репутация: 0
Сообщения: 198
Зарегистрирован: 30.10.2015
С нами: 7 лет 7 месяцев
Профессия: Инженер

Непрочитанное сообщение #20 Mishavz » 03.04.2017, 12:38

Вы как в воду глядите, к сожалению не запускается модернизация, «виснет» и все тут, а резервная копия странно сохраняется, начинает, затем подвисает, долго, долго ждешь, а потом все-таки что-то сохраняет размером около 200 мб



  • 6
    1065

    DruG
    Перейти к последнему сообщению
    17.07.2020, 07:04
  • 7
    17365

    MDoc
    Перейти к последнему сообщению
    29.12.2018, 08:28
  • 4
    1000

    Vlad_ru
    Перейти к последнему сообщению
    28.12.2020, 17:34
  • 2
    1064

    slipmann
    Перейти к последнему сообщению
    18.11.2019, 14:26
  • 1
    1081

    DruG
    Перейти к последнему сообщению
    24.12.2019, 21:03
  • 3
    1444

    DmitryK
    Перейти к последнему сообщению
    26.12.2019, 13:52
  • 4
    3164

    Dmitriy1911
    Перейти к последнему сообщению
    08.07.2018, 16:23
  • 10
    2119

    dima-r-88
    Перейти к последнему сообщению
    18.01.2020, 21:08
  • 12
    1449

    Svin
    Перейти к последнему сообщению
    15.09.2020, 08:25
  • 1
    644

    Vse
    Перейти к последнему сообщению
    08.02.2022, 15:19

Вернуться в «АРМ Орион»

This seems like the simplest thing in the world and I’m ready to pull my hair out over it.

I have a unit that looks like this ;

Unit  myUnit;
// ...
//normal declarations
//...
Public
//bunch of procedures including
Procedure myProcedure;

const
//bunch of constants

var
//bunch of vars including
myCounter:integer;

Implementation
Uses //(all my uses)

// All of my procedures including

Procedure myProcedure;
   try
     // load items from file to TListBox - this all works
   except
   on EReadError do begin
     // handle exception
     end;
   end; //try



   myCounter:=0;  //  <--  ACCESS VIOLATION HERE
   while myCounter //...etc

It’s a simple assignment of a variable and I have no idea why it is doing this. I’ve tried declaring the variable local to the unit, to the procedure, globally — no matter where I try to do it I can’t assign a value of zero to an integer, declared anywhere, within this procedure without it throwing an access violation. I’m totally stumped.

I’m calling the procedure from inside a button OnClick handler from within the same unit, but no matter where I call it from it throws the exception. The crazy thing is that I do the exact same thing in a dozen other places in units all over the program without problems. Why here? I’m at a total loss.

asked Apr 27, 2010 at 17:03

J...'s user avatar

2

Read of address 00000008 means that you’re reading a variable at an offset of 8 bytes from a nil pointer. That doesn’t fit what you’re trying to do here at all, since you’re writing, not reading, and you’re writing a constant, not a variable read from somewhere.

Are you sure that this is the actual line that’s triggering the exception? Have you put a breakpoint on this line? Have you tried moving this line to the top of the procedure?

It’s hard to be sure without your actual code in front of me, but if I had to guess, I’d say that the line before this is causing the exception, and then the instruction pointer has already incremented so Delphi highlights the next line.

answered Apr 27, 2010 at 17:36

Mason Wheeler's user avatar

Mason WheelerMason Wheeler

82.1k50 gold badges268 silver badges477 bronze badges

2

I don’t think your error means anything like what it appears to. When you get an access violation from a piece of code like this that has no sane way of producing an access violation you’re looking at trashed memory in some fashion.

Step through the offending code in the CPU window and see what’s really happening.

answered Apr 27, 2010 at 17:09

Loren Pechtel's user avatar

Loren PechtelLoren Pechtel

8,9173 gold badges33 silver badges45 bronze badges

2

You are using with statements and are looking at a different myCounter?

Some part of your code is writing in memory it shouldn’t or freeing while it shouldn’t and that by accident it results in AV’s when accessing that specific local variable?

answered Apr 27, 2010 at 17:10

Lars Truijens's user avatar

Lars TruijensLars Truijens

42.7k6 gold badges124 silver badges141 bronze badges

4

The assignment myCounter := 0 throwing an access violation suggests that either the data segment that the global vars are stored in has been removed from memory, or that the registers are hosed in your myProcedure routine.

Use the CPU view to see what registers are used to access the global var, and then work backward from there to see where that/those registers go awry.

answered Apr 27, 2010 at 17:11

dthorpe's user avatar

dthorpedthorpe

35.3k5 gold badges75 silver badges119 bronze badges

Move MyCounter up to the top of the var list, and see if it still happens. If the problem goes away, look at the vars declared above where you have it now — you may find something interesting, such as an array that is growing past its boundary.

answered Apr 27, 2010 at 17:08

Chris Thornton's user avatar

Chris ThorntonChris Thornton

15.6k5 gold badges37 silver badges62 bronze badges

3

 
ferr
 
(2004-06-15 21:25)
[0]

Когда я беру пример из книги Краснова DirectX Chap4 Ex09 его (Краснова программа на диске) откомпилированная версия работает нормально, но если я скомпилирую сам, данный проект, то при завршении он генерирует ошибку.
Может кто подскажет что делать.


 
Jel ©
 
(2004-06-15 21:52)
[1]

Телепаты нонче в отпуске. Ты бы хоть написал какую ошибку, кода кусочек привел. А так…


 
ferr
 
(2004-06-15 22:41)
[2]

Телепаты нонче в отпуске.
А жаль.
Цитирую ошибку с экрана монитора:
Access violation at adress 004068b8 in module «He.exe». Read of address 00000008.

procedure TfrmDD.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Hide
end;

procedure TfrmDD.FormDestroy(Sender: TObject);
var
 i : Integer;
begin
{OK}
 if Assigned(FDD) then begin
     if Assigned(FDDPal) then FDDPal := nil;
{OK}
     for i := 0 to NumSprites - 1 do begin
{OK - 1}
         if Assigned(spr [i].FSpriteSurface) then begin
{OK - 1}
            spr [i].FSpriteSurface._Release;
{OK - 1}
            spr [i].FSpriteSurface := nil;
{NOT}
         end;
{NOT}
     spr [i].Free;
     end;
     if Assigned(FDDSPrimary) then begin
        FDDSPrimary._Release;
        FDDSPrimary := nil;
     end;
     FDD._Release;
     FDD := nil;
 end;
end;


 
Огромное Кулясище
 
(2004-06-15 23:40)
[3]

Это если запускаешь из Delphi. Компилируй и запускай вне среды.


 
ferr
 
(2004-06-16 00:37)
[4]

Из Delphi я никогда не запуская, в 50% запусков компутер виснет напрочь, да и при чём это.


 
Огромное Кулясище
 
(2004-06-16 01:01)
[5]

Нынче совсем сейчас запускал пример (тот, что с Мона Лизой) из под Delphi, после окончания — AV вылетает. Запустил откомпиленое приложение просто из проводника — всё нормально. Дело в отладчике Delphi. Так что подумал…

В твоём случае… э, если ты дейстивтельно не запускал из под Delphi, то либо: конфликт версий Delphi, проблемы с видеокартой, покоцаный DirectX, вмешалось НЛО…


 
cyborg ©
 
(2004-06-16 09:22)
[6]

Закомментируй все строчки ._Release;
Там примеры для Дельфи5, а у тебя или шестая или седьмая.


 
ferr
 
(2004-06-16 11:52)
[7]

Закомментируй все строчки ._Release;
Там примеры для Дельфи5, а у тебя или шестая или седьмая.

Вы совершенно правы, но я не знаю что значит закомментируй.


 
cyborg ©
 
(2004-06-16 11:58)
[8]

Это значит впереди поставить //


 
ferr
 
(2004-06-16 12:01)
[9]

Может так
 TSprite = class
     FSpriteSurface    : IDirectDrawSurface7;
 ...
 TfrmDD = class(TForm)
 ...
 private
   FDD            : IDirectDraw7;
   FDDSBack       : IDirectDrawSurface7;
   FDDSPrimary    : IDirectDrawSurface7;
   FDDPal         : IDirectDrawPalette;
   ...


 
ferr
 
(2004-06-16 12:03)
[10]

const
 NumSprites     = 10;

var
 spr : Array [0..NumSprites - 1] of TSprite;


 
cyborg ©
 
(2004-06-16 12:07)
[11]


> [9] ferr   (16.06.04 12:01)

Что может так?


 
ferr
 
(2004-06-16 12:08)
[12]

Это от меня требовалось?


 
cyborg ©
 
(2004-06-16 12:27)
[13]

От тебя требуется:


procedure TfrmDD.FormDestroy(Sender: TObject);
var
i : Integer;
begin
if Assigned(FDD) then begin
    if Assigned(FDDPal) then FDDPal := nil;
    for i := 0 to NumSprites - 1 do begin
        if Assigned(spr [i].FSpriteSurface) then begin
//            spr [i].FSpriteSurface._Release;
           spr [i].FSpriteSurface := nil;
        end;
    spr [i].Free;
    end;
    if Assigned(FDDSPrimary) then begin
//        FDDSPrimary._Release;
       FDDSPrimary := nil;
    end;
//     FDD._Release;
    FDD := nil;
end;
end;


 
ferr
 
(2004-06-16 12:35)
[14]

Так я уже пытался.
Приожение подвисает и Windows заботливо хочет что-то отправить, но мы ему отказываем и тут:
Application Error
Exception EAccessViolation in module Project1.exe at 000059A4.
Access violation at address 004059A4 in module «*.exe». Read of address 00000008


 
cyborg ©
 
(2004-06-16 12:38)
[15]

Сомневаюсь я, что так ты пытался, судя по [2] ferr   (15.06.04 22:41) ошибка вываливается на релизе, закомментируй его, не будет вываливаться.


 
ferr
 
(2004-06-16 12:45)
[16]

Судя по ferr (16.06.04 12:35) [14] я не брезговал второй раз попытаться.


 
cyborg ©
 
(2004-06-16 12:58)
[17]

Ну так покажи где теперь вываливается?


 
КиТаЯц ©
 
(2004-06-16 13:09)
[18]

Да… У меня вот тоже «затыки» бывают. Ну не идет прога и все тут. Хоть че ремарь — не идет, или ввобще ничего на форме нет (это когда заремариш слишким много). Ну, думаеш, надо успокоится и с другого бока подойти. Покуриш, кофя тяпнеш, садишся за комп… А сам радостный такой — думаеш — ништяк!!! ща все получится! А прога как не шла так и не идет. Тьфу :(
А потом зову колегу, ну, типа, помогай, смотри где ошибка. Он смотрит — нет ошибки, а прога не идет. Прям рычать хочется.
И как думаете с такой ситуацией борюсь? А никак. Сидиш себе, дальше другой юнит колупаеш, и вдруг ловиш себя на мысли, что ошибки-то и нету… Куда делась? Где была? Прям, блин, полтергейс какой-то…
Занятное это дело — программирование…


 
cyborg ©
 
(2004-06-16 13:11)
[19]

Ребуилд нужно делать, тогда шайтаны убегут сверкая пятками.


 
ferr
 
(2004-06-16 13:33)
[20]

Если убрать, то код Destroy весь проскакивает потом программа чего-то ждёт в свёрнутом виде, на щелчки не отзываясь и потом…
ferr [14]


 
cyborg ©
 
(2004-06-16 13:37)
[21]

таймеры какие нибудь понавтыкал наверное?
И вообще непонятно чего там у тебя, что ты ждёшь, что тебе скажут, что ошибка в 14-ой строке?


 
ferr
 
(2004-06-16 13:53)
[22]

Вот подобрал пример, который помельче, но с той же ошибкой.
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 AppEvnts, ExtCtrls,
 DirectDraw, DDUtil;

type
 TfrmDD = class(TForm)
   ApplicationEvents1: TApplicationEvents;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure FormPaint(Sender: TObject);
   procedure ApplicationEvents1Deactivate(Sender: TObject);
   procedure FormKeyDown(Sender: TObject; var Key: Word;
     Shift: TShiftState);
   procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
   procedure ApplicationEvents1Restore(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
 private
   { Private declarations }
   FDD            : IDirectDraw7;
   FDDSBack       : IDirectDrawSurface7;
   FDDSPrimary    : IDirectDrawSurface7;
   FDDSBackGround : IDirectDrawSurface7;
   FDDSImage      : IDirectDrawSurface7;
   function RestoreAll : HRESULT;
   procedure ErrorOut(hRet : HRESULT; FuncName : String);
 public
   { Public declarations }
 protected
   procedure FormSetCursor(var aMsg : TMessage); message WM_SETCURSOR;
 end;

const
 ScreenWidth    = 640;
 ScreenHeight   = 480;
 ScreenBitDepth = 16;
 groundBmp      = «..lake.bmp»;
 imageBmp       = «..mouse.bmp»;

var
 frmDD : TfrmDD;
 mouseX : Integer = 0;
 mouseY : Integer = 0;

implementation

{$R *.DFM}

procedure TfrmDD.ErrorOut(hRet : HRESULT; FuncName : String);
var
 t : TextFile;
begin
 AssignFile (t, «Debug.txt»);
 Rewrite (t);
 WriteLn (t, FuncName + «: » + DDErrorString (hRet));
 CloseFile (t);
 Destroy;
end;

procedure TfrmDD.FormCreate(Sender: TObject);
var
 hRet : HRESULT;
 ddsd : TDDSurfaceDesc2;
 ddscaps : TDDSCaps2;
begin
 FDDSImage := nil;
 FDDSBack := nil;
 FDDSBackGround := nil;
 FDDSPrimary := nil;
 FDD := nil;

 hRet := DirectDrawCreateEx (nil, FDD, IDirectDraw7, nil);
 if Failed (hRet) then ErrorOut(hRet, «DirectDrawCreateEx»);

 hRet := FDD.SetCooperativeLevel(Handle, DDSCL_FULLSCREEN or DDSCL_EXCLUSIVE);
 if Failed (hRet) then ErrorOut(hRet, «SetCooperativeLevel»);

 hRet := FDD.SetDisplayMode (ScreenWidth, ScreenHeight, ScreenBitDepth, 0, 0);
 if Failed (hRet) then ErrorOut(hRet, «SetDisplayMode»);

 ZeroMemory (@ddsd, SizeOf(ddsd));
 with ddsd do begin
    dwSize := SizeOf(ddsd);
    dwFlags := DDSD_CAPS or DDSD_BACKBUFFERCOUNT;
    ddsCaps.dwCaps := DDSCAPS_PRIMARYSURFACE or DDSCAPS_FLIP or DDSCAPS_COMPLEX;
    dwBackBufferCount := 1;
 end;
 hRet := FDD.CreateSurface(ddsd, FDDSPrimary, nil);
 if Failed (hRet) then ErrorOut(hRet, «Create Primary Surface»);

 FDDSBackGround := DDLoadBitmap(FDD, groundBmp, ScreenWidth, ScreenHeight);
 if FDDSBackGround = nil then ErrorOut(DD_FALSE, «DDLoadBitmap»);

 ZeroMemory(@ddscaps, SizeOf(ddscaps));
 ddscaps.dwCaps := DDSCAPS_BACKBUFFER;
 hRet := FDDSPrimary.GetAttachedSurface(ddscaps, FDDSBack);
 if Failed (hRet) then ErrorOut(hRet, «GetAttachedSurface»);

 FDDSImage := DDLoadBitmap(FDD, imageBmp, 0, 0);
 if FDDSImage = nil then ErrorOut(DD_FALSE, «DDLoadBitmap»);

 hRet := DDSetColorKey (FDDSImage, RGB(0, 0, 0));
 if Failed (hRet) then ErrorOut(hRet, «DDSetColorKey»);
end;

procedure TfrmDD.FormDestroy(Sender: TObject);
begin
 if Assigned(FDD) then begin
     if Assigned(FDDSImage) then begin
//         FDDSImage._Release;
        FDDSImage := nil;
     end;
     if Assigned(FDDSBackGround) then begin
//         FDDSBackGround._Release;
        FDDSBackGround := nil;
     end;
     if Assigned(FDDSPrimary) then begin
//         FDDSPrimary._Release;
        FDDSPrimary := nil;
     end;
//      FDD._Release;
     FDD := nil;
 end;
end;

procedure TfrmDD.FormPaint(Sender: TObject);
var
 hRet : HRESULT;
begin
 while True do begin
   hRet := FDDSBack.BltFast (0, 0, FDDSBackGround, nil, DDBLTFAST_WAIT);
   if hRet = DDERR_SURFACELOST then begin
      if Failed (RestoreAll) then Exit;
   end
   else Break;
 end;

 while True do begin
   hRet := FDDSBack.BltFast (mouseX, mouseY, FDDSImage, nil,
                             DDBLTFAST_WAIT or DDBLTFAST_SRCCOLORKEY);
   if hRet = DDERR_SURFACELOST then begin
      if Failed (RestoreAll) then Exit;
   end
   else Break;
 end;

 while True do begin
   hRet := FDDSPrimary.Flip(nil, DDFLIP_WAIT);
   if hRet = DDERR_SURFACELOST then begin
      if Failed (RestoreAll) then Exit;
   end
   else Break;
 end;
end;

procedure TfrmDD.ApplicationEvents1Deactivate(Sender: TObject);
begin
 Application.Minimize;
end;

procedure TfrmDD.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if (Key = VK_ESCAPE) or (Key = VK_F12) then Close;
end;

procedure TfrmDD.FormSetCursor(var aMsg : TMessage);
begin
 SetCursor(0);
end;

procedure TfrmDD.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
 if X <= ScreenWidth — 40 then mouseX := X;
 if Y <= ScreenHeight — 40 then mouseY := Y;
 FormPaint (nil);
end;

function TfrmDD.RestoreAll : HRESULT;
var
 hRet : HResult;
begin
 hRet := FDDSPrimary._Restore;
 if Succeeded (hRet) then begin
     hRet := FDDSBackGround._Restore;
     if Failed (hRet) then begin
        Result := hRet;
        Exit;
     end;
     hRet := DDReLoadBitmap(FDDSBackGround, groundBmp);
     if Failed (hRet) then begin
        Result := hRet;
        Exit;
     end;
     hRet := FDDSImage._Restore;
     if Failed (hRet) then begin
        Result := hRet;
        Exit;
     end;
     Result := DDReLoadBitmap(FDDSImage, imageBmp);
 end
 else Result := hRet;
end;

procedure TfrmDD.ApplicationEvents1Restore(Sender: TObject);
begin
 WindowState := wsMaximized;
end;

procedure TfrmDD.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Hide
end;

end.


 
ferr
 
(2004-06-16 14:12)
[23]

Вроде вот так работает
if Assigned(FDD) then begin
    if Assigned(FDDSImage) then begin
//         FDDSImage._Release;
       Pointer(FDDSImage) := nil;
    end;
    if Assigned(FDDSBackGround) then begin
//         FDDSBackGround._Release;
       Pointer(FDDSBackGround) := nil;
    end;
    if Assigned(FDDSPrimary) then begin
//         FDDSPrimary._Release;
       Pointer(FDDSPrimary) := nil;
    end;
//      FDD._Release;
    Pointer(FDD) := nil;
end;


 
ferr
 
(2004-06-16 14:15)
[24]

Всем большое человеческое Спасибо…


Добрый день нужна помощь с программированием Арм Орион установил все как в инструкции начинаю программировать шлейфы С2000-КДЛ шлейфа все норм а те которые должны быть как реле не получается ни как подскажите что не так делаю

4 года назад

avatar

#ссылка

5 ответов

Да я это сделал на у меня при сохранении вышло вот такое сообщение ( Access violation at address 0042DA8E in module (Abd.exe).Read of address 00000009

4 года назад

avatar

#ссылка

А тогда подскажите что не так и операционкой?

4 года назад

avatar

#ссылка

Добрый день. Пожалуйста уточните вашу версию Орион ПРО.
В идеале — последние 4 цифры версии АБД из окна «О программе» или из свойств файла.

4 года назад

avatar

Комаров Александр Федорович

754

#ссылка

Сегодня попробую обновить все может исправиться

4 года назад

avatar

#ссылка

Добавить ответ

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.

Добрый день. Необходимо было обновить плагин FR_Empty.plu, для этого скопировал в LocalProtect новые файлы, зашел в ConfUtil3 и нажал сохранить. После этого при запуске любой Альфы-Авто 5 именно на этом компьютере выдается ошибка:

Access violation at address 48023EC6 in module ‘RarusEquipment.dll’. Read of address 00000008.

Попробовал переустановить EquipmentSetup, но не помогло, ошибка до сих пор. Вот ссылка на архив моей папки LocalProtect —

https://drive.google.com/open?id=1YscArSzGHHD_1E6FByCmA_ldyJ1b5bkN

.

Если попробовать открыть туже БД, но с другого компа, все работает. Как экстренно восстановить работоспособность? Спасибо.

Понравилась статья? Поделить с друзьями:
  • Ошибка read from disk utorrent
  • Ошибка r01 на котле беретта
  • Ошибка read file device error
  • Ошибка r01 на котле beretta
  • Ошибка react must be in scope when using jsx