Deutsch
Forum

Frage zu Richedit

 

Timotheus
Noch eine Frage ,

Wie kann man in einem Richedit einen waagerechten Scrollbalken setzen, oder wenigstens den Zeilenumbruch ausschalten?

Timo
 
02.10.2004  
 



Hallo Timo...
Mit RichEdit Version 1.0 gibt es da tatsächlich heftige Probleme. Wenn das Programm aber nicht unbedingt auf jedem Windows95 System laufen soll, müßte das aber so funktionieren:
KompilierenMarkierenSeparieren
WINDOWSTYLE 31+512
WINDOWTITLE "RichEdit"
WINDOW 0,0-640,440
Declare RichEdit&,DLL_HDL&
DLL_HDL&=@UseDLL($SYSPATH+"RICHED20.DLL")
LET RichEdit&=@Control("RichEdit20A","",$40000000+$10000000+4+$1000+
 $800000+$200000+$100000,20,20,300,300,%HWND,2112,%HINSTANCE)

whilenot %MENUITEM=-2

    WAITINPUT

wend

@DESTROYWINDOW(RichEdit&)
FREEDLL DLL_HDL&

Habs bislang aber nur unter Windows98 getestet...
 
05.10.2004  
 




Frank
Abbing
Hi,

[quote:1ad7ee741b]$40000000+$10000000+4+$1000+$800000+$200000+$100000[/quote:1ad7ee741b]
In diesem Fall geht es ja gut. Aber erfahrene Programmierer sollten sich unbedingt angewöhnen, Flags nicht zu addieren, sondern mit OR zu verknüpfen...
Kann ansonsten zu einer bösen Fehlerquelle werden.
 
05.10.2004  
 



Hallo Frank....

Erfahrener Programmierer? Hoffentlich meinst du damit nicht mich...
Sehe mich allerhöchstens als Lehrling.
Trotzdem finde ich das, was du da sagt, sehr interessant. Ich hatte bislang noch keine Probleme bei der Verknüfung von Flags mit +, kann dir aber ein Beispiel zeigen, bei der die Verknüfung mit @or ziemlich derbe in die Hose geht (eigentlich das einzige Beispiel mit or, das ich jemals getestet habe). Mit + haut der selbe Quelltext scheinbar wunderbar hin. Wo steht das, daß man Flags mit or verknüpft? Bin, wie gesagt, eher ein Lehrling als ein Experte und Erfahrung ist immer relativ....
 
06.10.2004  
 




Michael
Dell
Hallo Andreas,

wenn ich mich recht erinnere müssen Flags mit binärem Oder (also | ) verknüpft werden
das in vielen Fällen zu ähnlichen oder identischen Ergebnissen führt wie das Addieren aber
eben nicht immer. Das logische Oder (also Or ) kann ähnlich wie Addieren und auch Subtrahieren wirken und ein ziemliches Chaos anrichten.

Oh man, hoffentlich hab ich das jetzt richtig erklärt sonst brauch ich mich beim nächsten
Klassentreffen gar nicht erst blicken lassen.

Gruß

Michael...
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
06.10.2004  
 



Hallo Frank, hallo Michael...

Ich bin zwar im Moment in der Nachtschicht und deshalb nicht so ganz aufnahmefähig - aber ist es nicht so, das Flags sowieso immer nur in binären Zweierpotenzen angegeben werden?

Also:
Erster Flag 00000001=1
zweiter Flag 00000010=2
dritter Flag 00000100=4
vierter Flag 00001000=8

Ist es da nicht Jacke wie Hose, also ganz egal, ob man addiert oder mit binärem ODER verknüft? Ein unterschiedliches Ergebnis würde es doch nur geben, wenn ein Flag z.B. 11, also 3 wäre - das wäre dann doch aber doch kein Flag, oder? Wie sollte man einen Flagwert 3 denn zurückrechnen?? Wie gesagt, bin absolut kein Experte aber eure Einwände gehen für mich im Augenblick irgendwie ziemlich weit an der Logik vorbei ...
 
06.10.2004  
 




Michael
Dell
Hallo Andreas,

ich denke es geht mehr darum fehler des Programierers zu vermeiden.

z.B.: Du gibst aus versehn zweimal das gleiche Flag an:

Addieren
0001
0001
-------
0010 = 2

Ver- Odern
0001
0001
-------
0001 = 1

So was is ja nicht grad erwünscht kann aber mal vorkommen.

Kann sein das ich mich Irre, bin vom Experten weit entfernt.

Michael...
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
06.10.2004  
 



Hallo Michael!

Der gleiche Gedanke ist mir gestern gegen 23.00Uhr auch gekommen (manchmal brauche ich etwas länger zum Schalten). In der Windows.PH stehen unter anderem Flags, die aus mehreren Flags zusammengesetzt sind. Wenn man hier die schon enthaltenen Flags auch noch addiert (weil man keine Ahnung hat, von dem was man da tut), kommt es zwangsläufig zu einem Fehler. Ein OR schluckt dagegen solchen Mist bedenkenlos und man bekommt trotzdem noch das richtige Ergebnis.

