Foro | | | | Timotheus | ¡Hola,
Yo bin neu hier, y habe una Problema.
Yo habe una MultieditBox por Control con un waagerechten Scrollbalken producido. Dann Yo me el otro incluso dran gebastelt, y en el möchte Yo entonces reagieren. Jetzt muss Yo aber wissen si el Cursor en el Medit al Anfang, al Ende oder bastante wo anders es, porque Yo sí el Scrollbalken größer oder kleiner hacer muss, si alguien el Entfernen Taste en el letzten Position drückt, oder en el ersten el Rückgängig Taste.
Como krieg Yo el fuera?
Timo |
| | | | |
| | Michael Dell | Hi,
el Multiedit producido el deseado Scrollbalken incluso, allerdings sólo si él benötigt se!
Usted necesidad also no extra.
Demo:
declarar med01&
cls
med01& = @Crear("MultiEdit",%HWnd,"",20,20,600,400)
SetFocus(med01&)
SendKey(med01&,35)
Sleep 1000
WhileLoop 0,30,1
SendString(med01&,"Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 ")
SendString(med01&,"Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2{ENTER}")
EndWhile
SendString(med01&,"{ENTER}Test- Beendet!!!!{ENTER}")
Sinestar encargado Equ(%Key,2) Or Equ(%Key,27)
WaitInput
EndWhile
End
Saludo
Michael |
| | | Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 28.08.2004 ▲ |
| |
| | Timotheus | ¡Hola Michael,
Mit el MultiEdit gehts sí no, porque Yo möchte el rechten Scrollbalken selber erzeugen, así I ihn reagieren kann, y el va glaube Yo sólo Control. Und el ScrollB muss el se en efecto bastante normal comportamiento puede, y deshalb muss Yo alles qué Windows sonst macht, selber hacer !
Und como bekomme Yo el con el ersten y letzten Position fuera?
Timo |
| | | | |
| | Michael Dell | ¡Hola Timotheus,
du kannst auch por SendMessage el Cursor- Position ermitteln y lo son auch Messages para el Scrollbalken.
Cursorpos en el MultiEdit: (Autor: Uwe „Pascal“ Niemeier [...] )
**********************************
window 50,50-500,300
declarar Editar%,Línea%,Signo%,Gesamt&
let Editar%=createmultiedit(%hwnd,"",50,50,200,200)
mientras que 1
getmessage
sendmessage(Editar%,176,addr(Gesamt&),0)
locate 1,1
let Signo%=sub(Gesamt&,sendmessage(Editar%,187,-1,0))
let Línea%=sendmessage(Editar%,201,-1,0)
locate 1,1
imprimir "Der Cursor befindet se hinter Zeichen",Signo%,"in Zeile",Línea%," "
endwhile
**********************************
Hier un hilo el dir auch todavía helfen kann: [...]
Saludo
Michael |
| | | Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 28.08.2004 ▲ |
| |
| | Timotheus | Gracias,
el es genau el Yo meinte!
Aber könntest du auch todavía esta Scrollbalken Messages escribir. Weil entonces bräuchte Yo auch no alles incluso hacer, y podría simplemente el rechten Scrollbalken abfragen.
Timo |
| | | | |
| | Michael Dell | Como gibst ya una schönes Ejemplo de Andreas Miethes - Control.hlp:
Scroll- Beipiel de Control.hlp
Autor: Andreas Miethe
HP: http://www.ampsoft.de (Control.exe)
Scroll- Messages
NAME WERT PARAMETER
SBM_SETPOS $00E0 N3 = Position , N4 = Neuzeichnen sí(1) oder nein(0)
SBM_GETPOS $00E1 N3=0, N4=0
SBM_SETRANGE $00E2 N3=Minimum , N4=Maximum
SBM_SETRANGEREDRAW $00E6
SBM_GETRANGE $00E3 N3=Minimum , N4=Maximum
SBM_ENABLE_ARROWS $00E4
SBM_SETSCROLLINFO $00E9
SBM_GETSCROLLINFO $00EA
Declarar Ende%,ScrollHorz%,Scrollvert%,Button%
Declarar ScrollHX%,ScrollHY%,ScrollWX%,ScrollWY%
Declarar ButtonrangeX%,ButtonrangeY%
Declarar Buttonx%,Buttony%,Buttonh%,Buttonw%
settruecolor 1
cls rgb(192,192,192)
Let Buttonx% = 10 links oben
Let Buttony% = 60 rechts oben
Let Buttonh% = 24 Hoehe
Let Buttonw% = 80 Breite
Let ButtonrangeX% = sub(width(%hwnd),130) a hierhin darf se el Button en X bewegen
Let ButtonrangeY% = sub(height(%hwnd),30) a hierhin darf se el Button en Y bewegen
Let ScrollHX% = 0 links Scrollbar Horizontal
Let ScrollHY% = sub(Width(%hwnd),20) Breite Scrollbar Horizontal
Let ScrollWX% = sub(Width(%hwnd),20) oben Scrollbar Vertikal
Let ScrollWY% = sub(Height(%hwnd),20) Hoehe Scrollbar Vertikal
Let ScrollHorz% = @Control("Scrollbar","",$50000000,0,0,ScrollWX%,20,%hwnd,1000,%Hinstance)
Let ScrollVert% = @Control("Scrollbar","",$50000001,ScrollHY%,20,20,ScrollWY%,%hwnd,1001,%Hinstance)
Let Button% = @Control("Button","Ende",$50008000,Buttonx%,Buttony%,Buttonw%,Buttonh%,%hwnd,1002,%Hinstance)
SendMessage(ScrollHorz%,$00E2,ButtonX%,ButtonrangeX%) Scrollweite para Scrollbar horizontal
SendMessage(ScrollVert%,$00E2,ButtonY%,ButtonrangeY%) Scrollweite para Scrollbar vertikal
Let ende%=0
whilenot ende%
Waitinput
if getfocus(Button%)
Let Ende%=1
Endif
Buttonposition adaptar
setwindowpos Button% = SendMessage(ScrollHorz%,$00E1,0,0),SendMessage(Scrollvert%,$00E1,0,0)-80,24;0
wend
End
© Andreas Miethe , Bielefeld , 1998
Hier se una Button mittels Scrollbalken movido!
Wo du el Control.hlp findest es en el Ejemplo como el deseado Messages.
P.S.: Wenn du veces otra vez Beipiele suchts una tolle sortierte Linkliste findest du hier: [...]
Sodele. Hoffe el hilft!
Schönen Sonntag Euch allen...
Michael |
| | | Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 29.08.2004 ▲ |
| |
| | Timotheus | Es no bastante el Yo búsqueda. Eigentlich weiß Yo ahora ya alles. Aber hay una Möglichkeit el rechten Scrollbalken en uno Multiedit(oder Control) abzufragen? Dann bräuchte Yo no siempre alles abzufragen y a positionieren si en el Multiedit algo eingegeben se
Timo |
| | | | |
| | Michael Dell | Ok,
y nochn Ejemplo:
Autor: Michael Dell
ScrollBar Min, Max y Pos Info
Def gScrollPos(2) !"user32.dll","GetScrollPos"
Def gScrollRange(4) !"user32.dll","GetScrollRange"
Declarar med01&,scrMin&,scrMax&
Aktuelle Position des Scrollbalken
gScrollPos(hndl&,0) SB_HORZ = 0
gScrollPos(hndl&,1) SB_VERT = 1
Proc gScrollMinMax
Min y Max el Scrollbar ermittel
Parámetros hndl&,HorVer% HorVer%=0 -> Horizontal / HorVer%=1 -> Vertikal
gScrollRange(hndl&,HorVer%,Addr(scrMin&),Addr(scrMax&))
ENDPROC
Proc ZeigeScrollMinMaxPos
Parámetros HorVer%
gScrollMinMax(med01&,HorVer%)
If HorVer%
MessageBox(Add$(Add$(Add$("Min=",Str$(scrMin&)),Add$(" Max=",Str$(scrMax&))),Add$(" Pos=",Str$(gScrollPos(med01&,HorVer%)))),"Vertikal (Min Max Pos):",0)
Más
MessageBox(Add$(Add$(Add$("Min=",Str$(scrMin&)),Add$(" Max=",Str$(scrMax&))),Add$(" Pos=",Str$(gScrollPos(med01&,HorVer%)))),"Horizontal (Min Max Pos):",0)
EndIf
SetFocus(med01&)
ENDPROC
cls
med01& = @Crear("MultiEdit",%HWnd,"",20,20,600,400)
SetFocus(med01&)
SendKey(med01&,35)
WhileLoop 0,30,1
SendString(med01&,"Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 ")
SendString(med01&,"Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2{ENTER}")
EndWhile
SendString(med01&,"{ENTER}Test- Beendet!!!!{ENTER}")
ZeigeScrollMinMaxPos 0
ZeigeScrollMinMaxPos 1
Sinestar encargado Equ(%Key,2) Or Equ(%Key,27)
WaitInput
ZeigeScrollMinMaxPos 0
ZeigeScrollMinMaxPos 1
EndWhile
End
Sodele, el wärs... :-P
Michael |
| | | Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 29.08.2004 ▲ |
| |
| | Timotheus | Yo habe ni neue Cuestión, y yo denke el ellos auch hier rein a letztn Fragen past:
Como kriege Yo el Zeilennummer el obersten Línea el en uno Multiedit a sehen está fuera?
Timo |
| | | | |
| | | ¡Hola Timotheus...
So tal vez?
Windowstyle 31
Windowtitle "Erste sichtbare Línea en el Multiedit"
Ventana 0,0-640,440
Declarar EDIT&,Button&,Zeile&
LET EDIT&=@createmultiedit(%HWND,"",10,10,300,300)
LET BUTTON&=@CREATEBUTTON(%HWND,"Erste sichtbare Línea?",10,330,300,30)
ADDFONTS
@Movelisttoedit(EDIT&)
Mientras que 0=0
Waitinput
IF @GETFOCUS(Button&)
LET ZEILE&=@SENDMESSAGE(EDIT&,$00CE,0,0) Index el Línea erfragen
@MESSAGEBOX(@ADD$("Erste sichtbare Línea: ",@STR$(@int(ZEILE&+1))),"Ergebnis",64)
ENDIF
wend
|
| | | | |
| | Michael Dell | Hi Personas,
ausgehend de mi letzten Ejemplo, (Maximale Zeilenzahl + 1) - ScrollbalkenPos. Como el Scrollbalken auch en su Größe el Anzeigbaren Zona en el Verhältnis para gesamten Inhalt entspricht.
Saludo Michael... |
| | | Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 26.09.2004 ▲ |
| |
| | Timotheus | | | | | |
|
RespuestaThemeninformationenDieses Thema ha 3 subscriber: |