Editorgadget
Editorgadget
Hi ich hätte mal zwei fragen:
1.Wie schalte ich die returntaste in einem Editorgadget aus?
2.Wie kann ich die eingabelänge begrenzen?
1.Wie schalte ich die returntaste in einem Editorgadget aus?
2.Wie kann ich die eingabelänge begrenzen?
Purebasic 5.0 32bit und 64 bit
I'm back from hell
I'm back from hell
- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
Achtung, nur Pseudo!
Nur so als Pseudo-Idee...
Gr33tz
Tafkadasom2k5
Code: Alles auswählen
;Begrenzen
MaximAnzahlAnBuchstaben.l = 50
BUFFER.s = GetGadgetText(#ID_Des_Stringgadgets)
If LEN(BUFFER) > MaximAnzahlAnBuchstaben
BUFFER=LEFT(BUFFER,MaximAnzahlAnBuchstaben)
SetGadgetText(#ID_Des_Stringgadgets,BUFFER)
EndIf
Code: Alles auswählen
;Backspace verhindern
;...Taste wurde gedrückt
BUFFER.s = GetGadgetText(#ID_Des_Stringgadgets)
If Len(BUFFER) < LEN(OLDBUFFER) AND Len(OLDBUFFER)>0
SetGadgetText(#ID_Des_Stringgadgets,OLDBUFFER)
Else
OLDBUFFER=BUFFER
EndIf
Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
- 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
Ich liebe euere Phantasien. Die einfache Variante:
Der Keyboardshortcut führt ins leere, also kein Return, wäre sonst ein Callback erforderlich.
Die Message begrenzt die Eingabe auf 20 Zeichen, sollte einleuchten
Code: Alles auswählen
If OpenWindow(0, #PB_Ignore, 0, 150, 100, "")
AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
If CreateGadgetList(WindowID(0))
EditorGadget(0, 0, 0, 150, 100)
SendMessage_(GadgetID(0), #EM_LIMITTEXT, 20, 0)
EndIf
Repeat : Until WaitWindowEvent() = 16
EndIf
Die Message begrenzt die Eingabe auf 20 Zeichen, sollte einleuchten

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.

- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
Jo, das mit dem Shortcut in PB hatte ich jetzt nicht mehr aufm Schirm. Ausserdem seh ich gerade, dass ich RETURN mit BACKSPACE gerade verdreht hatte...ts-soft hat geschrieben:Ich liebe euere Phantasien.

Ich dachte, er wollte verhindern, dass jemand was aus diesem Gadget löscht...

Naja, aber immerhin ist meine Variante ist API-Frei

OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
- 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
Ob das ein Vorteil ist, da streiten die GeisterTafkadasom2k5 hat geschrieben: Naja, aber immerhin ist meine Variante ist API-Frei

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.

- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
Naja, ich glaube, dass ist recht unbestritten ^^
Oder sehe ich das falsch, dass
DLL Aufruf->Funktion aufrufen->Auf DLL warten-> Ausgabe
langsamer ist als
Eigener Befehl (ASM) ->Eigener Befehl (ASM) -> Ausgabe ?
Noch dazu, dass man einfach auf Linux kompilieren könnte (okay, mir wäre das relativ schnurz, weil ich nichts für Linux schreibe
)...
Aber ich lasse mich eines Besseren belehren
Oder sehe ich das falsch, dass
DLL Aufruf->Funktion aufrufen->Auf DLL warten-> Ausgabe
langsamer ist als
Eigener Befehl (ASM) ->Eigener Befehl (ASM) -> Ausgabe ?
Noch dazu, dass man einfach auf Linux kompilieren könnte (okay, mir wäre das relativ schnurz, weil ich nichts für Linux schreibe

Aber ich lasse mich eines Besseren belehren

OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
- 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
Ja, siehste vollkommen falsch. Die eingebauten Funktionen von PB rufenTafkadasom2k5 hat geschrieben: Oder sehe ich das falsch, dass
auch die API auf. Die DLLs brauchen im allgemeinen nicht geladen zu
werden, das hat Windows bereits gemacht. Nur noch nicht geladene werden
geladen, bei anderen wird nur der Referenzzähler hochgezählt. API-Aufrufe
geschehen auch per early-binding (Frühe Bindung), das heißt, sie werden
statisch geladen, nicht dynamisch (late-binding), wie bei LoadLibrary_ bzw.
OpenLibrary

Ich denke mal, das könnte man besser erklären, aber Du verstehst es schon
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.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
dass es für sawas keine standard-gadgets gibt.
ich mein, eingabe von nur zahlen, textlängenbegrenzung, sonstwas für features...
wird immer mal wieder gebraucht, und muss man jedes mal aufs neue stricken.
auf ein spezielles input-gadget, was auf sowas voreinstellbar ist,
wäre es nun wirklich nicht mehr angekommen.
(die kritik ziehlt auf MS, nicht auf PB)
ich mein, eingabe von nur zahlen, textlängenbegrenzung, sonstwas für features...
wird immer mal wieder gebraucht, und muss man jedes mal aufs neue stricken.
auf ein spezielles input-gadget, was auf sowas voreinstellbar ist,
wäre es nun wirklich nicht mehr angekommen.
(die kritik ziehlt auf MS, nicht auf PB)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.