Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 20:12

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



GuiCtrlCreateEDIT und $ES_AUTOVSCROLL

Discussion on GuiCtrlCreateEDIT und $ES_AUTOVSCROLL within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2008
Posts: 99
Received Thanks: 19
GuiCtrlCreateEDIT und $ES_AUTOVSCROLL

$ES_AUTOVSCROLL ist doch eigendlich die Möglichkeit einem EDIT zusagen: Wenn der Paltz zuende ist, scrolle automatisch weiter. Oder?

Denn er scrollt nicht automatisch wieder bis ans Ende des Edits.

Oder heißt dieser Style anders? Oder gibt es überhaupt einen Style dazu?

MfG WaYnE
WieMeinen is offline  
Old 07/30/2010, 16:59   #2
 
elite*gold: 0
Join Date: Mar 2010
Posts: 79
Received Thanks: 32
Automatically scrolls text up one page when the user presses the ENTER key on the last line. Erklärung von microsoft.
luckkylooser is offline  
Old 07/30/2010, 17:33   #3
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,147
Quote:
Originally Posted by oOWaYnEOo View Post
Denn er scrollt nicht automatisch wieder bis ans Ende des Edits.
Was möchtest du damit sagen?
Das Editfeld scrollt automatisch weiter, dafür braucht man keine Zusätze.

PHP Code:
GUICreate("GUI"170145)
GUICtrlCreateEdit(""1010150125)
GUISetState()

Do
    
Sleep(10)
Until GUIGetMsg() == -
KDeluxe is offline  
Old 07/30/2010, 18:02   #4
 
elite*gold: 0
Join Date: Jun 2008
Posts: 99
Received Thanks: 19
PHP Code:
GUICtrlCreateEdit(""37323318573,BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN,$WS_VSCROLL), 0
Dieses Edit scrollt nicht automatisch
WieMeinen is offline  
Old 07/30/2010, 18:37   #5
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,147
Dafür brauhcst du "$WS_HSCROLL" und "$WS_VSCROLL".
Durch "$ES_READONLY" werden deine Eingaben aber blockiert, deswegen scrollt nichts automatisch mit (wie auch?).

PHP Code:
#include <EditConstants.au3>
#include <WindowsConstants.au3>


Local $Text
For $i 0 To 100000
    $Text 
&= $i ;sinnloser Text
Next

GUICreate
("GUI"170145)
;
GUICtrlCreateEdit(""1010150125)
GUICtrlCreateEdit($Text1010150125BitOR($WS_HSCROLL$WS_VSCROLL$ES_READONLY$ES_WANTRETURN))
GUISetState()

Do
    
Sleep(10)
Until GUIGetMsg() == -
KDeluxe is offline  
Old 07/30/2010, 19:18   #6
 
elite*gold: 0
Join Date: Jun 2008
Posts: 99
Received Thanks: 19
Er scrollt doch garnicht automatisch...

Is das so schwer?

Der EDIT bekommt nacheinander neuen Input und dadurch wird es immer länger. Bis es dann zum ende des Feldes kommt. Dann soll immer der neueste Input ganz unten stehen.
Also AUTOMATISCH.

