Force Napisano Maj 19, 2008 Zgłoś Share Napisano Maj 19, 2008 Jak w temacie, mam richedit i chciałbym wiedzieć jakie współrzędne ma kursor w RichEdit w px, a nie że jedna kolumna 3 wiersze, najlepiej nie bezwzględne, a względne względem lewego górnego punktu który widać (on miałby współrzędne 0, 0 więc) Chodzi mi o ten pionowy migacz, a nie gdzie jest strzałka myszy Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Maj 19, 2008 Zgłoś Share Napisano Maj 19, 2008 chyba chodzi ci o to (z Helpa) Indicates the position of the caret in the client area of the memo. Class TCustomMemo Syntax [Delphi] property CaretPos: TPoint read GetCaretPos write SetCaretPos; Description Use CaretPos to determine the coordinates of the cursor. CaretPos defines a location onscreen, in characters, with the origin in the top left corner of the memo. X specifies the horizontal coordinate of the point, Y specifies the vertical coordinate. To determine the position of the caret in terms of characters of text only (rather than X/Y location), use the SelStart property. Related Information TCustomEdit.SelStart Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Maj 19, 2008 Zgłoś Share Napisano Maj 19, 2008 Force: możesz jaśniej?? Zrozumiałem, że nie chodzi Ci o taki efekt jak np w Wordzie?? Ale przecież tam pokazuje względem lewego górnego rogu pozycje 'tego pionowego migacza', wiec już sam nie bardzo wiem o co Ci chodzi Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Maj 19, 2008 Autor Zgłoś Share Napisano Maj 19, 2008 @Toster, to wiem, że takie coś jest, ale to zwraca współrzędne w stylu: kursor jest za 3 znakiem w linijce 6, ale ile px to nie wiem. Chce zrobić aby pokazywał mi się listbox obok tej kreski pionowej co miga, ale nie wiem jak pobrać jej współrzędne x,y aby dać jako Left,Top listbox-a Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Maj 19, 2008 Zgłoś Share Napisano Maj 19, 2008 na 100% jest jakis message do tego zobacze czy uda mi sie znalezc. Droga do okola moze byc taka aby uzyc TextWidth(s), dzie w s jest kawalek linijki do kursora, ale popatrze jeszcze do libow. Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Maj 19, 2008 Autor Zgłoś Share Napisano Maj 19, 2008 no tak, ale font sie zmienia (gruby lub podkreślony) więc nie wiem co na to TextWidth Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Maj 19, 2008 Zgłoś Share Napisano Maj 19, 2008 TextWidth też się zmienia Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Maj 19, 2008 Zgłoś Share Napisano Maj 19, 2008 nom wg dokumentacji, textWidth podaje dlugosc tekstu uzywajac aktualnego fonta. Nie mam pojecia co sie dzieje w richedicie w sumie tam fonty moga sie zmieniac wiele razy w jednej lini. Trzeba by sprawdzic Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Maj 19, 2008 Autor Zgłoś Share Napisano Maj 19, 2008 W sensie, że tylko kawałek napisu jest pogrubiony, a nie cały, to bym musiał rozbić napis na podnapisy o różnych fontach, co wygodne nie jest. Edit.. a ubiegli mnie Edit2: RichEdit nie ma canvasa, Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Maj 19, 2008 Zgłoś Share Napisano Maj 19, 2008 zerknij na linka Link jest tam funkcja tego typu (nie sprawdzalem czy dziala) function TForm1.PixelPosInRichEdit(aRichEdit: TRichEdit; aCharPos: integer): TPoint; // The inverse of CharPosInRichEdit. Not used in this application, but supplied // for completeness. Note that the inverse is not necessarily going to give back // the same point, since a character spans multiple points. I _think_ we get back // the coordinate of the top left pixel of the character. var aPt: TPoint; begin aRichEdit.Perform(EM_POSFROMCHAR, WPARAM(@aPt), aCharPos); result := aPt; end; Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Maj 19, 2008 Autor Zgłoś Share Napisano Maj 19, 2008 Działa, dzięki Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.