Error: Incompatible types

1. Incompatible types: 'Integer' and 'Extended'

Pôvodný zdrojový kód

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a, b, d : integer;
begin
a:= StrToInt(Edit1.Text);
b:= StrToInt(Edit2.Text);

d:= a/b;

if b<>0 then Label1.Caption:= 'Podiel: ' + IntToStr(d);

end;

{

[Error] Unit1.pas(35): Incompatible types: 'Integer' and 'Extended'
--------------------------------------------------------------------------------

Nekompatibilné typy: Integer a Extended

PREČO?

Na ľavej strane príkazu priradenia

d:= a/b;

je premenná typu integer.

Výsledkom delenia na pravej strane, je reálne číslo.

RIEŠENIE

Pri celočíselnom delení sa používa operátor div.

Upravený zdrojový kód

--------------------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var a, b, d : integer;
begin
a:= StrToInt(Edit1.Text);
b:= StrToInt(Edit2.Text);

d:= a div b;

if b<>0 then Label1.Caption:= 'Podiel: ' + IntToStr(d);

end;

--------------------------------------------------------------------------------

}

end.

Stiahnuť vzorový príklad (zdrojové kódy v Delphi)