#Include once "windows.bi"
#Include Once "win/commctrl.bi"
#Include Once "win/commdlg.bi"
#Include Once "win/shellapi.bi"
#Include "EdMar25-Marc.bi"
 
 
Declare Sub Mdeb(msg As String)
Declare Sub SetF_Text (Ltxt As String)
/'
--------------------------------------
Autor  : Bruno Mariotti          -
Lastc  : 26.04.25                  -
Proj    :EdMar25-Marc         -
-------------------------------------
'/
Dim  Shared srcLine (1000) As String 
Dim  Shared ActFile As String                   ' actual file in Edit
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'init:                                                             ' global settings before Form displayed
 
ActFile = "non"
'MessageBox(0, Actfile & chr(13, 10) & "-", "debug", MB_OK)   '[12.4.25] zu Debug tests ob file rread o.k
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
Function WndProc(ByVal hWin As HWND,ByVal uMsg As UINT,ByVal wParam As WPARAM,ByVal lParam As LPARAM) As Integer
 
Select Case uMsg
Case WM_INITDIALOG
hWnd=hWin
'
Case WM_COMMAND
Select Case HiWord(wParam)
Case BN_CLICKED,1
Select Case LoWord(wParam)
Case IDM_FILE_EXIT
SendMessage(hWin,WM_CLOSE,0,0)
'
Case IDM_HELP_ABOUT
ShellAbout(hWin,@AppName,@AboutMsg,NULL)
 
 
'
Case IDC_BTN1
 
 
SetDlgItemText(hWin,IDC_EDT1,@"Ein etwas nichtssagender Satz")       'Set Text in Editwindow
 
 
Case IDC_BTN2                                                      '[-Read Textedit And Add Line-]
                                       
                            Dim txt As String                              
                            Dim text As ZString * 20000                                                                              '20000 chars  
                                  GetDlgItemText(hWin,IDC_EDT1,@text,SizeOf(text))                       'Get text from Editwindow1 in Pointervar text
                                                                
                            SetDlgItemText(hWin,IDC_EDT1,@"Linea" &Chr(13,10)&"_NL") 
                            SetDlgItemText(hWin,IDC_EDT1,@text)                                              'Set Text in Editwindow
                                                                                                                                           ' cr,nl
                            txt =  text + chr(13, 10) + "NewLine"
Dim mtx As ZString * 20000                                                                 '2. Pinter zum Wert übergeben
mtx = txt  
SetDlgItemText(hWin,IDC_EDT1,@mtx)                                           ' pointer Übergabe mtx
                           '************************************************************
                           ' Bem:                                                                               * 
                           ' dem Editfeld set kann nur Datentyp Pointer als Inhalt  *
                           ' übergeben werden                                                 *
'************************************************************
                           
                           
' Load Button
'=============
Case IDC_BTLoadFile  '[26.04.25]                                                                 Fn     = Filename   local
'identic To LoadFile Pd Menue
Dim txt As String                              
                            Dim text As ZString * 20000                                                                              '20000 chars  
                                  GetDlgItemText(hWin,IDC_EDT1,@text,SizeOf(text))                       'Get text from Editwindow1 in Pointervar text
                                                                
                            SetDlgItemText(hWin,IDC_EDT1,@"Linea" &Chr(13,10)&"_NL") 
                            SetDlgItemText(hWin,IDC_EDT1,@text)                                              'Set Text in Editwindow
                                                                                                                                           ' cr,nl                            
Dim mtx As ZString * 20000                                                                 '2. Pinter zum Wert übergeben
mtx = txt  
SetDlgItemText(hWin,IDC_EDT1,@mtx)                                           ' pointer Übergabe mtx
                           '************************************************************
                           ' Bem:                                                                               * 
                           ' dem Editfeld set kann nur Datentyp Pointer als Inhalt  *
                           ' übergeben werden                                                 *
'************************************************************
 
'*************************************************************************************************************************
DIM AS INTEGER f
DIM AS STRING ztxt
 
