Stringgadget - Edierfunktionen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Stringgadget - Edierfunktionen

Beitrag von Daffy0815 »

Hallo,

weis jemand wie man z.B. einem Stringgadget "erweiterte" Funktionen beibringt?

Ich denke hierbei z. B. an die Möglichkeit den Inhalt bereits markiert zu übergeben oder das die Taste Return das Gadget schließt und vieles mehr.

Oder Anders: Alles was man üblicherweise von einer Zeileneingaberoutine bei den "guten alten" DOS-Basc-Compiler-Bibliotheken her kennt.

Gruß

Daffy
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Öhm, wie soll denn ein Gadget geschlossen werden? Wohin denn und mit was abschließen? Irgendwie versteh ich das nicht so recht. Ansonsten sollten sich alle WinAPI-Messages an das Gadget schicken lassen können, welche mit einem Fenster der Klasse EDIT zu tun haben. (Meist gehen auch Messages verwandter Klassen)
Damit solltest du dann in der Lage sein, alle möglichen Dinge mit dem Stringgadget anzustellen.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

@Sunny
Daffy meint mit ABSCHLIESSEN wohl dass die Eingabe eines Strings in einem Stringgadget mit ENTER beendet werden können soll.

@Daffy
guck mal im Codearchiv

da gibts haufenweise Beispiele zu Stringgadgets und deren Behandlung.
http://www.purearea.net/pb/CodeArchiv/German.html#5
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Beitrag von Daffy0815 »

@bobobo

Danke, Antwort war sehr hilfreich!

Was bei Purbasic etwas störend ist, ist das viele externe Konstanten und Aufrufe verwendet werden deren Dokumentation nur sehr schwer oder überhaupt nicht zu finden sind.

Beispiel:

SendMessage_(GadgetID(gad),#EM_SETSEL,0,99999)

Das ist aus dem Codearchiv um z. B. den Inhalt des Stringgadgets bereits markiert auszugeben so das ein Tastendruck auf "Entf" das gesamte Eingabefeld löscht.
Dies ist zum Beispiel eine Funktion die ein normales Eingabefeld bietet.

Wo finde ich etwas zu "Sendmessage_" oder "#EM_SETSEL" und was hat es mit "0,99999" auf sich?

Die beim Stringgadget im Handbuch dokumentierten "Flags"

#PB_String_Numeric, #PB_String_Multiline, #PB_String_Password, #PB_String_ReadOnly, #PB_String_LowerCase, #PB_String_UpperCase und #PB_String_BorderLess

sind doch ein wenig "arm" und wie man sieht offenbar bei weitem nicht alle Möglichkeiten die es gibt.
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
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 »

Die meisten Funktionen welche mit einem Unterstrich enden, also z.B. SendMessage_ sind Win-API Funktionen. Diese in der normalen Hilfe von PureBasic zu dokumentieren ist leider nicht möglich. Du kannst Dir das Plattform-SDK von Microsoft laden oder die Win32.hlp ins Help-Verzeichnis kopieren, um Hilfe hierzu erhalten. In der PureBasic-Hilfe sind nur die reinen PB-Funktionen dokumentiert, die auch meist Plattformunabhängig sind. Ansonsten such hier doch mal im Forum nach API bzw. im FAQ-Forum findest Du auch Hinweise zu entsprechender Literatur
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
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

1.wie ts-soft schon sagte, das sind api, und steht darum nicht in der help.
2. falls du noch mehr möglischkeit brauchst, dan schreib die am besten selbst eine procedure :allright:
-.-"
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Beitrag von Daffy0815 »

Danke für die Antworten!

Ich dachte mir schon, dass es sich um Aufrufe der WinAPI handelt.

Was das mit dem "selber schreiben" betrifft so denke ich, dass dies tatsächlich die beste Lösung darstellt.
Eigenlich sollte die Stärke von PureBasic doch unter Anderem darin liegen, Plattformunabhängig zu sein.

Dies wäre bei Programmen die sich auf Funktionen aus dem Hause Micro$oft stützen ja nicht mehr gegeben.
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

genau, api kannst du nicht zb unter linux nutzen.
das ist wirklich eine der stärken von pb, dass sie auf vielen platformen laufen :allright:
-.-"
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Linux hat doch auch APIs :roll:
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Beitrag von Daffy0815 »

@AndyX

Klar hat Linux auch API's aber nicht die Gleichen!
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Antworten