Im Moment geht er außerhalb des Edits und man kann MANUELL nach unten scrollen.
WieMeinen is offline  
Old 07/30/2010, 19:45   #7
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,254
PHP Code:
GUICtrlSetData($edit1, @CRLF "blaablaa.bzw.dein$Input&@CRLFGUICtrlRead ($edit1)) 
so wird, das erste was in der input steht, immer ganz unten in der edit stehen, und die danach folgenden immer zwei zeilen drüber.

mit dem auto scroll hab ich nicht getestet,,,
omer36 is offline  
Old 07/30/2010, 21:11   #8
 
elite*gold: 0
Join Date: Jun 2008
Posts: 99
Received Thanks: 19
Ja das is mir klar. Ich will nur wissen wie man die EDITstyle so ändern kann, dass der letzte Eintrag immer ganz unten steht egal wieviel einträge es gibt und das alle Einträge noch da stehen

Mal ein Auszug:

PHP Code:
$ProgressEdit_UNCUT GUICtrlCreateEdit(""37323318573,BitOR($WS_HSCROLL$WS_VSCROLL$ES_READONLY$ES_WANTRETURN), 0)
GUICtrlSetFont(-184000"Arial")
[...]
GUICtrlSetData($ProgressEdit_UNCUT,GUICtrlRead($ProgressEdit_UNCUT) & @CRLF "Downloading Bleeding_GLB2_tar.troybin"
Damit wird jeder neue Eintrag unter die alten geschrieben. Nur wenn die Einträge das Ende erreichen, scrollt das EDIT nicht automatisch nach unten um wieder am neuesten Eintrag zu sein.
WieMeinen is offline  
Old 07/30/2010, 21:39   #9
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,147
Dann schreibe den neusten Eintrag immer oben und dein Problem ist gelöst.
Spätestens nachdem du "GUICtrlSetData" benutzt hast, ist wieder der erste Text sichtbar.
Würdest du das Edit jetzt scrollen lassen, würde es schlichtweg scheiße aussehen.

Hier mal ein Beispiel:
PHP Code:
#include <EditConstants.au3>
#include <WindowsConstants.au3>

Local $Text
For $i 0 To 1000
    $Text 
&= $i & @CRLF
Next

$GUI 
GUICreate("GUI"570545)
$Edit GUICtrlCreateEdit($Text1010550525BitOR($WS_HSCROLL$WS_VSCROLL$ES_READONLY$ES_WANTRETURN))
GUISetState()

For 
$i 1001 To 1010
    $Text 
$i & @CRLF
    GUICtrlSetData
($EditGUICtrlRead($Edit) & $Text)
    
ControlClick($GUI"""[CLASS:Edit; INSTANCE:1]""left"$i540495)
    
Sleep(500)
Next 
Ist zwar nicht die beste Lösung, soll aber auch nur ein Beispiel sein.
KDeluxe is offline  
Old 07/30/2010, 22:07   #10
 
elite*gold: 0
Join Date: Jun 2008
Posts: 99
Received Thanks: 19
Scheiße?? Was is daran scheiße? Einfach der letzte Eintrag am eine und oben drüber immer die älteren und ganz oben der älteste. Was is daran bitte Scheiße, so is das bei allen Installationen und sowas.
WieMeinen is offline  
Old 07/31/2010, 09:54   #11
 
bassbanane's Avatar
 
elite*gold: 116
Join Date: Oct 2007
Posts: 677
Received Thanks: 248
Hatte das Problem auch schon einmal
Ich habe das Problem so gelöst.
In der Schleife, in der er in mein Edit Field reingeschrieben hat, nach jedem schreiben diesen Code angefügt:
PHP Code:
_GUICtrlEdit_LineScroll($Edit0_GUICtrlEdit_GetLineCount($Edit)) 
Also sprich:
PHP Code:
do
_GUICtrlEdit_AppendText($Edit1, @CLRF&"Neue Zeile")
_GUICtrlEdit_LineScroll($Edit10_GUICtrlEdit_GetLineCount($Edit))
$x=$x+1
until $x
==
So in etwa sieht es dann aus. Und mit dem AppendText hält sich der Code auch noch extra etwas kleiner
bassbanane is offline  
Old 07/31/2010, 15:49   #12
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,147
Quote:
Originally Posted by oOWaYnEOo View Post
Scheiße?? Was is daran scheiße? Einfach der letzte Eintrag am eine und oben drüber immer die älteren und ganz oben der älteste. Was is daran bitte Scheiße, so is das bei allen Installationen und sowas.
Noch nie ein Setup gesehen, bei dem irgendetwas automatisch gescrollt wird.

Naja, hier noch mal bassbananes Lösung in meinem Beispiel:
PHP Code:
#include <EditConstants.au3>
#include <GuiEdit.au3>
#include <WindowsConstants.au3>

Local $Text
For $i 0 To 1000
    $Text 
&= "Text " $i & @CRLF
Next

$GUI 
GUICreate("GUI"570545)
$Edit GUICtrlCreateEdit($Text1010550525BitOR($WS_HSCROLL$WS_VSCROLL$ES_READONLY))
GUISetState()

For 
$i 1001 To 1010
    $Text 
"Text " $i & @CRLF
    _GUICtrlEdit_AppendText
($Edit$Text)
    
_GUICtrlEdit_LineScroll($Edit0_GUICtrlEdit_GetLineCount($Edit))
    
Sleep(500)
Next 
KDeluxe is offline  
Old 08/01/2010, 16:00   #13
 
DraaaKe's Avatar
 
elite*gold: 99
Join Date: May 2009
Posts: 1,020
Received Thanks: 400
Ihr denkt mal wieder alle in die falsche Richtung^^

Als erstes bei der editbox: GuiCtrlCreateEdit("Am Anfang steht jetz das" & @CRLF,8,8,200,300, BitOR($WS_VSCROLL,$ES_READONLY,$ES_AUTOVSCROLL))

Dann bei jedem stück wo was in die editbox dazu geschrieben werden soll:
GuiCtrlSetData($EditBox,"Das was dazu kommt" & @CRLF, True) Das True steht dafür, das der alte Text da bleibt, und der neue darunter geschrieben wird.

So, ist die EditBox ganz unten,s crollt sie von alleine weiter...

Der Mod und die anderen sind daran gescheitert, da die EditBox immer den Anfang des neu geposteten Texts anzeigt und WENN MÖGLICH auch den Schluss. Aber weil ihr ja immer alles neu rein schreiben lässt und nicht ein true (oder eine 1) rein setzt scrollt er nicht runter:

Zitat von dem Mod:
Readonly blockt die EditBox und daher scrollt es nicht automatisch runter

xDDD schon lange nicht mehr so gelacht. Was heist den readonly? das blockt doch nix auser das reinschreiben oder ersetzen des inhalts!!!!

Sie scrollt wegen dem oben genannten Grund nicht runter.

PS: Wieso HSCROLL? interessiert doch keinen was schräg passiert oder?
DraaaKe is offline  
Thanks
1 User
Old 08/03/2010, 14:50   #14
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,147
Ach was... Ich habe das auf die manuelle Eingabe bezogen.

Wenn du lachen möchtest kannst du in deine Signatur gucken, fängt schon
damit an, dass man für einen Vergleich "==" benutzt und nicht "=" (so etwas
müssen AutoIt Benutzer ja nicht wissen).

Im übrigen ist das Beispiel von bassbanane besser, wenn du deine mit seiner
Methode vergleichst kommst du sogar auf die Idee wieso das so ist.
KDeluxe is offline  
Old 08/14/2010, 09:49   #15
 
DraaaKe's Avatar
 
elite*gold: 99
Join Date: May 2009
Posts: 1,020
Received Thanks: 400
Quote:
Originally Posted by KillerDeluxe View Post
Ach was... Ich habe das auf die manuelle Eingabe bezogen.

Wenn du lachen möchtest kannst du in deine Signatur gucken, fängt schon
damit an, dass man für einen Vergleich "==" benutzt und nicht "=" (so etwas
müssen AutoIt Benutzer ja nicht wissen).

Im übrigen ist das Beispiel von bassbanane besser, wenn du deine mit seiner
Methode vergleichst kommst du sogar auf die Idee wieso das so ist.
Ne das von bassbanane ist nur umständlicher gelöst. Funktionieren tut beides. So und für Vergleiche nutzt man in älteren Autoit Versionen == aber in neueren wurde das eben abgekürzt damit man auch nur = schreiben kann.

PS: das hat hier mal jemand aus Fun gepostet und ich hab's in meine Sig. Gepackt.

Wenn du lieber umständliche Lösungen haben möchtest.... Gerne aber sag nich das meins falsch is ohne dich vorher zu informieren!
DraaaKe is offline  
Reply




All times are GMT +2. The time now is 20:12.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.