Dim Fn As ZString * 200                                                                      ' FileName aus Feld auslesen  
                                  GetDlgItemText(hWin,IDC_EActfile,@Fn,SizeOf(Fn))                       'Get text from Editwindow1 in Pointervar text
                                 'MessageBox(0, Fn , "open File", MB_OK) 
' eine unbenutzte Dateinummer finden und Datei zum Einlesen öffnen
 
f = FREEFILE
OPEN Fn For INPUT AS #f
' Daten so lange einlesen, bis das Ende erreicht wurde.
DO UNTIL EOF(f)
   ' Zeile aus der Datei einlesen und auf dem Bildschirm ausgeben
   Line Input #f, ztxt
   PRINT ztxt
   GetDlgItemText(hWin,IDC_EDT1,@text,SizeOf(text)) 
   txt =  text + chr(13, 10) + ztxt      
'  MessageBox(0, ztxt & chr(13, 10) & "-", "debug", MB_OK)   '[12.4.25] zu Debug tests ob file rread o.k
   mtx = txt
   SetDlgItemText(hWin,IDC_EDT1,@mtx)  
LOOP
 
' Datei schließen
CLOSE #f
 
Case IDC_BTSaveFile '[26.4.25]
                    Dim f As Integer
                    Dim Etxt As String                                                                  ' Text in File
                    Dim text As ZString * 20000  
            Dim Fn As ZString * 200                                                                      ' FileName aus Feld auslesen
            GetDlgItemText(hWin,IDC_EDT1,@text,SizeOf(text))                       'Get text from Editwindow1 in Pointervar text 
            Etxt = text
                                  GetDlgItemText(hWin,IDC_EActfile,@Fn,SizeOf(Fn))                       'Get text from Editwindow1 in Pointervar text
                                 MessageBox(0, Fn , "saveFile", MB_OK)
                                 'MessageBox(0, Etxt , "saveFile", MB_OK) 
                                 
                                 f = FREEFILE 'freie Filee  Nr. erhalten
Open Fn For output AS #f 'öffnen der Files Fn
Print #f,Etxt 'schreib ten Text aus dem Textfeld in die eben eröffnete Datei Fn
' hir text in File schreiben
                                 
                                Close #f
                                 MessageBox(0, "File saved" , "info", MB_OK)
                            '--------------------------------------------------------------------------------------------------------------------------------------
' pull down menue
'=============
Case IDM_openFilemnu
/'
Mdeb("Msgtext")
'  Create and show the dialog       /// Form.show ///
CreateDialogParam(hInstance,Cast(ZString Ptr,IDD_DLG1openFile),NULL,@WndProc,NULL)
ShowWindow(hWnd,SW_SHOWDEFAULT)
UpdateWindow(hWnd)
 
'/
'                                                            hier file load und line fore line in textbox
Dim txt As String                              
                            Dim text As ZString * 20000                                                                              '20000 chars  
                                  GetDlgItemText(hWin,IDC_EDT1,@text,SizeOf(text))                       'Get text from Editwindow1 in Pointervar text
                                                                
                            SetDlgItemText(hWin,IDC_EDT1,@"Linea" &Chr(13,10)&"_NL") 
                            SetDlgItemText(hWin,IDC_EDT1,@text)                                              'Set Text in Editwindow
                                                                                                                                           ' cr,nl
                            'txt =  text + chr(13, 10) + "NewLine"
Dim mtx As ZString * 20000                                                                 '2. Pinter zum Wert übergeben
mtx = txt  
SetDlgItemText(hWin,IDC_EDT1,@mtx)                                           ' pointer Übergabe mtx
                           '************************************************************
                           ' Bem:                                                                               * 
                           ' dem Editfeld set kann nur Datentyp Pointer als Inhalt  *
                           ' übergeben werden                                                 *
'************************************************************
 
'*************************************************************************************************************************
DIM AS INTEGER f
DIM AS STRING ztxt
 
