Español
Foro

Hecho: Línea y Spalte aktualisieren

 

Manfred
Barei
¡Hola,

Yo hoffe lo kann me uno helfen, vieleicht incluso Stefan Rápidamente.
(Probiere con deinem Code RichEdit: Cursor abfragen)

Yo probiere y probiere y bekomme lo simplemente no hin , lo va por lo tanto, en el Statuszeile se
el Anzeige el Zeilen y Spaltenanzahl laufend aktualisiert voluntad si yo en el Editorfeld Eingaben mache. Posesiones ya einiges probiert sin embargo klappt lo sólo si yo en el Butten (Cursor-Position) Clicke.
Siehe Code:
KompilierenMarcaSeparación
 $P+
SET("ERRORLEVEL",0)
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
-Header-Dateien------------------------------------------------------
 $H Windows.ph
 $H RichEdit.ph
 $H Structs.ph
 $H Messages.ph
-Strukturen----------------------------------------------------------
DECLARE RICHEDIT1&
DECLARE BUTTON1&
DECLARE BUTTON2&
Declare CharRange#
Struct CharRange = ~CHARRANGE
Dim CharRange#, CharRange
-Funktion GetCursorPosX (Spalte)-------------------------------------

Proc GetCursorPosX

    SendMessage(RICHEDIT1&, ~EM_EXGETSEL, 0, CharRange#)
    Return Int(CharRange#.cpMax& - (SendMessage(RICHEDIT1&,
    ~EM_LINEINDEX, SendMessage(RICHEDIT1&, ~EM_EXLINEFROMCHAR, 0,
    CharRange#.cpMin&), 0)) + 1)

EndProc

-Funktion GetCursorPosY (Zeile)--------------------------------------

Proc GetCursorPosY

    SendMessage(RICHEDIT1&, ~EM_EXGETSEL, 0, CharRange#)
    Return Int(SendMessage(RICHEDIT1&, ~EM_EXLINEFROMCHAR, 0,
    CharRange#.cpMin&) + 1)

EndProc

Proc position

    SetText Sz&, 0, " Zeile: " + @Str$(GetCursorPosY())
    SetText Sz&, 1, " Spalte: " + @Str$(GetCursorPosX())

EndProc

WINDOWSTYLE 539
WINDOWTITLE "Test"
WINDOW (%maxx/2 - 280/2),(%maxy/2 - 320/2) - 280,320
SET("TRUECOLOR",1)
DECLARE ENDE%
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
Hier kann ggf. Ihr Menü hin
RICHEDIT1& = CREATE("RICHEDIT",%HWND,"",0015,0015,0245,0175)
BUTTON1& = CREATE("BUTTON",%HWND,"Cursor Position",0020,0215,0100,0030)
BUTTON2& = CREATE("BUTTON",%HWND,"Prog. Ende",0150,0215,0100,0030)
-----------------------------Statuszeile------------------------------
Declare L#,Sz&
Dim L#, 12                                   Long-Bereich für 3 Felder (3 * 4 Bytes)
Long L#,0 = 75, 195, -1                     Maße der einzelnen Statusfelder
Sz& = @Create("StatusWindow",%HWND,"",3,L#)  StatusWindow erzeugen
SetText Sz&, 0, " Zeile:"                       Feld1 mit Text bestücken
SetText Sz&, 1, " Spalte:"                          Feld2 mit Text bestücken
SetText Sz&, 2, Date$(0)                     Feld3 mit Text bestücken
---------------------------------------------------------------------
SETFOCUS(%HWND)
REPAINT

WHILENOT ENDE%

    WAITINPUT

    If %KEY=2

        ENDE% = 1

    ELSEIF %KEY=4

        SETWINDOWPOS Sz& = 0,0 - 0,0;0

    ELSEIF CLICKED(RICHEDIT1&) RICHEDIT

    ELSEIF CLICKED(BUTTON1&) BUTTON Cursor Position

        position

    ELSEIF CLICKED(BUTTON2&) BUTTON Prog. Ende

        ENDE% = 1

    ENDIF

    position

ENDWHILE

End

Saludo Manfred
 
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
21.03.2010  
 




Thomas
Freier
¿Puede du con GetMessage leben en lugar de WAITINPUT?
Oder por SubProc.
 
Gruß Thomas
Windows XP SP2, XProfan X2
21.03.2010  
 




Detlef
Jagolski
¡Hola,

Teste el veces.
KompilierenMarcaSeparación
 $P+
SET("ERRORLEVEL",0)
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
-Header-Dateien------------------------------------------------------
 $H Windows.ph
 $H RichEdit.ph
 $H Structs.ph
 $H Messages.ph
-Strukturen----------------------------------------------------------
DECLARE RICHEDIT1&
DECLARE BUTTON1&
DECLARE BUTTON2&
Declare CharRange#
Struct CharRange = ~CHARRANGE
Dim CharRange#, CharRange
-Funktion GetCursorPosX (Spalte)-------------------------------------

SubClassProc

    If SubClassMessage(RICHEDIT1&, ~WM_CHAR)

        position

    EndIf

EndProc

Proc GetCursorPosX

    SendMessage(RICHEDIT1&, ~EM_EXGETSEL, 0, CharRange#)
    Return Int(CharRange#.cpMax& - (SendMessage(RICHEDIT1&,
    ~EM_LINEINDEX, SendMessage(RICHEDIT1&, ~EM_EXLINEFROMCHAR, 0,
    CharRange#.cpMin&), 0)) + 1)

EndProc

-Funktion GetCursorPosY (Zeile)--------------------------------------

Proc GetCursorPosY

    SendMessage(RICHEDIT1&, ~EM_EXGETSEL, 0, CharRange#)
    Return Int(SendMessage(RICHEDIT1&, ~EM_EXLINEFROMCHAR, 0,
    CharRange#.cpMin&) + 1)

EndProc

Proc position

    SetText Sz&, 0, " Zeile: " + @Str$(GetCursorPosY())
    SetText Sz&, 1, " Spalte: " + @Str$(GetCursorPosX())

EndProc

WINDOWSTYLE 539
WINDOWTITLE "Test"
WINDOW (%maxx/2 - 280/2),(%maxy/2 - 320/2) - 280,320
SET("TRUECOLOR",1)
DECLARE ENDE%
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
Hier kann ggf. Ihr Menü hin
RICHEDIT1& = CREATE("RICHEDIT",%HWND,"",0015,0015,0245,0175)
BUTTON1& = CREATE("BUTTON",%HWND,"Cursor Position",0020,0215,0100,0030)
BUTTON2& = CREATE("BUTTON",%HWND,"Prog. Ende",0150,0215,0100,0030)
-----------------------------Statuszeile------------------------------
Declare L#,Sz&
Dim L#, 12 Long-Bereich für 3 Felder (3 * 4 Bytes)
Long L#,0 = 75, 195, -1 Maße der einzelnen Statusfelder
Sz& = @Create("StatusWindow",%HWND,"",3,L#) StatusWindow erzeugen
SetText Sz&, 0, " Zeile:" Feld1 mit Text bestücken
SetText Sz&, 1, " Spalte:" Feld2 mit Text bestücken
SetText Sz&, 2, Date$(0) Feld3 mit Text bestücken
---------------------------------------------------------------------
SETFOCUS(%HWND)
REPAINT
SubClass RICHEDIT1&,1

WHILENOT ENDE%

    WAITINPUT

    If %KEY=2

        ENDE% = 1

    ELSEIF %KEY=4

        SETWINDOWPOS Sz& = 0,0 - 0,0;0

    ELSEIF CLICKED(RICHEDIT1&)RICHEDIT

    ELSEIF CLICKED(BUTTON1&)BUTTON Cursor Position

        position

    ELSEIF CLICKED(BUTTON2&)BUTTON Prog. Ende

        ENDE% = 1

    ENDIF

    position

ENDWHILE

Dispose CharRange#
SubClas
RICHEDIT1&,0 End
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
21.03.2010  
 




Manfred
Barei
Gracias Detlef, así funktioniert lo.

Saludo Manfred
 
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
21.03.2010  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.171 Views

Untitledvor 0 min.
Frank Vorholzer20.04.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie