Hmm, es gibt vielleicht noch ne Möglichkeit.
Moment mal...
Kein Multiline für Editorgadget - andere (kürzere) Lösung?
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Windows 10 Pro, 64-Bit / Outtakes | Derek
Du kannst den Style immer noch per VirtualProtect im Speicher aendern
und dann das Gadget erstellen, oder du nimmst so Sachen wie
CreateGadget mit dem Editortyp, funktioniert dann genauso.
Beispiel :
und dann das Gadget erstellen, oder du nimmst so Sachen wie
CreateGadget mit dem Editortyp, funktioniert dann genauso.
Beispiel :
Code: Alles auswählen
Procedure EditGadget(i,x,y,cx,cy,flags)
Protected oldExitProtect
Protected *flags.long
CompilerIf #PB_Compiler_Unicode
!mov eax,_PB_EditorGadget2_UNICODE@24
CompilerElse
!mov eax,_PB_EditorGadget2@24
CompilerEndIf
!add eax,24
!mov [p.p_flags],eax
VirtualProtect_(*flags,4,#PAGE_READWRITE,@oldExitProtect)
*flags\l = #WS_CHILD | #WS_VISIBLE
VirtualProtect_(*flags,4,oldExitProtect,@oldExitProtect)
ProcedureReturn EditorGadget(i,x,y,cx,cy,flags)
EndProcedure
Macro EditorGadget(i,x,y,cx,cy,flags=0)
EditGadget(i,x,y,cx,cy,flags)
EndMacro
If OpenWindow(0,0,0,500,50,"Windows-Vorlage",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
EditorGadget(1,10,10,480,23)
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Ich hab keine Ahnung was er da zusammengehackt hat aber es funktioniert! 

Windows 10 Pro, 64-Bit / Outtakes | Derek
Ich bin trotzdem der Meinung, das es ins CodeArchiv gehört, vielleicht mit einem entsprechenden Hinweiss. Geht ja auch nicht unbedingt nur darum, eine Lösung zum Thema Multiline anzubieten, sondern auch die Vorgehensweise mittels VirtualProtect zu verdeutlichen. Da es scheinbar eine Vorgehensweise ist, die nicht jedem bekannt ist, sollte dies mit einem Beispiel verdeutlicht werden. Dann sollte aber auch der letzte Kommentar von edel mit rein, was der Code genau macht.