Dim Fn As ZString * 200                                                                      ' FileName aus Feld auslesen  
                                  GetDlgItemText(hWin,IDC_EActfile,@Fn,SizeOf(Fn))                       'Get text from Editwindow1 in Pointervar text
                                 'MessageBox(0, Fn , "open File", MB_OK) 
' eine unbenutzte Dateinummer finden und Datei zum Einlesen öffnen
 
f = FREEFILE
OPEN Fn For INPUT AS #f
' Daten so lange einlesen, bis das Ende erreicht wurde.
DO UNTIL EOF(f)
   ' Zeile aus der Datei einlesen und auf dem Bildschirm ausgeben
   Line Input #f, ztxt
   PRINT ztxt
   GetDlgItemText(hWin,IDC_EDT1,@text,SizeOf(text)) 
   txt =  text + chr(13, 10) + ztxt      
'  MessageBox(0, ztxt & chr(13, 10) & "-", "debug", MB_OK)   '[12.4.25] zu Debug tests ob file rread o.k
   mtx = txt
   SetDlgItemText(hWin,IDC_EDT1,@mtx)  
LOOP
 
' Datei schließen
CLOSE #f
'*************************************************************************************************************************
 
 
 
 
                           
' Message loop ----------------------------------------------------------------------------------------------------------------------------------------
 
End Select
'
End Select
'
Case WM_SIZE
'
Case WM_CLOSE
DestroyWindow(hWin)
'
Case WM_DESTROY
PostQuitMessage(NULL)
'
Case Else
Return DefWindowProc(hWin,uMsg,wParam,lParam)
'
End Select
Return 0
 
End Function
 
Function WinMain(ByVal hInst As HINSTANCE,ByVal hPrevInst As HINSTANCE,ByVal CmdLine As ZString ptr,ByVal CmdShow As Integer) As Integer
Dim wc As WNDCLASSEX
Dim msg As MSG
 
' Setup and register class for dialog
wc.cbSize=SizeOf(WNDCLASSEX)
wc.style=CS_HREDRAW or CS_VREDRAW
wc.lpfnWndProc=@WndProc
wc.cbClsExtra=0
wc.cbWndExtra=DLGWINDOWEXTRA
wc.hInstance=hInst
wc.hbrBackground=Cast(HBRUSH,COLOR_BTNFACE+1)
wc.lpszMenuName=Cast(ZString Ptr,IDM_MENU)
wc.lpszClassName=@ClassName
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION)
wc.hIconSm=wc.hIcon
wc.hCursor=LoadCursor(NULL,IDC_ARROW)
RegisterClassEx(@wc)
' Create and show the dialog
CreateDialogParam(hInstance,Cast(ZString Ptr,IDD_DIALOG),NULL,@WndProc,NULL)
ShowWindow(hWnd,SW_SHOWNORMAL)
UpdateWindow(hWnd)
' Message loop
Do While GetMessage(@msg,NULL,0,0)
TranslateMessage(@msg)
DispatchMessage(@msg)
Loop
Return msg.wParam
 
End Function
 
' Program start
hInstance=GetModuleHandle(NULL)
CommandLine=GetCommandLine
InitCommonControls
WinMain(hInstance,NULL,CommandLine,SW_SHOWDEFAULT)
ExitProcess(0)
 
Sub Mdeb(msg As string)
'MessageBox(0, "Sub Mdeb & chr(13, 10) & "üben", "Mdebug", MB_OK) 
MessageBox(0, msg & chr(13, 10) & "-", "Mdebug", MB_OK)
End Sub
Sub SetF_Text (Ltxt As String)
 
' SetDlgItemText(hWin,IDC_EDT1,@"Ein etwas nichtssagender Satz")       'Set Text in Editwindow
'     Erzeugt Fehlermeldung var nicht deklariert . Herausfinden wie , wo 
                           
End Sub
Sub niet
 
End Sub
 
End