Seite 1 von 1

Editor-Gadget und maximale Zeilenanzahl

Verfasst: 19.03.2010 19:29
von ThoPie
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.

Re: Editor-Gadget und maximale Zeilenanzahl

Verfasst: 19.03.2010 19:57
von ts-soft
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Code: Alles auswählen

SendMessage_(GadgetID(#editor), #EM_SETLIMITTEXT, 100, 0)
Zeilen geht nicht, nur Zeichen.

Re: Editor-Gadget und maximale Zeilenanzahl

Verfasst: 19.03.2010 20:56
von bobobo
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')

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
;

Re: Editor-Gadget und maximale Zeilenanzahl

Verfasst: 19.03.2010 21:05
von rolaf
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. :mrgreen:

Re: Editor-Gadget und maximale Zeilenanzahl

Verfasst: 20.03.2010 14:19
von dysti
... hier hast du auch eine Lösung: http://www.purebasic.fr/german/viewtopi ... lenumbruch

Re: Editor-Gadget und maximale Zeilenanzahl

Verfasst: 20.03.2010 14:49
von ThoPie
Danke. Wie immer kann man sich auf die User im Forum verlassen.
:allright: