Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Люди, помогите отладить «List out of bounds» :)


Страницы:   1 2

Kolan ©   (2007-03-21 09:38:00) 

четвёртый день длблюсь :(
Если не включать отладочную информацию, то при исключении вообще код не показывает…
Если включить, то показвывает этот код:

procedure TWinControl.PaintHandler(var Message: TWMPaint);
var
 I, Clip, SaveIndex: Integer;
 DC: HDC;
 PS: TPaintStruct;
begin
 DC := Message.DC;
 if DC = 0 then DC := BeginPaint(Handle, PS);
 try
    if FControls = nil then PaintWindow(DC) else
   begin
     SaveIndex := SaveDC(DC);
     try
       Clip := SimpleRegion;
       for I := 0 to FControls.Count — 1 do
         with TControl(FControls[I]) do
           if (Visible and (not (csDesigning in ComponentState) or not (csDesignerHide in ControlState)) or
             ((csDesigning in ComponentState) and not (csDesignerHide in ControlState)) and
             not (csNoDesignVisible in ControlStyle)) and
             (csOpaque in ControlStyle) then
           begin
             Clip := ExcludeClipRect(DC, Left, Top, Left + Width, Top + Height);
             if Clip = NullRegion then Break;
           end;
       if Clip NullRegion then PaintWindow(DC);
     finally
       RestoreDC(DC, SaveIndex);
     end;
   end;
   PaintControls(DC, nil);
 finally
   if Message.DC = 0 then EndPaint(Handle, PS);
 end;
end;


Выделеная строка — на ней исключение…

Я нашел участок кода, комментирование которого устраняет исключеие
Этот участок связан с рисованием графика на Чарте…


Kolan   (2007-03-21 09:45:00) [21]

> Ну и…? Где этот участок-то?

procedure TMeasurmentGraph.Draw(Measurment: TMeasurment);
var
 X, Y: TParam;
begin
 // DONE: Сделать резонанс и антирез в TMeasurment. Сечас он nil.
 with Measurment.ElementCharacteristicSet do
 begin
   BeginUpdate;
   try
       FRealPart.LineGraph.Draw(RealConductivity);
       FImaginativePart.LineGraph.Draw(ImaginativeConductivity);
       FModule.LineGraph.Draw(ConductivityModule);
   finally
     EndUpdate;
   end;
 end;    
 FRealPart.ResonanceGraph.Clear;
 if Measurment.ParamsList nil then
   with Measurment.ParamsList do
   begin
     if Count 0 then
     begin
       X := Names[rsValuesResX];
       Y := Names[rsValuesResY];
       if (X nil) and (Y nil) then
         FRealPart.ResonanceGraph.AddXY(X.Value, Y.Value);
     end;
   end;
end;

Вот он :)

procedure TSerieGraph.Draw(Arr: TDoublePointArray);
var
 I: Integer;
begin
 //FSerie.BeginUpdate;
 try
   Clear;
   for I := Low(Arr) to High(Arr) do
   begin
     AddXY(Arr[I].X, Arr[I].Y*1000);
     //Sleep(10);
   end;
 finally
   //FSerie.EndUpdate;
 end;        
end;


Если что еще надо выложу ессно…


Ega23   (2007-03-21 09:44:00) [22]

Ну и...? Где этот участок-то?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо