Frage zur EditorGadget
Frage zur EditorGadget
Hallo,
ich verwende EditorGadget für Texteingabe und möchte ein scrollen vertikal zulassen und ein horizontal verbieten.
Gibt es ein flag dafür (mit F1 habe ich kein gesehen)?
Ich möchte, dass bei Texteingabe ein Verhalten wie z.B. andere Text-Editor bei denen zulange Text in eine neue Zeile geschrieben wird a la Word oder OpenOffice.
Danke für ein Hinweis.
Gruß
Marcelx
ich verwende EditorGadget für Texteingabe und möchte ein scrollen vertikal zulassen und ein horizontal verbieten.
Gibt es ein flag dafür (mit F1 habe ich kein gesehen)?
Ich möchte, dass bei Texteingabe ein Verhalten wie z.B. andere Text-Editor bei denen zulange Text in eine neue Zeile geschrieben wird a la Word oder OpenOffice.
Danke für ein Hinweis.
Gruß
Marcelx
Win-10, PB 5.31 (Windows - x86)
Re: Frage zur EditorGadget
Es gibt eine Möglichkeit über API für Zeilenumbruch.
Code: Alles auswählen
SendMessage_(GadgetID(0), #EM_SETTARGETDEVICE, #Null, #True) ;#True oder 1 für an, #False oder 0 für aus
PB 4.00 | Windows XP Home SP3
Re: Frage zur EditorGadget
Wunderbar, das kann ich gleich ausprobieren.
Frage:
ist es Windows-spezial ?
über SendMessage_ habe ich im Forum schon gelesen, wo gibt es Doku dazu ?
Danke
Frage:
ist es Windows-spezial ?
über SendMessage_ habe ich im Forum schon gelesen, wo gibt es Doku dazu ?
Danke
Win-10, PB 5.31 (Windows - x86)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Frage zur EditorGadget
Ja, es handelt sich um Windows-API, das heißt unter Linux oder MacOS wird es so nicht funktionieren!marcelx hat geschrieben:Wunderbar, das kann ich gleich ausprobieren.
Frage:
ist es Windows-spezial ?
http://msdn.microsoft.com/en-us/library ... 85%29.aspxmarcelx hat geschrieben: über SendMessage_ habe ich im Forum schon gelesen, wo gibt es Doku dazu ?
Danke
oder http://www.realsource.de/index.php/down ... indows-sdk
wobei dann noch das aktuelle SDK von Microsoft zu installieren ist.
(aktuell: http://www.microsoft.com/downloads/en/d ... laylang=en )
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Frage zur EditorGadget
Super, so funktioniert.
Danke für die schnelle Antwort
Gruß
Marcelx
Danke für die schnelle Antwort
Gruß
Marcelx
Win-10, PB 5.31 (Windows - x86)
- Vera
- Beiträge: 928
- Registriert: 18.03.2009 14:47
- Computerausstattung: Win XP SP2, Suse 11.1
- Wohnort: Essen
Re: Frage zur EditorGadget
Hallo,
weil es gut in diesen Thread passt: zu Wordwrap gibt es eine Crossplattform-version von Guimauve und eine Mac-version von Shardik.
Hier erstere mit kleiner Ergänzung für's Menü mit Statusanzeige:
Grüße ~ Vera
weil es gut in diesen Thread passt: zu Wordwrap gibt es eine Crossplattform-version von Guimauve und eine Mac-version von Shardik.
Hier erstere mit kleiner Ergänzung für's Menü mit Statusanzeige:
Code: Alles auswählen
Enumeration
#Menu : #wrap : #edit
EndEnumeration
Global wstate = 1
text.s = Chr(34) +"Hello everyone, This is a small Procedure To Activate Or Deactivate the EditorGadget() wordwrap behaviour. The code work on Windows And Linux. Have Fun ! " +Chr(34) + " - Guimauve"
; <<<<<<<<<<Guimauve<<<<<<<<
Procedure EditWWrap(EditorID.l, State.l)
TextBuffer.s = GetGadgetText(EditorID)
If State = 1
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
SendMessage_(GadgetID(EditorID), #EM_SETTARGETDEVICE, #Null, 0)
CompilerCase #PB_OS_Linux
gtk_text_view_set_wrap_mode_(GadgetID(EditorID), #GTK_WRAP_WORD)
CompilerEndSelect
wstate = 0
SetMenuItemState(#Menu,#wrap,1)
ElseIf State = 0
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
SendMessage_(GadgetID(EditorID), #EM_SETTARGETDEVICE, #Null, $FFFFFF)
CompilerCase #PB_OS_Linux
gtk_text_view_set_wrap_mode_(GadgetID(EditorID), #GTK_WRAP_NONE)
CompilerEndSelect
wstate = 1
SetMenuItemState(#Menu,#wrap,0)
EndIf
SetGadgetText(EditorID, TextBuffer)
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<
If OpenWindow(0, 110, 110, 300, 200, "EditWWrap", #PB_Window_SystemMenu )
EditorGadget(#edit, 10, 25, 230, 130)
AddGadgetItem(#edit, -1, text)
CreateMenu(#Menu, WindowID(0))
MenuTitle("Menu")
MenuItem(#wrap," Wrap" +#TAB$ +"F4")
AddKeyboardShortcut(0,#PB_Shortcut_F4,#wrap)
Repeat
wwe = WaitWindowEvent()
Select wwe
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Menu
Select EventMenu()
Case #wrap : EditWWrap(#edit, wstate)
EndSelect
EndSelect
Until wwe = #PB_Event_CloseWindow
EndIf
Zuletzt geändert von Vera am 21.09.2010 18:11, insgesamt 1-mal geändert.
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
Re: Frage zur EditorGadget
Hallo Vera,
das ist super - das wäre meine nächste Frage gewesen (wie ist es mit Linux?)
Dazu (EditorGadget) habe ich noch zwei Fragen:
- wie schalte ich das vertikal Scrollen aus?
- wie kann ich die Anzahl der Zeilen begrenzen
(Anzahl der eingegeben Zeilen können kleiner/grösser als was in den Fenster passt)?
Danke und Gruß
MarcelX
das ist super - das wäre meine nächste Frage gewesen (wie ist es mit Linux?)
Dazu (EditorGadget) habe ich noch zwei Fragen:
- wie schalte ich das vertikal Scrollen aus?
- wie kann ich die Anzahl der Zeilen begrenzen
(Anzahl der eingegeben Zeilen können kleiner/grösser als was in den Fenster passt)?
Danke und Gruß
MarcelX
Win-10, PB 5.31 (Windows - x86)
- Vera
- Beiträge: 928
- Registriert: 18.03.2009 14:47
- Computerausstattung: Win XP SP2, Suse 11.1
- Wohnort: Essen
Re: Frage zur EditorGadget
Hallo marcelx,
freut mich
Um die Scrollbalken zu de/aktivieren, gibt's auch zwei Win-API Befehle:
SendMessage_(GadgetID(1), #EM_SHOWSCROLLBAR,#SB_HORZ,0) ; 1, bzw. #False / #True
SendMessage_(GadgetID(1), #EM_SHOWSCROLLBAR,#SB_VERT,0)
Die Lösungen für Linux kenne ich leider auch noch nicht. (da muß man mal suchen u. fragen)
siehe: EditorGadget border and scrollbars, darin geht's auch um Zeilenlänge u. Zeilenanzahl.
Hier noch ein weiterer Leckerbissen von Rashad: AutoResize EditorGadget [Windows]
Die Anzahl der Zeilen läßt sich bestimmt begrenzen, bzw. abfangen. Wenn sie aber die Fenstergröße überschreiten, läßt sich der Text auch bei deaktivierter Scrollbar via Mausrad oder Tastatur scrollen. (Mir ist nicht ganz klar, worauf Du abzielst.)
Gruß ~ Vera
freut mich

Um die Scrollbalken zu de/aktivieren, gibt's auch zwei Win-API Befehle:
SendMessage_(GadgetID(1), #EM_SHOWSCROLLBAR,#SB_HORZ,0) ; 1, bzw. #False / #True
SendMessage_(GadgetID(1), #EM_SHOWSCROLLBAR,#SB_VERT,0)
Die Lösungen für Linux kenne ich leider auch noch nicht. (da muß man mal suchen u. fragen)
siehe: EditorGadget border and scrollbars, darin geht's auch um Zeilenlänge u. Zeilenanzahl.
Hier noch ein weiterer Leckerbissen von Rashad: AutoResize EditorGadget [Windows]
Die Anzahl der Zeilen läßt sich bestimmt begrenzen, bzw. abfangen. Wenn sie aber die Fenstergröße überschreiten, läßt sich der Text auch bei deaktivierter Scrollbar via Mausrad oder Tastatur scrollen. (Mir ist nicht ganz klar, worauf Du abzielst.)
Gruß ~ Vera
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
Re: Frage zur EditorGadget
Hallo Vera,
erst mal, danke für alle Typs.
Was deine Neugier angeht, komme ich gern nach und versuche den Sinn zur erläutern:
Da kommt ein lange Satz:
Will ich, dass auf eine Seite mehre Eingaben (Radio-Button, .. Text ...) den platz so anlegen, das alles drauf passt,
spare ich an der Höhe von Text-Eingabe-Fenster.
Beim Drucken habe ich z.B. bis max 10 Zeilen vorgesehen für ein bestimmte Texteingabe.
Das bedeutet, dass maximal bis zur 10 Zeilen als Text eingegeben werden darf.
Da im Durchschnitt 5 Zeilen verwendet werden, mache ich die Höhe für 5 Zeilen und, weil es scrollbar ist, begrenze ich die Eingabe auf 10 Zeilen.
Es gibt auch Textfelder für die 2 Zeilen vorgesehen sind. Dann reicht ein EditorGadget für 2 Zeilen und ohne scrollbar EditorGadget.
Ich hoffe, dass es einigermaßen verständlich war.
Gruß,
MarcelX
erst mal, danke für alle Typs.
Was deine Neugier angeht, komme ich gern nach und versuche den Sinn zur erläutern:
Da kommt ein lange Satz:
Will ich, dass auf eine Seite mehre Eingaben (Radio-Button, .. Text ...) den platz so anlegen, das alles drauf passt,
spare ich an der Höhe von Text-Eingabe-Fenster.
Beim Drucken habe ich z.B. bis max 10 Zeilen vorgesehen für ein bestimmte Texteingabe.
Das bedeutet, dass maximal bis zur 10 Zeilen als Text eingegeben werden darf.
Da im Durchschnitt 5 Zeilen verwendet werden, mache ich die Höhe für 5 Zeilen und, weil es scrollbar ist, begrenze ich die Eingabe auf 10 Zeilen.
Es gibt auch Textfelder für die 2 Zeilen vorgesehen sind. Dann reicht ein EditorGadget für 2 Zeilen und ohne scrollbar EditorGadget.
Ich hoffe, dass es einigermaßen verständlich war.
Gruß,
MarcelX
Win-10, PB 5.31 (Windows - x86)
- Vera
- Beiträge: 928
- Registriert: 18.03.2009 14:47
- Computerausstattung: Win XP SP2, Suse 11.1
- Wohnort: Essen
Re: Frage zur EditorGadget
Hi marcelx,
dito - danke
Hört sich für mich nach einem ausdruckbarem zB DinA4 Formular an, (so kann ich das zumindest nachvollziehen).
Ich hoffe es klappt, wie Du es Dir vorstellst.
Gruß ~ Vera
dito - danke

Hört sich für mich nach einem ausdruckbarem zB DinA4 Formular an, (so kann ich das zumindest nachvollziehen).
Ich hoffe es klappt, wie Du es Dir vorstellst.
Gruß ~ Vera
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\