Formulae: array [1..6] of TJPEGImage;
이미지를 양식에 표시 할 수 있도록 이미지를 할당하려는 배열이 있습니다. JPEG 데이터 스트림에서 TImage 질문에 유사한 코드를 사용 했지만 if 문에서 액세스 위반 오류 메시지가 나타납니다.
procedure Tfrm_calc2.ChangeDisplay(ImgNo: Integer; NewImage: Boolean);
var
TempImg: TJPEGImage;
begin
TempImg:= TJPEGImage.Create;
TempImg.LoadFromFile('C2F'+inttostr(ImgNo)+'.jpg');
img_Formulae.Picture.Assign(TempImg);
// assigning each picture to an element in array if it is the first time. This will be used to save the pictures later on
If NewImage = True then Formulae[ImgNo].Assign(TempImg);
TempImg.Free;
ImgDisplayed:= ImgNo;
lbl_FormulaDisplay.Caption:= 'Formula ' + inttostr(ImgNo); //user can see which formula can be seen
end;
감사.
호출하기 전에 할당 된 객체로 배열을 채웠습니까 Assign
? 아마 아닐 것입니다. 대신 다음과 같이 시도하십시오.
procedure Tfrm_calc2.ChangeDisplay(ImgNo: Integer);
var
TempImg: TJPEGImage;
begin
TempImg := TJPEGImage.Create;
try
TempImg.LoadFromFile('C2F'+IntToStr(ImgNo)+'.jpg');
img_Formulae.Picture.Assign(TempImg);
if Formulae[ImgNo] = nil then
begin
Formulae[ImgNo] := TempImg;
TempImg := nil;
end else
Formulae[ImgNo].Assign(TempImg);
finally
TempImg.Free;
end;
ImgDisplayed := ImgNo;
lbl_FormulaDisplay.Caption := 'Formula ' + IntToStr(ImgNo);
end;
또는 :
procedure Tfrm_calc2.ChangeDisplay(ImgNo: Integer);
var
TempImg: TJPEGImage;
begin
TempImg := TJPEGImage.Create;
try
TempImg.LoadFromFile('C2F'+IntToStr(ImgNo)+'.jpg');
img_Formulae.Picture.Assign(TempImg);
FreeAndNil(Formulae[ImgNo]);
Formulae[ImgNo] := TempImg;
except
TempImg.Free;
raise;
end;
ImgDisplayed := ImgNo;
lbl_FormulaDisplay.Caption := 'Formula ' + IntToStr(ImgNo);
end;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다