![]() |
Anzeige:
|
|
|||||||
| Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
|
Eine Frage an die Editorschreiber (Frank und Andreas)
In euren XProfan-Editoren kann man die Cursorzeile farbig hervorheben. Welche API oder Procedur macht es möglich, die Zeile in einem Richedit farbig zu gestalten, in der sich grade der Cursor befindet ? Bei der Hilfe denkt dran: alter Mann und von API soviel Ahnung "wie 'ne Kuh vom Stabhochsprung !"
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
|
#2 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Der Editor verwendet kein Richedit, sondern ein Scintilla-Edit, das zu normalen Edits nahezu kompatibel ist, aber in den Funktionen ungleich mächtiger. Ich glaube nicht, dass ein Richedit diese Funktion bietet. Da wirst du dann wohl subclassen müssen.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#3 (Direktlink) |
|
Gast
Beiträge: n/a
|
Hallo Horst,
Mein Editor benutzt weder ein Richedit noch Scintilla, wieder was anderes. Mit dem Richedit geht es zwar auch ist aber alles andere als einfach. Ein kleines Beispiel dazu. Dort wird nicht weiter auf den benutzen Font ( in einer Zeile können sich ja verschiedene Fonts befinden), und Textposition ( wird im Beispiel immer bei 1 anfangen ) eingegangen. Das müsste also auch noch berücksichtigt werden. Das ganze wird sich also noch komplizierter gestalten. Und das ist nur das Einfärben. In der Hauptschleife bzw. SubClassProc muss permanent die Zeile abgefragt werden, und zwar nicht nur die aktuelle sondern auch die vorherige. Die müssen ja beide eingefärbt werden. Gruss Andreas Code:
$H Windows.ph
$H Structs.ph
$H Messages.ph
Struct Rect = ~Rect
Struct TM = ~TEXTMETRIC
CLS
Var RE& = Create("RichEdit",%hwnd,"",0,0,300,300)
Settext Re&,"Ein Klick ins Fenster\nsollte die zweite Zeile färben\nund ieder zurück !"
Waitinput
selectLine(RE&,1,$0000FF,$00FFFF)
Waitinput
selectLine(RE&,1,$FFFFFF,$0)
Waitinput
End
Proc SelectLine
Parameters RichEdit&,SelectedLine&,BackColor&,TxtColor&
Var Text$ = Space$(4095)
Var s$ = ""
Var R# = new(RECT)
Var R1# = new(RECT)
Var WLine& = 0
Var HLine& = 0
Var TM# = New(TM)
Var DC& = ~GetDC(Richedit&)
Var Brush& = ~CreateSolidBrush(BackColor&)
SendMessage(Richedit&,~EM_GETLINE,SelectedLine&,Addr(Text$))
Text$ = Trim$(Text$)
SendMessage(Richedit&,~EM_GETRECT,0,R#)
WLine& = Int(R#.Right&-R#.Left&+1)
~GetTextMetrics(DC&,TM#)
HLine& = Int(tm#.tmHeight& + tm#.tmExternalLeading&)
~SetRect(R1#,0,Int(SelectedLine&*HLine&),Int(WLine&+1),Int((SelectedLine&+1)*HLine&+1))
~FillRect(DC&,r1#,Brush&)
~SetBkMode(DC&,~TRANSPARENT)
~SetTextColor(DC&,TxtColor&)
~TextOut(DC&,0,Int(SelectedLine&*HLine&+1),addr(text$),Len(text$))
~DeleteObject(Brush&)
Dispose R#,R1#,TM#
EndProc
|
|
|
|
#4 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
|
@Andreas (wieso unregistriert ?)
In deinen Code werde ich mich jetzt einmal "verbeissen" ! Danke
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Quell-Code farbig ausdrucken | pitter | Helfer & Tools | 11 | 24.02.2010 14:22 |
| Zellen farbig in Word hinterlegen | patrick85 | Office-Anwendungen | 5 | 14.12.2009 15:45 |
| Tipp der Woche: Windows-Ordner farbig markieren | Info | Info: CB Spiele | 0 | 22.07.2009 17:40 |
| kann man bei thunderbird posteingänge farbig hervorheben las | blauelfe | Browser, eMail und Messenger | 12 | 23.02.2008 11:41 |
| Word: Farbig markierten Texten eine andere Farbe geben? | =Skippy= | Office-Anwendungen | 4 | 25.02.2007 13:50 |