StringGadgets mit maximaler Zeichenanzahl realisiere (Win32)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
blbltheworm
Beiträge: 217
Registriert: 22.09.2004 19:36
Wohnort: Auf der schönen Schwäbischen Alb

StringGadgets mit maximaler Zeichenanzahl realisiere (Win32)

Beitrag von blbltheworm »

Unter VB gibt es die Möglichket einer Textbox (StringGadget) eine maximale Länge zuzuweißen, sodass sie z.B. nicht mehr als 4 Zeichen beinhalten kann.
Unter PB hab ich diese Funktion leider noch nicht gefunden, deshalb hab ich sie mit Hilfe zweier Codeschnipsel von Danilo selbstgeschrieben.
Die Funktion muss jedesmal aufgerufen werden, wenn der Inhalt der Textbox verändert wurde (EventType()=#PB_EventType_Change) .

Code: Alles auswählen

Procedure chkLen(gadget.l,Length.l)
  Protected CurPos.l
  Protected tmpText.s
  tmpText=GetGadgetText(gadget)
  If Len(tmpText)>Length
    SendMessage_(GadgetID(gadget),#EM_GETSEL,@CurPos,@Max)
    SetGadgetText(gadget,Left(tmpText,Length))
    SendMessage_(GadgetID(gadget),#EM_SETSEL,CurPos,CurPos)
  EndIf
EndProcedure
Falls es diese Funktion bereits geben sollte würde es mich interesieren wie sie heißt.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

SendMessage_(GadgetID(gadget),#EM_LIMITTEXT,laenge,0)

...wobei laenge dann z.B. 4 ist.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
blbltheworm
Beiträge: 217
Registriert: 22.09.2004 19:36
Wohnort: Auf der schönen Schwäbischen Alb

Beitrag von blbltheworm »

Dou,
wenn ich das gewusst hätte dann hätte ich mir die "Mühe" sparen können.
Aber trotzdem danke für den Code.
Antworten