On Tue, 07 Aug 2007 14:12:19 -0300 Luiz Americo Pereira Camara <[EMAIL PROTECTED]> wrote:
> I'm developing a TCustomLabel descendant that will have a glyph > painted in the left side of the text. > > I found that there's no way to set the position where the text is > painted so i could have space to the glyph. > > Currently i took the following approach (adding some spaces to the > Caption): > > function TGlyphLabel.GetLabelText: string; > begin > Result := ' ' + Caption; > end; > > procedure TGlyphLabel.Paint; > begin > inherited Paint; > with Canvas do > begin > Brush.Style := bsSolid; > Brush.Color := clWhite; > Pen.Color := clBlack; > Polygon([Point(0, 5), Point(8, 5), Point(4, 9)]); > end; > end; > > As a change to a properly implementation i would propose to add a > virtual method (DoMeasureTextPosition) to retrieve the TextLeft and > TextTop values (see TCustomLabel.Paint). The default implementation > is equal to the current code in .Paint (I simplified a bit assuming > that R.Top and R.Left = 0, R.Bottom = Height) > > The patch is attached. Thanks. Applied. Mattias _________________________________________________________________ To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives