| |
|
|
GDL | Hallo, Habe folgendes Problem: Wie kann man in einem Richedit die aktuelle Zeile löschen? Danke.
Servus Georg |
|
|
| |
|
|
|
| Hallo Georg...
Hab mal was gebastelt - so? KompilierenMarkierenSeparierenWINDOWSTYLE 31+512
WINDOWTITLE "RichEdit"
WINDOW 0,0-640,440
Declare RichEdit&,DLL_HDL&,Text$,Löschen&,Aktuelle_Zeile&,Erster_Buchstabe&,ZeilenLänge&
DLL_HDL&=@UseDLL($SYSPATH+"RICHED20.DLL")
LET RichEdit&=@Control("RichEdit20A","",$40000000+$10000000+4+$1000+$800000+$200000+$100000,20,20,300,300,%HWND,2112,%HINSTANCE)
@SENDMESSAGE(RichEdit&,$0400+53,0,$7FFFFFF0)
LEt Text$="Hallo"+@CHR$(13)+@CHR$(10)
@SendMessage(RichEdit&,$00C2,0,@ADDR(Text$)) Text einfügen/ersetzen
LEt Text$="da!"+@CHR$(13)+@CHR$(10)
@SendMessage(RichEdit&,$00C2,0,@ADDR(Text$)) Text einfügen/ersetzen
@SendMessage(RichEdit&,$00B1,6,6) Cursor setzen oder markieren
LEt Text$="du"+@CHR$(13)+@CHR$(10)
@SendMessage(RichEdit&,$00C2,0,@ADDR(Text$)) Text einfügen/ersetzen
Let Löschen&=@CREATEBUTTON(%HWND,"Zeile löschen",350,30,200,30)
whilenot %MENUITEM=-2
WAITINPUT
IF @Getfocus(Löschen&)
LET Aktuelle_Zeile&=@SENDMESSAGE(RichEdit&,$C9,-1,0)
LET Erster_Buchstabe&=@SENDMESSAGE(RichEdit&,$BB,-1,0)
ZeilenLänge&=@SENDMESSAGE(RichEdit&,$C1,Erster_Buchstabe&,0)
IF Aktuelle_Zeile&>0
@SENDMESSAGE(RichEdit&,$B1,Erster_Buchstabe&-1,Erster_Buchstabe&+ZeilenLänge&) Zeilenumbruch und Zeile markieren
else
@SENDMESSAGE(RichEdit&,$B1,Erster_Buchstabe&,Erster_Buchstabe&+ZeilenLänge&+1) Nur Zeile markieren
endif
LET TEXT$=""
@SendMessage(RichEdit&,$00C2,0,@ADDR(Text$)) Text einfügen/ersetzen
Sleep 100 Wegen Getfocus
endif
wend
@DESTROYWINDOW(RichEdit&)
FREEDLL DLL_HDL&
|
|
|
| |
|
|
|
GDL | Danke Andreas, werde es testen.Dauert aber nen bisschen, da ich zur zeit massive gesundheitl. Probleme habe.
Servus Georg |
|
|
| |
|
|
|
GDL | Hallo Andreas,
es geht im Einzelversuch.Setze es in meiner Anwendung versuchsweise ein.Bin wieder ein Stück weiter.
Servus Georg |
|
|
| |
|
|