Solved

Display imperial units .

Posted on 1998-07-13
11
445 Views
Last Modified: 2010-04-04
We have a requirement to Display Feet and Inches, it must be displayed in fractions not decimal.

Is there a component which will provide this?
0
Comment
Question by:terryamy
  • 3
  • 3
  • 3
  • +2
11 Comments
 
LVL 3

Expert Comment

by:Matvey
ID: 1357774
0
 

Author Comment

by:terryamy
ID: 1357775
The Question is not on the default units but How can you ensure that the operator inputs a distance in Feet and Inches.

We have Edit Boxes and Mask Edit Boxes is there an component that will take an input of say

       3' 5½"

sorry if the original question was not clear
0
 
LVL 8

Expert Comment

by:ZifNab
ID: 1357776
What about using a mask?
0
Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

 
LVL 3

Expert Comment

by:Matvey
ID: 1357777
I haven't seen anything specific for this task. As ZifNab says - you should use some kind of a mask-edit-box.

I found some interesting once though:

                      http://bes.trendline.co.il/torry/vcl/edits/validat.zip

"TValidatorEdit works like a normal TEdit, except that it validates your inputs while you type. You can specify the characters that may not or may exclusively be entered."

                      http://www.prodat.no/fnp/fnpnumed.zip

" TFnpNumericEdit is an enhanced version of the standard edit control, that is designed specifically for entering numbers. This component is ideal for data entry applications and other situations where you want to restrict user input to a certain range of numbers. You may specify from 0 to 9 decimals. This component gives you the ability to define minimum and maximum values that are allowed. If an invalid entry is made, an event is fired when the component loses the focus. "

                      http://bes.trendline.co.il/torry/vcl/edits/juniornm.zip
"Number edit."

                      http://bes.trendline.co.il/torry/vcl/edits/skedit.zip

"SKEdit descended from TEdit. Allows you to only enter numerical values, '.', '-'. Still allows for the use of the delete and backspace keys."

                      http://bes.trendline.co.il/torry/vcl/edits/tb97addon.zip

"Five components to work with famous ToolBar97. Contains enhanced TEdit97, TSpin97, TSpinEdit97, TNumEdit97 and TLinkEdit97."

                      http://bes.trendline.co.il/torry/vcl/edits/maskedex.zip

.

Hope this isn't just a big mass a'crap...
0
 

Author Comment

by:terryamy
ID: 1357778
Thank you for the locations I will look at them with interest.

How do the USA operators input FEET and INCHES for there software applications?
0
 
LVL 3

Expert Comment

by:Matvey
ID: 1357779
I'm not from the US, and inches and feet make dizzy :)
0
 
LVL 1

Expert Comment

by:Greedy
ID: 1357780
every input I've seen uses decimals...in fact the only place that I've ever sean that you can enter fractions was in Maple.  Maple is a math program for solving complex calculas operation.  If it fits within your user interface you just might want to use two edit boxes with feet and inches.  It might be a cool option (selling point that never really gets used) to have a tricked out graphical entry field that can do fractions but any engineer will use decimals and if they are a scientist they will most likly use the metric system.  When I was in school it was always 9.81 m/s for g.  Never have I used 32 ft/s except to quickly figure out how fast a penny will be traveling after I launch it off a building into the skull of some clueless policeman :)  Actually in a program to track stock prices I saw a edit control that used fractions but it had two spincontrols one that controled the current value and another that controled the amount that would be added or subtracted for the value...so if you wanted to get 5/64 you would put in 1/16 and then 1/64
0
 

Author Comment

by:terryamy
ID: 1357781
Thank you  Greedy for your comments.

I agree that they would use decimals if they where Engineers, but I am dealing with Sales personnel!!!! and buyers.

They have stipulated that the Screen needs to be in Feet and Inches and also the drawings produced also in Feet and inches.

My main concern is to provide a clear picture of the data input screen.  I've thought of using four edit boxes arranged to show clearly the feet and inches and possibly create a calculator type form to select with radio buttons. Only ideas but it might work.

Thank you all again.
0
 
LVL 1

Expert Comment

by:Greedy
ID: 1357782
you could use this code to get the whole number and parts of the fraction.

I droped a edit box, 3 labels and a Button on a new form

procedure TForm1.Button1Click(Sender: TObject);
var
  MyTempInt: Integer;
begin
  try
    Label1.Caption := Copy( Trim(Edit1.Text), 0, (Pos(' ', Trim(Edit1.Text))-1));
    Label2.Caption := Copy( Trim(Edit1.Text), (Pos(' ', Trim(Edit1.Text))+1), (Pos('/', Trim(Edit1.Text)))-(Pos(' ', Trim(Edit1.Text))+1));
    Label3.Caption := Copy( Trim(Edit1.Text), (Pos('/', Trim(Edit1.Text))+1), (Length(Trim(Edit1.Text))-(Pos('/', Trim(Edit1.Text)))));
    MyTempInt := (StrToInt(Label1.Caption));
    MyTempInt := (StrToInt(Label2.Caption));
    MyTempInt := (StrToInt(Label3.Caption));
  except
    MessageDlg('Damn it, Fix that crap!', mtWarning, [mbOK], 0);
  end;
end;

I would probably use a mask and check to make sure that the edit box has a space and a / charicter in it.

0
 
LVL 1

Expert Comment

by:Greedy
ID: 1357783
You might need some code to ruduce the fractions...ie 2/4 = 1/2

0
 
LVL 1

Accepted Solution

by:
pjdb earned 50 total points
ID: 1357784
value is the value to transform (in exemple 2.5)
entier is the integer value (2)
numerateur is the numerator (1)
Denominateur is the denominator (2)
the result is the rest (0)

so the fraction is 2 + 1/2

to test if the value is a fraction, test if the rest is 0. If not, the return values is the nearest fraction (2.511 -> 2 + 93/182 + 1.1e-5)

Function Fraction(Value:double; Var Entier, Numerateur, Denominateur:LongInt):Double;
Const
      MaxFrac=256;            //max value of the denominator
      EqZero=1E-10;
Var
      Actuel:Double;
      i:Integer;
Begin
      entier:=Trunc(Value);
      Value:=Frac(Value);
      Result:=Value;
      For i:=2 To MaxFrac Do
      Begin
            Numerateur:=Trunc(Value * i + EqZero);
            Actuel:=Value - Numerateur / i;
            If Abs(Result)>Abs(Actuel) Then
            Begin
                  Denominateur:=i;
                  Result:=Actuel;
                  If Actuel<EqZero Then
                  Begin
                        Result:=0;
                        Break;
                  End;
            End;
      End;
      Numerateur:=Trunc(Value * Denominateur + EqZero);
End;      {Fraction}

0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question