Solved

TDBEdit float format

Posted on 2004-08-03
10
543 Views
Last Modified: 2010-04-04
Hi!

My problem is the following. I have a *.dbf file with float fields defined. All of them are of certain precision and I see it in the Database Desktop.
I need to format the TDBEdit components connected to the table so that they display trailing zeros. For example, if the precision of the field is 4 and the field contains 1.23, I need 1.2300 to be displayed.

How can I do that? I tried setting up the EditMask for the Table fields, but there are the following problems:
- The mask works only when the field is being edited and I need it to be always displayed with trailing zeros
- I cannot figure out the precision of the field run-time, it always equals 0. Why?

Any help is very much appreciated. Thanks in advance!
0
Comment
Question by:vk33
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 2

Accepted Solution

by:
DarkCore_ earned 50 total points
ID: 11701457
Have you used "DisplayFormat" property for this field?
0
 
LVL 4

Author Comment

by:vk33
ID: 11701482
Where's that property? I haven't found it in the TField class definition.
0
 
LVL 27

Assisted Solution

by:kretzschmar
kretzschmar earned 75 total points
ID: 11701554
if u are not using persistent fields, then you can set it at runtime as follows
(best in the afteropen event)

TFloatField(Dataset.FieldByName('FloatFieldNameHere')).DisplayFormat := '#0.00';

meikl ;-)
0
 
LVL 2

Expert Comment

by:DarkCore_
ID: 11701635
Are you using fields definitons at design time? if true, then is in object inspector, in any other case, you can use meikl trick when opening your Dataset.

Edu
0
 
LVL 4

Author Comment

by:vk33
ID: 11701674
Aha, yes, I didn't try casting to specific field types. Thanks!

But still there's the problem remaining - I cannot get the field precision. When I do something like that:

       Precision := TFloatField(Table.Fields.FindField('smth')).Precision

it returns default precision value (15), not the one specified in the dbf-header. How can I deal with that?

If you consider this an off-topic, I can rate this post and open another one, or just raise the points.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 2

Expert Comment

by:DarkCore_
ID: 11701793
maybe is problem of the default format for floats, controlled by locale settings.
0
 
LVL 2

Expert Comment

by:Molando
ID: 11701802
use the above to format, to get the precision look at:
table1.FieldDefs.Items[1].Precision;

Fielddefs are the definitions of the fields.
Precision specifies the number of digits of accuracy used to store the field value.
0
 
LVL 2

Expert Comment

by:Molando
ID: 11701819
If the above gives you the wrong value, look at table1.FieldDefs.Items[1].size;
0
 
LVL 4

Author Comment

by:vk33
ID: 11702310
Both table1.FieldDefs.Items[0].Precision and table1.FieldDefs.Items[0].size return 0.

How should I generally obtain the meta-infomration about the table fields?

Just have a try, you create a simple table with one float column using Database Desktop, specify the size and precision values for this column. Next you launch Delphi, put the TTable component, connect it to the dbf-file previously created, activate the table and see the FieldDefs. I think there's something wrong here, it doesn't display the real size and precision values. And it's the same when you consult the property runtime. :/
0
 
LVL 4

Author Comment

by:vk33
ID: 11713931
Ok, I guess it's better to start another topic.

Thanks for the help!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
TVirtualStringTree  search using TEdit 7 103
Convert GUI app into console app for Win32 Env 5 78
creating threads in delphi 1 81
Delphi: Connect to running MS Outlook 4 47
This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
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…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.
Delivering innovative fully-managed cloud services for mission-critical applications requires expertise in multiple areas plus vision and commitment. Meet a few of the people behind the quality services of Concerto.

929 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now