「[dcc32 致命的エラー] F2039 ファイル '.\Win32\Debug\MensekiDemo01_Windows11.exe' を作成できません」について

解決


なおちゃん  2022-08-09 01:27:36  No: 150347  IP: [192.*.*.*]

次のコードでプログラムを走らせようとすると、タイトルにあるようなエラーメッセージが出て動きません。
文法エラーはなさそうですが、なぜこうなるのか理解できません。よろしくお願いします。
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.

編集 削除
hiro  URL  2022-08-09 01:32:34  No: 150348  IP: [192.*.*.*]

F2039 エラーコードで、こちらをご確認いただいては如何でしょう?

編集 削除
igy  2022-08-09 04:27:39  No: 150349  IP: [192.*.*.*]

もしかしたら、すでにMensekiDemo01_Windows11.exeを起動していて、生成できないってことはないですか?

編集 削除
 2022-08-09 11:07:09  No: 150350  IP: [192.*.*.*]

なんとなくですが、実行中のためexeを再作成できないだけかなと思います。一度タスクマネージャでプロセスが完全に消えているか、見てはどうでしょうか。

編集 削除
なおちゃん  2022-08-09 22:53:19  No: 150351  IP: [192.*.*.*]

皆さんコメントを頂きありがとうございます。2番目の方の仰った通りのようでした。程なく普通に動作しました。お騒がせしました。

編集 削除