Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   VCL-Funktion wird nicht erkannt (https://www.delphipraxis.net/199316-vcl-funktion-wird-nicht-erkannt.html)

Nikodel 14. Jan 2019 11:02

Delphi-Version: XE4

VCL-Funktion wird nicht erkannt
 
Hallo,
obwohl ich in der Uses-Klausel meines VCL-Programms Vcl.Graphics stehen habe, reklamiert der Compiler Undeklarierter Bezeichner: 'TextWidth'. Die Delphi-Hilfe besagt, dass TextWidth in Vcl.Graphics definiert ist.
Code:
uses
  ShellAPI, Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, System.StrUtils, System.DateUtils, System.Character, System.Math,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.ExtCtrls,
  Vcl.ExtDlgs, Vcl.ComCtrls, Vcl.StdCtrls, Winapi.WinInet;
...
TMainForm = class(TForm)
...
private
...
const
...
    len_ltick = 8; // long tick
    border_left = len_ltick+TextWidth('99')+2;
...
Auch wenn ich TextWidth('99') später im Code verwende, kommt dort die gleiche Fehlermeldung.

Wie kann ich sonst noch die Breite von Text auf einer Grafik ermitteln?

Gruß Nikodel

CCRDude 14. Jan 2019 11:05

AW: VCL-Funktion wird nicht erkannt
 
TextWidth sollte eine Methode des jeweiligen Canvas sein. Woher soll es sonst Textgröße/Schriftart/etc kennen?

Jasocul 14. Jan 2019 11:36

AW: VCL-Funktion wird nicht erkannt
 
Wie CCRude schon schrieb, ist es eine Methode des Canvas-Objekts.

Selbst, wenn das nicht so wäre, wird es nicht funktionieren, damit eine Konstante zu definieren. Die Methode TextWidth ist abhängig von der Schriftart. Dadurch ist es kein Konstantenausdruck mehr.

ConnorMcLeod 17. Jan 2019 16:33

AW: VCL-Funktion wird nicht erkannt
 
Hilft das hier?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf