Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.04.2011, 19:16
whitehustle whitehustle вне форума
Прохожий
 
Регистрация: 18.12.2010
Сообщения: 17
Репутация: 12
По умолчанию Проблемы с реализацией через функции

Как реализовать через функции: округление и проверку на символы в едит?

Округление пробовал реализовать через роунд, но что-то неудачно, когда прописывал к некоторым едитам его. Т.е. В первом пятизначное число становилось двузначным, а надо, чтобы после запятой. Кажись с параметрами там намудрил.

Проверку на символы реализую в ОнКлик через "иф ленгхт едит.текст = 0 зен бегин шоумессадж", но выдает все равно ошибку " из нот а валид флоатинг поинт валу ".

Вот такие вот дела. Помогите, пожалуйста, с реализацией, господа программеры.

Проект тут: rghost.ru/5250360

Сижу через телефон, нет возможности код скинуть тут.
__________________
Новичок в этом деле.
Ответить с цитированием
  #2  
Старый 20.04.2011, 13:29
Max.Gr Max.Gr вне форума
Прохожий
 
Регистрация: 20.04.2011
Сообщения: 4
Репутация: 10
Счастье Вот так можно сделать

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    summa: TEdit;
    koef: TEdit;
    win: TEdit;
    prib: TEdit;
    OK: TButton;
    Label1: TLabel;
    lbl1: TLabel;
    lbl2: TLabel;
    lbl3: TLabel;
    lbl4: TLabel;
    lbl5: TLabel;
    lbl6: TLabel;
    procedure OKClick(Sender: TObject);
    procedure summaKeyPress(Sender: TObject; var Key: Char);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  w, p, ss, k: Real;
 i: integer;
 str: string;

implementation

{$R *.dfm}

function Separator(Text:String):String;
begin
  //Если первый символ разделитель, то ставим первым символом 0
  if (Pos(',',Text)=1) or (Pos('.',Text)=1) then Insert('0',Text,0);
  // Проверяем разделитель на правильность
  // и в случае необходимости меняем
  if (DecimalSeparator=',') and (Pos('.',Text)<>0) then
  begin
    Insert(',',Text,Pos('.',Text));
    Delete(Text,Pos('.',Text),1);
  end;
  if (DecimalSeparator='.') and (Pos(',',Text)<>0) then
  begin
    Insert('.',Text,Pos(',',Text));
    Delete(Text,Pos(',',Text),1);
  end;
  Separator:=Text
end;

procedure TForm1.OKClick(Sender: TObject);
begin
  Summa.Text:=Separator(Summa.text);
  Koef.Text:=Separator(koef.Text);

  ss:=StrToFloat(summa.Text);
  k:=StrToFloat(koef.Text);
  w:=ss*k;
  p:=w-ss;
  win.Text:=FloatToStr(w);
  prib.Text:=FloatToStr(p);
end;

procedure TForm1.summaKeyPress(Sender: TObject; var Key: Char);
 begin
if not (Key in ['0'..'9', '.', ',', #13, #8]) then
begin
 ShowMessage('Вводи цифры');
  key:= #0;
end;
end;


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


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:20.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter