Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2015, 20:33   #1
RusRUs
 
Регистрация: 21.10.2010
Сообщений: 9
По умолчанию проблема передачи данных

проблема- в процедуре переменной типа интеджер присваивается значение напр. "-333". В вызывающей программе ошибочно передается совершенно другое число "4363540" ?!
спасибо за разъяснение!
ниже текст программки; можно загрузить https://drive.google.com/file/d/0B2D...ew?usp=sharing
или
https://drive.google.com/file/d/0B2D...ew?usp=sharing
так как небольшая, на всякий случай, ниже привожу текст программ
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    LabeledEdit3: TLabeledEdit;
    LabeledEdit4: TLabeledEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
 /////////////////////////
uses {Unit2_procedurebi,} unit2, math;

procedure TForm1.Button1Click(Sender: TObject);
var xre1, xre2, yre1:real;
var yint1:integer;
begin
   xre1:=StrToFloat (labelededit1.Text);
   xre2:=StrToFloat (labelededit2.Text);
testjami (xre1,xre2,{XXX} yre1,yint1);
   labelededit3.Text := floattostr (yre1);
   labelededit4.Text := inttostr (yint1);
end;

end.
/////////////////////
unit Unit2;

interface
procedure testjami (xre1,xre2:real; var yre1:real;yint1:integer);

implementation

procedure testjami (xre1,xre2:real; var yre1:real;yint1:integer);
begin
yre1:=xre1+xre2;
yint1:=-333;
end;

end.

Последний раз редактировалось Stilet; 08.03.2015 в 21:37.
RusRUs вне форума Ответить с цитированием
Старый 08.03.2015, 20:42   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Дык объяви var-ом тот yint1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.03.2015, 21:03   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Код:
yint1:integer // передаётся копия значения
var yint1:integer // передаётся копия значения указателя на реальные данные
const yint1:integer // передаётся копия значения указателя на реальные данные или константа
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема отоброжения данных на сайте при передачи их post-функцией DIZZID Работа с сетью в Delphi 2 23.10.2013 14:41
Передачи данных Eihmann Помощь студентам 0 12.03.2013 22:20
Порядок передачи данных.+ Farrel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.05.2011 19:11
Проблема внутренней передачи данных Alex Cones Общие вопросы Delphi 0 11.07.2010 11:44