次のコードでプログラムを走らせようとすると、タイトルにあるようなエラーメッセージが出て動きません。
文法エラーはなさそうですが、なぜこうなるのか理解できません。よろしくお願いします。
unit MensekiDemo01_Windows;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Unit20, Vcl.ExtCtrls;
type
TForm20 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
Label7: TLabel;
Edit3: TEdit;
Label8: TLabel;
Label9: TLabel;
PaintBox1: TPaintBox;
procedure Button1Click(Sender: TObject);
procedure PaintBox1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form20: TForm20;
a,b:double;
implementation
{$R *.dfm}
procedure TForm20.Button1Click(Sender: TObject);
var delta,ai,large,small,largesum,smallsum,integral,a1,b1:double;
n,k,n1,n2,k1,k2,k3,delta1,m:integer;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
n:=StrToInt(Edit3.Text);
smallsum:=0; largesum:=0;
if a>b then begin
ai:=a; a:=b; b:=ai;
end;
delta:=(b-a)/n;
ai:=a;
for k := 1 to n do
begin
large:=delta*(ai+delta)*(ai+delta);
largesum:=large+largesum;
small:=delta*(ai+delta-delta)*(ai+delta-delta);
smallsum:=small+smallsum;
ai:=ai+delta;
end;
integral:=b*b*b/3-a*a*a/3;
Label4.Caption:='定積分による面積は'+FloatToStr(integral);
Label5.Caption:='区分求積(右)による面積は'+FloatToStr(largesum);
Label6.Caption:='区分求積(左)による面積は'+FloatToStr(smallsum);
Label8.Caption:='区分求積(右)-定積分は'+FloatToStr(abs(largesum-integral));
Label9.Caption:='区分求積(左)-定積分'+FloatToStr(abs(smallsum-integral));
a1:=a;
b1:=b;
n1:=round(330+200*a1);
n2:=round(330+200*b1);
delta1:=round(200*delta);
for k1 := 0 to n-1 do
begin
m:=330+round(200*k1/n);
k2:=round(-0.005*(m-330)*(m-330)+600);
k3:=round(-0.005*(m+delta1-330)*(m+delta1-330)+600);
PaintBox1.Canvas.Rectangle(m,600,m+delta1,k3);
PaintBox1.Canvas.Rectangle(m,600,m+delta1,k2);
end;
for k1 := n1 to n2 do
begin
PaintBox1.Canvas.Pixels[k1,round(-0.005*(k1-330)*(k1-330)+600)]:=clBlack;
end;
end;
procedure TForm20.PaintBox1Click(Sender: TObject);
begin
with PaintBox1.Canvas do
begin
font.Color:=clblack; //フォントの色を黒に指定
font.Size:=15; //フォントのサイズを15ピクセルに指定
textout(700,600, 'x'); //座標(700,600)の場所に'x'と表示
textout(310,0, 'y');
textout(280,600, 'o');
MoveTo(0,600);
LineTo(720,600);
MoveTo(330,0);
LineTo(330,609);
end;
end;
end.
F2039 エラーコードで、こちらをご確認いただいては如何でしょう?
もしかしたら、すでにMensekiDemo01_Windows11.exeを起動していて、生成できないってことはないですか?
なんとなくですが、実行中のためexeを再作成できないだけかなと思います。一度タスクマネージャでプロセスが完全に消えているか、見てはどうでしょうか。
皆さんコメントを頂きありがとうございます。2番目の方の仰った通りのようでした。程なく普通に動作しました。お騒がせしました。
ツイート | ![]() |