Hi @ all,
der Titel sagt ja eigentlich schon alles aus: ICh möchte den Bereich Editor-Gadget in einen String übernehmen, sobald ein Button-Gadget betätigt wird. Wie geht das? Hab' vergeblich in allen möglichen Quellen gescuht, aber leider nix in der Richtung gefunden.
Kann mir außerdem jemand 'n GUTES Tutorial für API-Programmierung nennen. Ich finde immer wieder in unterschiedlichsten Programmen so sachen wie
SendMessage_(GadgetID(gadget),#EM_REPLACESEL,0,Text$).
s gibt aber in PureBaisc keinen Befehl der SendMessage heißt. Wo ist der eigentlich dokumentiert? Was bedeuten die einzelnen Parameter?
Welche Befehle, die mit einem Unterstrich enden, gibt es eigentlich noch? Was machen die im Einzelnen? Welche Parameter muss ich reingeben, damit etwas Sinnvolles rauskommt?
Dann wird da eine Variable #EM_REPLACESEL genannt. Die finde ich zufällig im PureBasic Strukturverzeichnis unter 'Konstanten'.
Gibt's da eigentlich ein Verzeichnis, wo man nachschlagen kann, mit welcher Konstante was abgefragt wird, z.B. so:
Ich hab' einen Joystick mit 18 Knöpfen drauf. Welche Konstante dient dazu, den Gedrückt-Status des 7. Knopfes abzufragen?
Bin momentan etwas gefrustet. Ich kapiere jetzt allmählich so die Standardfunktionen von PureBasic, aber man will ja - bildlich gesprochen - nicht nur auf der Autobahn fahren, sondern hier und da mal einen kleinen Abstecher auf Nebenstraßen machen.
Editor-Gadget, wie Markierung in Stringvariable übernehmen?
dann musst du auch auf den nebenstraßen suchen
die Windoof-Apireferent finzte hier
Für die JoystickKnopfgeschichte reicht es vielleicht wenn du mal das
mitgelieferte JoyStickExample anguckst. dort werden zwar nur Knopf 1 und
2 zurückgegeben, aber das wäre ja nun relativ leicht erweiterbar
die Windoof-Apireferent finzte hier
Für die JoystickKnopfgeschichte reicht es vielleicht wenn du mal das
mitgelieferte JoyStickExample anguckst. dort werden zwar nur Knopf 1 und
2 zurückgegeben, aber das wäre ja nun relativ leicht erweiterbar
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Erstmal vielen Dank!bobobo hat geschrieben:dann musst du auch auf den nebenstraßen suchen
die Windoof-Apireferent finzte hier
Für die JoystickKnopfgeschichte reicht es vielleicht wenn du mal das
mitgelieferte JoyStickExample anguckst. dort werden zwar nur Knopf 1 und
2 zurückgegeben, aber das wäre ja nun relativ leicht erweiterbar
Das mit dem Joystick sollte mehr sinngemäß allgemein verstanden werden sollen.
Die Windoof-Apireferentz blickichnichdurch. da steht was von C++ . ich kenn aber kein C++. Ich bin Anfänger auf dem Gebiet, da nützt es mir wenig, wenn ich weiß "What's New in Visual C++ 2008".
Wenn ich Autofahren lernen will, dann nützt es mir auch wenig, wenn ich weiß, was der Toyota Kamasutra (Baujahr 2008) gegenüber dem Toyota Kamasutra (Baujahr 2006) für bahnbrechende Neuigkeiten hat. Da will ich erstmal wissen:
1. Wie starten?
2. Wo Kupplung/Bremse/Gas?
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Es gibt noch andere kleinere API-Referenzen. Genaueres dazu findest du
auch in der FAQ.
Ansonsten kannst du eigentlich alles, was du nicht mit PureBasic-Befehlen
machen kannst, unter Windows mit der API machen.
Allerdings musst du dich darauf einstellen, dass die meisten Beispiele mit API
in C++ geschrieben sind. Und so schwer ist das auch nicht zu lesen. Falls
doch, kannst du sowas im API- oder "Andere Sprachen"-Forum posten.
Außerdem wird dir bestimmt auch die PureArea mit dem CodeArchiv helfen,
die du rechts oben in der Ecke finden kannst.
auch in der FAQ.
Ansonsten kannst du eigentlich alles, was du nicht mit PureBasic-Befehlen
machen kannst, unter Windows mit der API machen.
Allerdings musst du dich darauf einstellen, dass die meisten Beispiele mit API
in C++ geschrieben sind. Und so schwer ist das auch nicht zu lesen. Falls
doch, kannst du sowas im API- oder "Andere Sprachen"-Forum posten.
Außerdem wird dir bestimmt auch die PureArea mit dem CodeArchiv helfen,
die du rechts oben in der Ecke finden kannst.
- hjbremer
- Beiträge: 822
- Registriert: 27.02.2006 22:30
- Computerausstattung: von gestern
- Wohnort: Neumünster
Code: Alles auswählen
;ermittle markierten Bereich
SendMessage_(id_editnr), #EM_EXGETSEL, 0, @markiert.CHARRANGE)
;String muß die richtige Größe haben
txt$ = Space(1 + markiert\cpMax - markiert\cpMin)
;hole markierte Zeichen und schiebe diese nach txt$
SendMessage_(id_editnr), #EM_GETSELTEXT, 0, @txt$)
Debug txt$
;editnr ist die Nr.die beim Anlegen des Gadgets vergeben wurde
;#editnr = 1 oder was auch immer du für eine Zahl vergeben hast
;id_editnr=EditorGadget(#editnr, sp, ze, br, hh)
;id_editnr ist die ID für Api Befehle
;solltest du allerdings #PB_Any benutzt haben, dann gilt folgende Schreibweise
;editnr=EditorGadget(#PB_Any, sp, ze, br, hh)
;id_editnr=GadgetID(editnr)
;oder folgende Schreibweise
;SendMessage_(GadgetID(editnr), #EM_GETSELTEXT, 0, @txt$)
Purebasic 5.70 x86 5.72 X 64 - Windows 10
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Editor-Gadget, Markierung in String übernehmen? [gelöst]
Hi @ all,
vielen Dank erstmal, insbesondere an hjbremer!
Ich hab' mal ein Beispiel gebaut, das vielleicht auch für andere, die sich gerade in die Materie einarbeiten wollen, interessant sein könnte:
Gruß, Jan
vielen Dank erstmal, insbesondere an hjbremer!
Ich hab' mal ein Beispiel gebaut, das vielleicht auch für andere, die sich gerade in die Materie einarbeiten wollen, interessant sein könnte:
Code: Alles auswählen
OpenWindow(0,100,100,800,600,"Selektierten Bereich des Editor-Gadgets in String übernehmen",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
EditorGadget(0,50,50,700,300)
TextGadget(1,50,400,700,20,"<markierter Text>",#PB_Text_Border)
ButtonGadget(2,50,470,150,20,"Markierung übernehmen")
Repeat
event = WaitWindowEvent()
gnr = EventGadget()
If gnr = 2
SendMessage_((0), #EM_EXGETSEL, 0, @markiert.CHARRANGE)
txt$ = Space(1 + markiert\cpMax - markiert\cpMin)
SendMessage_(GadgetID(0), #EM_GETSELTEXT, 0, @txt$)
SetGadgetText(1,txt$)
EndIf
Until event = #PB_Event_CloseWindow