Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan

XProfan Alles rund um die Programmiersprache XProfan.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Hamachi deinstallieren
Aufrufe: 58, Antworten: 5
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7670, Antworten: 187
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26970, Antworten: 4223
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50963, Antworten: 1397
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3361, Antworten: 128
Gehe zum ersten neuen Beitrag Pc lahmt plötzlich
Aufrufe: 186, Antworten: 6
Gehe zum ersten neuen Beitrag PC fährt nicht mehr hoch.
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 329, Antworten: 19
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 28, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 34, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22.04.2010, 21:44   #1 (Direktlink)
Ist öfter hier
 
Benutzerbild von Hallo1001
 
Registriert seit: 20.02.2009
Alter: 39
Beiträge: 71
Standard Frage zu Multi-Edit

Hallo alle zusammen!

Ich lasse mir einen Text in einem Multi-Edit anzeigen. Der Text nimmt dabei aber immer weiter zu, so dass ein Scrollbalken entsteht. Leider bleibt der Text am Anfang vom Multi-Edit stehen, sprich es wird nicht automatisch mit gescrollt. Was für Möglichkeiten habe ich den Text mit scrollen zu lassen, bzw. mir immer die letzte Zeile im Multi-Edit anzeigen zu lassen?

Danke im Voraus
LG Jens
Hallo1001 ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 22.04.2010, 22:13   #2 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Müsste mit der Message EM_SCROLLCARET und/oder EM_SETSEL gehen.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 22.04.2010, 23:12   #3 (Direktlink)
Ist öfter hier
 
Benutzerbild von Hallo1001
 
Registriert seit: 20.02.2009
Alter: 39
Beiträge: 71
Standard

Hallo Frank!

Zitat:
Müsste mit der Message EM_SCROLLCARET und/oder EM_SETSEL gehen.
Zu EM_SCROLLCARET finde ich nichts in der Hilfe und mit EM_SETSEL scrollt das Multi-Edit nicht weiter. Wie wendet man solche Befehl "richtig" an? Ich habe es mit "SendMessage(hMulti&,$00B1,0,0)" versucht, ohne Erfolg...

Gibt es noch eine andere Möglichkeit? Es muss auch nicht unbedingt eine Multi-Edit Feld sein. Die neuen Daten füge ich mit "Settext hMulti&,GetText$(hMulti&)+TmpDaten$" ein...

LG Jens
Hallo1001 ist offline   Mit Zitat antworten
Alt 23.04.2010, 06:39   #4 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Auf die Schnelle, probier mal SendMessage(hMulti&,$00B7,0,0). Das ist EM_SCROLLCARET. Für EM_SETSEL musst du bei beiden Parametern die Anzahl Zeichen -1 im Multiedit eingeben, also erst die Textlänge ermitteln.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 23.04.2010, 07:02   #5 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Bangkok
 
Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
Standard

Das müsste funktionieren zum scrollen

SendMessage(edit&,~EM_SCROLL,~SB_LINEUP,0)

und das sollte immer ans Ende des edits springen


Code:
 $H Messages.ph

Proc goLastRow
     Parameters Handle&
           SendMessage(handle&, ~EM_LINESCROLL, 0, ~EM_GETLINECOUNT)
           'SendMessage(handle&, ~EM_SETSEL, -1, 0) braucht man nur falls etwas markiert ist
     EndProc
    
    cls 
     var Edit& = @Create("Multiedit", %Hwnd, "", 10, 10, 300,400)
     WhileLoop 100
         SetText Edit&, GetText$(Edit&) + Str$(&Loop) + Chr$(13) + Chr$(10)
       EndWhile
       
   goLastRow(edit&)
waitinput
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai.
http://dieterzornow.gmxhome.de

Geändert von Bangkok (23.04.2010 um 07:22 Uhr)
Bangkok ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 23.04.2010, 14:52   #6 (Direktlink)
Ist öfter hier
 
Benutzerbild von Hallo1001
 
Registriert seit: 20.02.2009
Alter: 39
Beiträge: 71
Standard

Hallo!

Die Messages:
SendMessage(hMulti&,$00B7,0,0)
SendMessage(edit&,~EM_SCROLL,~SB_LINEUP,0)
funktionieren nicht.

Die Message:
SendMessage(handle&, ~EM_LINESCROLL, 0, ~EM_GETLINECOUNT)
funktionier wunderbar.

Meine Routine zum auslesen der COM-Schnittstelle sieht nun so aus:
Code:
Proc RS232_empfangen
Var TmpDaten$ = ""                       ' Neue Daten für Multi-Edit-Feld
Var TmpPuffer$ = "Müll"                  ' RS232 Puffer - Vorladen wegen While-Schleife
' RS232 einlesen
WhileNot TmpPuffer$ = ""                 ' Byte für Byte einlesen, bis RS232 Puffer leer ist
   TmpPuffer$ = ReadCom$(hRS232&,1)      ' ein Byte aus RS232 Puffer einlesen
   ComError(hRS232&)                     ' auftretende RS232 Fehler reseten
   CaseNot TmpPuffer$ = "" : TmpDaten$ = TmpDaten$+TmpPuffer$  ' wenn Daten vorhanden, dann abspeichern
EndWhile
' Neue Daten in Multi-Edit schreiben
IfNot TmpDaten$ = ""                     ' Wenn Daten vorhanden, dann...
   Settext hMulti&,GetText$(hMulti&)+TmpDaten$  ' Daten in Multi-Edit-Feld schreiben
   SendMessage(hMulti&, ~EM_LINESCROLL, 0, ~EM_GETLINECOUNT)  ' Scrollt zum Ende vom Multi-Edit-Feld
EndIf
EndProc
Danke für die schnelle Hilfe
LG Jens
Hallo1001 ist offline   Mit Zitat antworten
Alt 23.04.2010, 18:01   #7 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Schön, dass es jetzt funktioniert.

Bei EM_LINESCROLL solltest du den letzten Parameter auf -1 setzen. Den Wert, den du benutzt, ist nur die Message-Konstante 186. Hat dein Edit mal mehr Zeilen, wird es sonst wieder Probleme geben.

SendMessage(hMulti&,$00B7,-1,-1) müsste aber auch funktionieren. Bei Messages einfach mal näher in der Win32.hlp oder bei MSDN nachlesen. Steht eigentlich alles dort nachzulesen.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 23.04.2010, 18:17   #8 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Bangkok
 
Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
Standard

Bei EM_LINESCROLL steht aber nichts von -1, ich habe nichts gefunden lParam ist die Anzahl der Zeilen die vertikal gescrollt werden und ist das mehr als die Gesamtanzahl wird der letzte Eintrag hochgescrollt.

EM_LINESCROLL Message (Windows)
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai.
http://dieterzornow.gmxhome.de
Bangkok ist offline   Mit Zitat antworten
Alt 23.04.2010, 18:26   #9 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Zitat:
...wird der letzte Eintrag hochgescrollt.
Genau, ist doch auch das was er möchte. -1 ist $FFFFFFFF
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 23.04.2010, 18:28   #10 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Bangkok
 
Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
Standard

@Hallo1001
Bei der Message SendMessage(edit&,~EM_SCROLL,~SB_LINEUP,0) muss es natürlich auch SB_LINEDOWN heißen, dann wird eine Zeile abwärts gescrollt. Sorry habe mir den Fuß verstaucht und wahrscheinlich zu viele Tabletten genommen
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai.
http://dieterzornow.gmxhome.de
Bangkok ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 23.04.2010, 18:29   #11 (Direktlink)
Ist öfter hier
 
Benutzerbild von Hallo1001
 
Registriert seit: 20.02.2009
Alter: 39
Beiträge: 71
Standard

Hallo!

Die Messages:
SendMessage(hMulti&,~EM_LINESCROLL,0,-1)
SendMessage(hMulti&,$00B7,-1,-1)
funktionieren nicht...

Zitat:
Den Wert, den du benutzt, ist nur die Message-Konstante 186. Hat dein Edit mal mehr Zeilen, wird es sonst wieder Probleme geben.
Kann ich dann auch eine feste Zahl dafür eintragen z.B. 1000?

LG Jens
Hallo1001 ist offline   Mit Zitat antworten
Alt 23.04.2010, 18:31   #12 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Kann sein, dass nur 16-Bit Werte zulässig sind. Ist bei manchen API irgendwie noch so. in dem Fall probier mal $FFFE, oder wenn das nicht geht $777f. Das sollte aber sicher funktionieren. Feste Zahlen sind natürlich ok. Wenn dein Multiedit nie über 1000 Zeilen haben wird, kannst du auch 1000 einsetzen.
Hab die Sachen jetzt leider nicht testen können.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 23.04.2010, 18:35   #13 (Direktlink)
Ist öfter hier
 
Benutzerbild von Hallo1001
 
Registriert seit: 20.02.2009
Alter: 39
Beiträge: 71
Standard

SendMessage(hMulti&,~EM_SCROLL,~SB_LINEDOWN,0) funktioniert auch nicht...
Hallo1001 ist offline   Mit Zitat antworten
Alt 23.04.2010, 18:37   #14 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Bangkok
 
Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
Standard

Heute ist nicht mein Tag, richtig ist
SendMessage(handle&, ~EM_LINESCROLL, 0, SendMessage(handle&, ~EM_GETLINECOUNT, 0, 0))

dann springts immer zur letzten Zeile
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai.
http://dieterzornow.gmxhome.de
Bangkok ist offline   Mit Zitat antworten
Alt 23.04.2010, 18:40   #15 (Direktlink)
Ist öfter hier
 
Benutzerbild von Hallo1001
 
Registriert seit: 20.02.2009
Alter: 39
Beiträge: 71
Standard

SendMessage(hMulti&,~EM_LINESCROLL,0,$777f)
SendMessage(hMulti&,~EM_LINESCROLL,0,$FFFE)

Funktionieren beide...
Hallo1001 ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > XProfan

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
multi-monitor-graka-frage remon Hardware - Kaufempfehlungen 7 30.07.2009 11:00
Cool Edit Pro Attica Software - Allgemein 2 19.08.2007 17:24
Edit Funktion Abby über das Forum 13 19.07.2006 15:01
Edit ID3 Tag, wie? marioooosooo Allgemein 3 09.10.2005 20:07
Reg Edit macht nichts oggy Office-Anwendungen 5 22.03.2004 15:23



Alle Zeitangaben in WEZ +2. Es ist jetzt 12:10 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2