Editorgadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Editorgadget

Beitrag von roherter »

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?
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Achtung, nur Pseudo!

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
Nur so als Pseudo-Idee...

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!
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

Beitrag von ts-soft »

Ich liebe euere Phantasien. Die einfache Variante:

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
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 :wink:
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.
Bild
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

ts-soft hat geschrieben:Ich liebe euere Phantasien.
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... :oops:
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!
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

Beitrag von ts-soft »

Tafkadasom2k5 hat geschrieben: Naja, aber immerhin ist meine Variante ist API-Frei ;)
Ob das ein Vorteil ist, da streiten die Geister :wink:
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.
Bild
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

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 :mrgreen: )...

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!
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

Beitrag von ts-soft »

Tafkadasom2k5 hat geschrieben: Oder sehe ich das falsch, dass
Ja, siehste vollkommen falsch. Die eingebauten Funktionen von PB rufen
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 :wink:
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.
Bild
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Danke die Textlimitierung reicht mir ,Ich habe gemerkt das Return dann auch nicht mehr geht und das reicht für mein Projekt vollkommen. :allright:
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

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)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Da kann ich dir nur recht geben. :allright:
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Antworten