@Frank:
Wenn du mir vorschlägts besser Flags mit OR zu verknüpfen, hast du vielleicht den Eindruck, daß ich gar nicht weiß was ich da tue? :biggrin:

Eine Addition von Flags ist doch viel übersichtlicher als ein OR oder ein | im Quelltext. Ein daraus entstandener Wert läßt sich ziemlich problemlos nachvollziehen - wie sieht das aber mit OR oder | aus? Ich denke mal, nicht jeder kennt sich im Hexadezimal und Binärcode so gut aus, das er sofort kapiert was da passiert - oder sehe ich das falsch?? Ich könnte das auf Anhieb jedenfalls nicht erkennen...
 
07.10.2004  
 




Frank
Abbing
Hi,

[quote:9978a1c21f]wenn ich mich recht erinnere müssen Flags mit binärem Oder (also | ) verknüpft werden
das in vielen Fällen zu ähnlichen oder identischen Ergebnissen führt wie das Addieren aber
eben nicht immer. Das logische Oder (also Or ) kann ähnlich wie Addieren und auch Subtrahieren wirken und ein ziemliches Chaos anrichten. [/quote:9978a1c21f]
Genau, das binäre OR ist gemeint.

[quote:9978a1c21f]@Frank:
Wenn du mir vorschlägts besser Flags mit OR zu verknüpfen, hast du vielleicht den Eindruck, daß ich gar nicht weiß was ich da tue?

Eine Addition von Flags ist doch viel übersichtlicher als ein OR oder ein | im Quelltext. Ein daraus entstandener Wert läßt sich ziemlich problemlos nachvollziehen - wie sieht das aber mit OR oder | aus? Ich denke mal, nicht jeder kennt sich im Hexadezimal und Binärcode so gut aus, das er sofort kapiert was da passiert - oder sehe ich das falsch?? Ich könnte das auf Anhieb jedenfalls nicht erkennen... [/quote:9978a1c21f]
Ob du + oder | verwendest, beides sieht gleich gut aus und ist gleich aufwendig zum Eingeben. Du kannst ja privat das + ruhig verwenden, aber wenn du öffentlich etwas postest, an dem Neulinge noch herumwerkeln wollen/sollen, würde ich dir das | empfehlen.
Es wurde ja schon gesagt, das im Besonderen kombinierte Flags ansonsten Probleme bereiten.
 
07.10.2004  
 




Timotheus
Hallo AH,

Danke, dein Beispiel klappte zuerst gut, doch dann bemerkte ich dass diese Richedit gar keine ist! In sie passen auch nur 32KB.

Timo
 
13.10.2004  
 




Frank
Abbing
Hallo Timo,

nimm diese Zeile mal mit in deinen Code, nachden dein Control erzeugt wurde:
KompilierenMarkierenSeparieren
SendMessage(richedit&,$435,0,$7ffffff0)  EM_ExLimitText

Standardmäßig ist der Text in einem Richedit auch auf 32 KB voreingestellt. Die Message erhöht den Speicher auf das Maximum.
 
13.10.2004  
 



Hallo Timo...

Ein Richedit hat, wenn nichts anderes festgelegt wird, eine Standartgröße von 32KB.
Folgendes müßte Abhilfe schaffen:
KompilierenMarkierenSeparieren
WINDOWSTYLE 31+512
WINDOWTITLE "RichEdit"
WINDOW 0,0-640,440
Declare RichEdit&,DLL_HDL&
DLL_HDL&=@UseDLL($SYSPATH+"RICHED20.DLL")
LET RichEdit&=@Control("RichEdit20A","",$40000000+$10000000+4+$1000+$800000+$200000+$100000,20,20,300,300,%HWND,2112,%HINSTANCE)
@SENDMESSAGE(RichEdit&,$0400+53,0,$7FFFFFF0)

whilenot %MENUITEM=-2

    WAITINPUT

wend

@DESTROYWINDOW(RichEdit&)
FREEDLL DLL_HDL&

Noch ein Tipp...
Schau dir mal die Datei WINDOWS.PH im Profanverzeichnis im Ordner INCLUDES an . Suche mal nach WS_VISIBLE und den einzelnen Flags. Fällt dir was auf?
Danach ruf doch einmal die Datei RichEdit.PH auf. Suche dort mal nach cchTextLimitDefault.
Fällt dir dort was auf? Was steht etwas weiter darunter??
Jetzt suche mal nach + 53, rufe danach die Datei MESSAGES.PH auf und suche hier nach WM_USER.
...wenn du meine Tipps verstanden hast, kannst du nun beliebig eigene Controls erstellen. Wichtig dafür sind aber ein paar Englischkenntnisse - Realschule reicht dicke aus...
 
18.10.2004  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.645 Betrachtungen

Unbenanntvor 0 min.
Michael Hettner30.08.2021
RudiB.18.08.2021
Peter Max Müller13.11.2017
Wilfried02.06.2016
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie