Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Вниз

строки ---Edit   Найти похожие ветки 

 
MIXER   (2006-01-31 23:32) [0]

мастера подскажите почему button2 не работает

unit Unit1;

interface

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

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

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,e:real;
d:string;
begin
a:=Strtofloat(Edit1.Text);
b:=Strtofloat(Edit2.Text);
c:=a+b;
Str(c:5:1,d);
Edit3.Text:=d;
end;

procedure TForm1.Button2Click(Sender: TObject);
var a1,a2,a3:real;
a4:string;
begin
a1:=strtofloat(Edit3.Text);
a2:=a1*12;
Str(a2:5:1,a4);
Edit4.Text:=a4;
end;

end.


 
Плохиш ©   (2006-01-31 23:46) [1]


> подскажите почему button2 не работает

Отпуск у неё. По КСОТу нельзя заставлять работать во время отпуска.


 
Kostafey ©   (2006-02-01 00:01) [2]

А что не работает-то, ошибку какую выдает ?
Например выдает:
"...is not a floating point..."?


 
Pit ©   (2006-02-01 00:15) [3]

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,e:real;
d:string;
begin
a:=Strtofloat(Edit1.Text);
b:=Strtofloat(Edit2.Text);
c:=a+b;
Str(c:5:1,d);
Edit3.Text:=d;
c:=c*12;
Str(c:5:1,d);
Edit4.Text:=d;


 
Pit ©   (2006-02-01 00:18) [4]

Это работает.

var
 a,b,c,e:real;
 d:string;
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
a:=Strtofloat(Edit1.Text);
b:=Strtofloat(Edit2.Text);
c:=a+b;
Str(c:5:1,d);
Edit3.Text:=d;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
c:=c*12;
Str(c:5:1,d);
Edit4.Text:=d;
end;

end.


 
MIXER   (2006-02-01 10:43) [5]

нужно 2 buttona а ошибка
Например выдает:
"...is not a floating point..."?


 
MIXER   (2006-02-01 10:45) [6]

и EConvertError


 
MIXER   (2006-02-01 11:00) [7]

Pit спасибо за попытку но не работает тож.Может нужно другой компонент.в общем нужно ввести 2 числа (целое или действительное) получить третье.считать третье.получить четвертое.


 
Плохиш ©   (2006-02-01 11:02) [8]

Замени Str на FormatFloat

PS. Str использует всегда точку в качестве десятичного разделителя.
    StrToFloat и FormatFloat используют для этого DecimalSeparator.


 
MIXER   (2006-02-01 12:52) [9]

что-то я торможу .не выходит синтаксис
[Error] Unit1.pas(41): There is no overloaded version of "FormatFloat" that can be called with these arguments

FormatFloat( d:string; c:extended):string;


 
msguns ©   (2006-02-01 13:02) [10]

uses StrUtils


 
Плохиш ©   (2006-02-01 13:04) [11]


> MIXER   (01.02.06 12:52) [9]

d:= FormatFloat("0.0", c);


 
msguns ©   (2006-02-01 13:14) [12]

function CtrlAndConvertStrToFloat(var e: double; s: string): boolean;
begin
 try
   e := StrToFloat(s);
   result := true;
 except
   result := false;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 a,b: double;
begin
if CtrlAndConvertStrToFloat(a,Edit1.Text) and
 CtrlAndConvertStrToFloat(b,Edit2.Text) then
   Edit3.Text := Format("%8,2f",a+b)
else
   Edit3.Text := "???"
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 a: double;
begin
if CtrlAndConvertStrToFloat(a,Edit3.Text) then
   Edit4.Text := Format("%8,2f",a*12)
else
   Edit4.Text := "???"
end;


 
MIXER   (2006-02-01 13:20) [13]

видимо без обработки исключений не заглотит?


 
evvcom ©   (2006-02-01 13:21) [14]

А причем здесь кнопка?


 
MIXER   (2006-02-01 13:28) [15]


> А причем здесь кнопка?

такая задача.визуально нужны промежуточные значения.таких кнопок и значений 8-10


 
msguns ©   (2006-02-01 13:33) [16]

>MIXER   (01.02.06 13:20) [13]
>видимо без обработки исключений не заглотит?

 Заглотит все, что ты ей скажешь. Например, если "ручками" будешь проверять корректность введенного в Эдит юзером числа. Однако это вовсе не так просто, как кажется, ибо там надо еще учесть локализацию. Только вот зачем это делать, "нагружая" код вспомогательными деталями, если можно эффективно использовать имеющиеся в Дельфи/ОС функции.

Если уж смущает try..except, то можно использовать StrToFloatDef, "зашившись" на некоторое невероятное число, которое будет "сигнализировать" об ошибке. Хотя указанная процедура внутри себя использует тот же защищенный блок try..except


 
MIXER   (2006-02-01 13:38) [17]

спасибо всем



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.057 c
2-1138867824
Юля
2006-02-02 11:10
2006.02.19
Lable


15-1138180213
Red_imp
2006-01-25 12:10
2006.02.19
Народ посоветуйте программу для учета трафика


15-1138799384
Kerk
2006-02-01 16:09
2006.02.19
IP-адреса прокси-сервера здания Конгресса будут заблокированы


6-1131551799
Леонид Федьков
2005-11-09 18:56
2006.02.19
Копирование файлов с сайта


1-1137584674
UnDISCOvery
2006-01-18 14:44
2006.02.19
Каким образом будут располагаться файлы на диске?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский