Показать сообщение отдельно
  #1  
Старый 07.02.2020, 06:34
Nikita4 Nikita4 вне форума
Прохожий
 
Регистрация: 22.12.2018
Сообщения: 13
Версия Delphi: Delphi 14
Репутация: 10
По умолчанию Как передать значение из функции в процедуру?

При решении арифметических действий параметры передаются нормально.При передаче цвета пикселя по координатам,значение меняется.
На форме TImage и Label:
Код:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Label2: TLabel;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    function d(x, y:integer):integer;

  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var i,x,y:integer; 
  Color: TColor;
begin
 x:=40;
 y:=20;
 Image1.Picture.LoadFromFile('1.bmp');
 //color:=Image1.Picture.Bitmap.Canvas.Pixels[x,y];
 i:=d(x,y);
 Label1.Caption:=IntToStr(i);// Label1.Caption:=IntToHex(color,1);// белый 16777215
end;


function TForm2.d(x, y: integer): integer;
var d3: TColor;
 d2 ,d: String;
begin
d3:=Image1.Picture.Bitmap.Canvas.Pixels[x,y];
//Label1.Caption:=IntToStr(d3);// здесь нормально возвращает значение
 d:= IntToStr(d3); 
//d:=x+y*x; //Присваиваем функции сумму переменных
end;

end.
Ответить с цитированием