>>Статическая проверка типа значения, присваиваемого элементу коллекции
Это конечно да, только для классов не так уж и нужно. ИМХО
			
		Модератор: Модераторы
zub писал(а):А вот гадать ассигн это или не ассигн не остается...
 - заменил его на отрисовку и всё равно вылетает, значит увы не assign
 - заменил его на отрисовку и всё равно вылетает, значит увы не assign   
   
   .
 .  но не бородатое.
  но не бородатое.  никому не рассказывайте!
 никому не рассказывайте!   
 
zub писал(а):Это как подорожник подкладывать под йодную сетку при открытом переломе))
Хорошо что у тебя хобби - паскаль, а не медицина...


MysticCoder писал(а):давай весь код, хорош в экстрасенсов играть
procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: boolean);
var MR : TModalResult;
begin
  boModify := false; // блокирует появление диалога и тогда всё работает без сбоя. 
  try
    if boModify then begin
      MR := QuestionDlg('Вопрос', 'Сохранить изменения в проекте '+OpenDialog1.FileName+'?'+#13, mtConfirmation, [mrOK, 'Да', mrNo,'Нет', mrCancel,'Отмена'], 0);
      case MR of
        mrOK: if OpenDialog1.FileName <> ''
                then actSaveExecute(Self)
                else actSaveAsXMLExecute(Self);
        mrNo: CanClose := true;
        mrCancel: CanClose := false;
      end;
    end;
  except
    on e:exception do ShowMessage('Сбой при закрытии программы: '+#13+e.Message);
  end;
end;   

MysticCoder писал(а):весь код юнита. ты где то портишь память, и явно не в этих огрызках кода, что выдаешь.
zub писал(а):actSaveExecute или actSaveAsXMLExecute
procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: boolean);
var MR : TModalResult;
begin
  // boModify := false;
  try
    if boModify then begin
      MR := QuestionDlg('Вопрос', 'Сохранить изменения в проекте '+OpenDialog1.FileName+'?'+#13, mtConfirmation, [mrOK, 'Да', mrNo,'Нет', mrCancel,'Отмена'], 0);
      case MR of
        mrOK: CanClose := true; //if OpenDialog1.FileName <> ''
                // then CanClose := true  // actSaveExecute(Self)
                // else CanClose := true; // actSaveAsXMLExecute(Self);
        mrNo: CanClose := true;
        mrCancel: CanClose := false;
      end;
    end;
  except
    on e:exception do ShowMessage('Сбой при закрытии программы: '+#13+e.Message);
  end;
end;  
zub писал(а):Нужно учится отлаживать свои программы а не морочить людям головы

zub писал(а):>>Дело не в памяти, а в этом TModalResult ...
Нда..
procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: boolean);
//var MR : TModalResult;
begin
  // boModify := false;
  try
    if boModify then begin
      //MR := ;
      case QuestionDlg('Вопрос', 'Сохранить изменения в проекте '+OpenDialog1.FileName+'?'+#13, mtConfirmation, [mrOK, 'Да', mrNo,'Нет', mrCancel,'Отмена'], 0) of
        mrOK: if OpenDialog1.FileName <> ''
                then  actSaveExecute(Self)
                else   actSaveAsXMLExecute(Self);
        mrNo: CanClose := true;
        mrCancel: CanClose := false;
      end;
    end;
  except
    on e:exception do ShowMessage('Сбой при закрытии программы: '+#13+e.Message);
  end;
end;     

vitaly_l писал(а):Дело не в битмапах, а в MR : TModalResult;
MysticCoder писал(а):Вангую, что проблема вернется чуть позже
vitaly_l писал(а):Нашёл, ещё одну странную зависимость...
MysticCoder писал(а):вот этих странных зависимостей еще кучу найдешь, пока корень проблемы не найдешь. т.к. при порче памяти в одном положении системы все работает, а при любом чихе все катится к чертям.
 
   Как обнаружить порчу памяти???
  Как обнаружить порчу памяти??? 
Вернуться в Обучение Free Pascal
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1