Forum: Object-Pascal / Delphi-Language
Delphi
by Aenogym,
1. Okt 2004
die funktion Canvas.TextHeight bzw. Canvas.TextWidth gibt dir die höhe und breite des angegebenen buchstabens in Pixeln zurück. ich habe W genommen. du könntest auch irgendein anderes zeichen nehmen, da bei Courier New alle buchstaben gleich groß sind.
achtung: wenn du eine schrift mit variabler größe (zB Arial) nimmst, funktioniert der Code leider nicht mehr!
Aenogym
Forum: Object-Pascal / Delphi-Language
Delphi
by Aenogym,
1. Okt 2004
jo,
ich habs nochmal überarbeitet :)
ich hab in dem projekt eine listbox benutzt.
aber der code für die benutzung eines formulars ist auch drin.
Aenogym
Forum: Object-Pascal / Delphi-Language
Delphi
by Aenogym,
1. Okt 2004
aha.
die delphi-hilfe erzählt mal wieder dünnpfiff ;)
caretPos gibt nicht die pixel-koordinaten des carets zurück, sondern die spalte und die zeile...
da heißt es dann: umrechnen.
hier mal mein (getesteter) code:
if key = '.' then
Forum: Object-Pascal / Delphi-Language
Delphi
by Aenogym,
1. Okt 2004
hm, das verstehe ich nicht......
dann muss caretPos einen falschen wert zurückliefern
ich habs grad bei mir getestet und es klappt auch nicht...
aber rein theorethisch muss es so gehen...
Aenogym
Forum: Object-Pascal / Delphi-Language
Delphi
by Aenogym,
1. Okt 2004
hi christian,
TRichEdit.CaretPos; liefert dir die Koordinaten, des Carets im Clientbereich des Richedits.
du musst also noch die top- und left-werte des formulars und des richedits hinzuaddieren und dein fenster erscheint an der richtigen stelle.
sprich:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;