Editor-Gadget und maximale Zeilenanzahl

Anfängerfragen zum Programmieren mit PureBasic.
ThoPie
Beiträge: 130
Registriert: 19.05.2006 15:18
Kontaktdaten:

Editor-Gadget und maximale Zeilenanzahl

Beitrag 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.
Bild
Benutzeravatar
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

Beitrag 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.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Editor-Gadget und maximale Zeilenanzahl

Beitrag 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
;
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: Editor-Gadget und maximale Zeilenanzahl

Beitrag 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:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Re: Editor-Gadget und maximale Zeilenanzahl

Beitrag von dysti »

... hier hast du auch eine Lösung: http://www.purebasic.fr/german/viewtopi ... lenumbruch
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
ThoPie
Beiträge: 130
Registriert: 19.05.2006 15:18
Kontaktdaten:

Re: Editor-Gadget und maximale Zeilenanzahl

Beitrag von ThoPie »

Danke. Wie immer kann man sich auf die User im Forum verlassen.
:allright:
Bild
Antworten