Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Editfeld wie bei "Datei umbenennen"


longhugo - Mo 07.11.05 13:24
Titel: Editfeld wie bei "Datei umbenennen"
Hallo Leute,

ich hab zwar mehrfach gesucht (und nix gefunden) aber vielleicht gab's das Thema ja
schonmal: Ich habe da ein Memo (oder RichEdit - egal) und dort ein Wort selektiert.
Jetzt rechte Maustaste.Click -> kleines Texteingabefeld geht auf (z.Zt als eigenständige
Form mit einem Edit Control) und neues Wort wird eingetippt und übernommen. Soweit alles
kein Prob. Dieses EditForm soll aber so unauffällig wie irgendmöglich sein. Am besten wäre
ein Feld, das direkt neben dem markierten Wort aufgeht und so ähnlich wie bei
Windows "Datei Umbenennen" funktionobelt. Gibts da ne Compo die ich übersehen habe
oder muss ich meine Editform mit Cursorposition etc. plazieren und dementsprechend
designen...(was ja auch nicht schlimm wär ;)

Horido
Hugo


cartridge - Mo 07.11.05 19:55

Musst Du selber machen!

Koordinaten des Worts ermitteln und z.B. mit MessageDlgPos. Dialog dort hinlegen.

Gruß
Ingo


longhugo - Di 08.11.05 11:42

Det hew ick mich schon denkt...

trotzdem danke


jaenicke - Di 08.11.05 12:06

Da brauchts aber keine neue Form! Es reicht, wenn du ein Edit-Feld direkt an die Stelle legst, und wenn dieses den Fokus wieder verliert (weil der User woanders hingeklickt hat), es ausblendest.


longhugo - So 13.11.05 12:10

user profile iconjaenicke hat folgendes geschrieben:
Da brauchts aber keine neue Form! Es reicht, wenn du ein Edit-Feld direkt an die Stelle legst, und wenn dieses den Fokus wieder verliert (weil der User woanders hingeklickt hat), es ausblendest.


Jetzt war ich doch zu schnell mit meinem Urteil: Wenn ich ein Editfeld an die Position legen will,
dann benötige ich ja die Screen-Pixelkoordinaten (für Left und Top) oder? Da liegt der Hase im Pfeffer - wie bekomme
ich die Pixelkoordinaten des TMemo-Cursors????? Die Lösung ist jedenfalls nicht die Caret Position - die liefert
zwar einen TPoint - das sind aber die Koordinaten aus Zeile und Stelle und nicht die Pixel...habs auch
schon mit ClienttoScreen etc. probiert...oder kann man ggf. den Mauscursor an das Caret nageln? dann hätte
man ja die Pixel...

Please help - hab mir schon n Wolf gegoogelt...

CU