[Lazarus] Is there aTDBLabel?
Michael Van Canneyt
michael at freepascal.org
Wed Mar 9 20:59:30 CET 2016
On Wed, 9 Mar 2016, Frans wrote:
> Hi
>
> I use Lazarus 1.6 on Windows 7.
> I've used lazdatadesktop to change the Displaylabel of the DB fields. In a
> DBGrid that new names popup as the column names. But in a form with TDBEdit
> fields I can't use a TDBLabel that automatically takes the name from the
> associated Control as the caption. Instead, I placed TLabel components and
> made the following method:
>
> procedure TMyForm.FormShow(Sender: TObject);
> var
> l: TLabel;
> begin
> for TComponent(l) in Self do
> begin
> if (l is TLabel) and (l.FocusControl is TDBEdit) then
> l.Caption := TDBEdit(l.FocusControl).Field.DisplayLabel;
> if (l is TLabel) and (l.FocusControl is TDBLookupComboBox) then
> l.Caption := TDBLookupComboBox(l.FocusControl).Field.DisplayLabel;
> end;
> end;
>
> It works. But still I wonder, is there a another way? I've tried TDBText but
> that shows th field value, not the DisplayLabel.
There is no standard control for it. But it should in fact be easy to add to
the LCL.
I have a very large application in which I do the same, but I had to develop
my own TLabel subclass for this. (It also switches color when the field is
required etc.)
Michael.
More information about the Lazarus
mailing list