Solved

How do I get current field name ?

Posted on 2000-03-28
8
269 Views
Last Modified: 2010-04-04
I have created a form with a number of fields on it, and want to know how do I get the name of the current field being edited, or focused, without writing code for every field component on the form ?

I can do this in a DBGrid easy enough, but am unable to apply the same code to the form.
0
Comment
Question by:pjelias
8 Comments
 
LVL 12

Expert Comment

by:rwilson032697
ID: 2666024
Use TForm.ActiveControl like this:

TheActiveControlName := ActiveControl.Name;

Cheers,

Raymond.
0
 

Author Comment

by:pjelias
ID: 2667381
Have already tried that. The Problem is I am using a FRAME (Delphi 5) that appears on a Form. When I attach the code to the Frame, nothing happens. When I attach code to the Main Form containing the Frame, all other objects names are accessible but not the frame or object within the Frame ?

The Use of Frames has solved alot of problems, but has caused a number of others.

I was thinking of code more related to the Table or Data Components, which can detect field movements/changes etc.

Thanks for your response anyway.
0
 

Author Comment

by:pjelias
ID: 2667393
Adjusted points from 50 to 100
0
 
LVL 4

Expert Comment

by:jeurk
ID: 2668691
Hello,
are you talking about knowing wich of your
ttable field is beeing edited ?
Is suggest you use the ondatachange event
of you datasource :
extracted from the help file ...

Occurs when the current record has been edited and the application moves from one field or record to another in a dataset associated with the data source component.

type TDataChangeEvent = procedure(Sender: TObject; Field: TField) of object;
property OnDataChange: TDataChangeEvent;

Description

Write an OnDataChange event handler to take specific actions when a field in the current record has been edited and an application moves from one field or record to another in a dataset associated with a data source component. For example, methods that can trigger this event include the Next or Prior methods for the dataset.

Data-aware controls notify a data source of a data change because of:

Scrolling to a new record.
      Modifications to a field’s data.

The Field parameter is nil if more than one of the fields changed simultaneously, such as when moving from one record to another. Otherwise, Field indicates the edited field.

OnDataChange is especially useful in applications that must synchronize data display in controls that are not data aware.
what do you think of that ?
0
6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

 

Accepted Solution

by:
JimboKern69 earned 100 total points
ID: 2669899
This seemed to do the trick...

First some details:

I created a main form, then two sub-frames that I placed on the main form.

The Main Form also has a label who's caption will be the currently focused control.

What I did was create another Interface (TFieldFrame) which each sub-form will implement.  This interface has a single method - GetFieldName(fld:Integer):String;

The main form can then hook in to the active frame and using a generic onEnter and onExit methods, which control is active and get the names.

Instead of posting all the code, which is extensive, I'll send you to a web-site to get the sample D5 project I created.

http://kernsoft.freeservers.com/FieldNames.html

Hope this helps.

Jim Kern
0
 

Expert Comment

by:JimboKern69
ID: 2669908
BTW...I didn't mean to make it look like there is a lot of code to get this done...there is for the initial setup, but then, to add additional frames and/or controls, there is not much to do at all...really.

Anyway...hope it helps.

Jim Kern
0
 

Author Comment

by:pjelias
ID: 2671600
This appears to work well and will be of benefit in future apps, but, I have tried the code in the problem app and have found another hurdle.

I am using a Third Party Component from Infopower 2000 - A RecordView Panel - which after setting a number of options, creates a nicely formatted ViewPanel with Fields and Labels displayed.

Unfortunately, there is no way to attach code to each Edit Box/Component to return the TAG Value, as these components do not exist within the panel.

********************************************************
Have just found a workaround for the problem in preceding paragraph, by creating Infopower Edit/Comboboxes, and then assigning these to each field via Custom Edit option in the Control Type Dialog.
********************************************************

Will give you the points anyway, as the sample app you supplied looks very useful for future apps.

Thanks

0
 

Expert Comment

by:JimboKern69
ID: 2672996
You are welcome...thanks for the grade as well.

Actually, this will also come in handy for myself in future apps, so I will certainly be keeping this code around for some time now.

Note: In about a month I will probably take the code off that web-site, so if the above link is no longer active, feel free to e-mail kernsoft@juno.com for the code or any other questions you may have about it.

Thanks

Jim Kern
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
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…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

746 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

13 Experts available now in Live!

Get 1:1 Help Now