Français
Forum

Erledigt: la ligne et Spalte aktualisieren

 

Manfred
Barei
Salut,

je hoffe es peux mir einer aider, vieleicht sogar Stefan vite.
(Probiere avec deinem Code RichEdit: Cursor abfragen)

je probiere et probiere et bekomme es simple pas hin , und dir tout autor, dans qui Statuszeile soll
qui Anzeige qui Zeilen et Spaltenanzahl laufend aktualisiert volonté si je im Editorfeld Eingaben fais. Habe déjà einiges probiert cependant klappt es seulement si je sur den Butten (Cursor-Position) Clicke.
Siehe Code:
KompilierenMarqueSéparation
 $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

Fin

Salut 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
peux du avec GetMessage vivre statt WAITINPUT?
ou bien per SubProc.
 
Gruß Thomas
Windows XP SP2, XProfan X2
21.03.2010  
 




Detlef
Jagolski
Salut,

Teste cela la fois.
KompilierenMarqueSéparation
 $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 Fin
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
21.03.2010  
 




Manfred
Barei
merci Detlef, so funktioniert es.

Salut 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  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.191 Views

Untitledvor 0 min.
Frank Vorholzer20.04.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie