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.
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus