Hallo,
ich muss die Breite eines Textes in einem Panel wissen.
Das ganze passiert in einer Komponente.
Meine erste Version war so:
Delphi-Quellcode:
var
Text_Width: Integer;
begin
Text_Width := Application.MainForm.Canvas.TextWidth(S); //In "S" ist der String
end;
Da ich aber die
Unit "Forms" in meiner Komponente nicht brauch und will, dacht ich mir, ich könnte ja ein Canvas erzeugen:
Delphi-Quellcode:
var
Canvas : TCanvas;
begin
//Canvas ereugen
Canvas := TCanvas.Create;
try
Text_Width := Canvas.TextWidth(S);
finally
FreeAndNil(Canvas);
end;
end;
Wenn ich aber nun diesen Code ausführe, erhalte ich die Fehlermeldung:
Zitat:
---------------------------
Benachrichtigung über Debugger-
Exception
---------------------------
Im Projekt Project1.exe ist eine
Exception der Klasse EInvalidOperation aufgetreten. Meldung: 'Leinwand/Bild erlaubt kein Zeichnen'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
Also muss ich irgendwas falsch machen mit dem Canvas. Kann mir da jemand helfen?
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<