Hallo,
in meinem Projekt verwende ich ein Editor-Gadget. Gibt es eine Möglichkeit (API?) die Eingabe auf eine feste Zeilenanzahl zu begrenzen? Ich möchte also zum Beispiel verhindern dass mit Enter auf die 4. Zeile gesprungen werden kann (Das Editor-Gadget ist nur 3 Zeilen hoch).
Vielen Dank.
Editor-Gadget und maximale Zeilenanzahl
- 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: Editor-Gadget und maximale Zeilenanzahl
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Zeilen geht nicht, nur Zeichen.
Code: Alles auswählen
SendMessage_(GadgetID(#editor), #EM_SETLIMITTEXT, 100, 0)
Re: Editor-Gadget und maximale Zeilenanzahl
damit wäre dann aber auch (über den Umweg des Zeilen und Zeichenzählens) dann aber auch ne ZeilenLimitierung drin.
Wenn die Anzahl der Zeilen die gewünscht sind erreicht ist, die Anzahl der Zeichen auf die Anzahl der vorhandenen Zeichen
begrenzen. die -1 Geschichte hebt das wieder auf (es gibt ja auch den 'NachLinksLösch-Knopf')
Wenn die Anzahl der Zeilen die gewünscht sind erreicht ist, die Anzahl der Zeichen auf die Anzahl der vorhandenen Zeichen
begrenzen. die -1 Geschichte hebt das wieder auf (es gibt ja auch den 'NachLinksLösch-Knopf')
Code: Alles auswählen
; das wuppzt zumindest bei XP
Enumeration
#Window_0
EndEnumeration
Enumeration
#Editor_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
EditorGadget(#Editor_0, 70, 50, 240, 140)
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType() ; The event type
;You can place code here, and use the result as parameters for the procedures
If Event = #PB_Event_Gadget
If GadgetID = #Editor_0
lines.q=CountGadgetItems(#Editor_0)
chars.q=Len(GetGadgetText(#Editor_0))
If lines>=4
SendMessage_(GadgetID(#Editor_0), #EM_SETLIMITTEXT, chars+1, 0)
Else
SendMessage_(GadgetID(#Editor_0), #EM_SETLIMITTEXT, -1, -1)
EndIf
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
;
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Re: Editor-Gadget und maximale Zeilenanzahl
Hmmm, man muß doch den String nur nach jedem Tastendruck auf das Zeilenumbruch-Zeichen Chr(10) durchsuchen und schneidet dann ab dem vierten Erscheinen den String ab. 

:::: WIN 10 :: PB 5.73 :: (x64) ::::
Re: Editor-Gadget und maximale Zeilenanzahl
... hier hast du auch eine Lösung: http://www.purebasic.fr/german/viewtopi ... lenumbruch
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Re: Editor-Gadget und maximale Zeilenanzahl
Danke. Wie immer kann man sich auf die User im Forum verlassen.


