Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Abstand in Pixel von Zeile 1 bis Zeile X in einem TRICHEDIT


ardely - Do 21.02.13 11:56
Titel: Abstand in Pixel von Zeile 1 bis Zeile X in einem TRICHEDIT
Hallo,
Ich benutze ein Richedit (Delphi 2007) und möchte gern herausfinden den Abstand in Pixel von (immer) Zeile 1 bis zur (z.b) Zeile 12, weil ich möchte, gern gegenüber der Zeile 12 auf ein Panel ein kleines Bild anzeigen lassen. Wie kann ich dieses abstand herausfinden um genau gegenüber, ein kleines Bild einfügen zu lassen.

Sehr vielen Dank für Ihr Vorschlagen.


bummi - Do 21.02.13 12:12

Im Beispiel liegt ein Label neben dem Richedit (gleicher Parent), für Deine Anforderung entsprechend die Offsets mit berücksichtigen.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.Button1Click(Sender: TObject);
const
 C_WishedLine_ZeroBased=11;
var
  pt: TPoint;
  CharPos:Integer;
begin
  CharPos :=richedit1.Perform(messages.EM_LINEINDEX, C_WishedLine_ZeroBased,0);
  richedit1.Perform(messages.EM_POSFROMCHAR, WPARAM(@pt), CharPos);
  Label1.top := richedit1.Top + pt.Y;
//  Mouse.CursorPos := richedit1.ClientToScreen(pt);

end;


ardely - Do 21.02.13 14:46

Hallo,
Danke für deine Antwort, ich habe es ausprobiert, aber ich komme nicht zurecht!
Ich konnte feststellen dass der pt.y nur einmal reagiert und positioniert sich fast immer an die letzte Zeile,
was kannst du mir noch als Beispiel raten!
Danke.


bummi - Do 21.02.13 15:32

Da mir nicht ganz klar ist was genau Du suchst, habe ich ein kleines Programm angehängt. Zwei Arten der Steuerung (checkbox) sind angedeutet.


ardely - Do 21.02.13 16:09

Vielen Dank für das ausführliche Beispiel, es ist genau dass, was ich gesucht habe.
Wünsche dir einen schönen Tag.