English
Source / code snippets

editor Mini program

 

CompileMarkSeparation
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Editor programmieren (Mini-Editor)

proc editor

    declare _ende%
    declare _dlg%
    declare SCHRIFT%
    declare Groesse%
    declare Fett%
    declare kursiv%
    declare unterstrichen%
    declare CUT%
    declare COPY%
    declare INS%
    declare Text%
    declare anz!, f%, u%, k%, font$, g!, x%, datei$, text$, edit#
    def @buttonstate(1) @sendmessage(@%(1),$402,0,0)
    def @changed(1) @sendmessage(@%(1),$408,0,0)

    proc zeigeschrift

        let font$ = @GetText$(schrift%)
        let g! = @Mul(@Val(@GetText$(groesse%)),anz!)
        UseFont font$,g!,0,f%,k%,u%
        @sendmessage(text%,$30,%font,1)   wm_SetFont

    endproc

    proc Datei_Laden

        let datei$ = @LoadFile$(Datei laden:,*.txt)

        ifnot @equ$(datei$,)

            usecursor 2

            If @Gt(@FileSize(Datei$),32000)

                @MessageBox(Datei ist zu groß für den Editor!,Hinweis:,48)

            Else

                Dim Edit#,@Add(@FileSize(Datei$),2000)
                ReadText Edit#,Datei$

                If @SendMessage(text%,$000C,0,Edit#)

                    WindowTitle @Add$(Mini-Ed 1.0 [,
                    @Add$(Datei$,]))

                Else

                    @MessageBox(Datei ist zu groß für den Editor!,Hinweis:,48)

                EndIf

                Dispose Edit#

            EndIf

            usecursor 0

        endif

    EndProc

    Proc Speichere

        Parameters dname$
        Declare Nr%, Max%
        assign #1,dname$
        rewrite #1
        Let Nr% = 0
        Let Max% = @GetLineCount(Text%)

        WhileNot @Gt(Nr%,Max%)

            Print #1,@GetLine$(Text%,Nr%)
            Inc Nr%

        Wend

        close #1

    EndProc

    Proc Datei_SpeichernAls

        let datei$ = @SaveFile$(Datei speichern:,Datei$)

        ifnot @equ$(Datei$,)

            Speichere Datei$
            WindowTitle @Add$(Mini-Ed 1.0 [,
            @Add$(Datei$,]))

        endif

    EndProc

    Proc Datei_Speichern

        IfNot @Equ$(Datei$,)

            Speichere Datei$

        Else

            Datei_SpeichernAls

        EndIf

    EndProc

    Proc Geändert

        If @Changed(Text%)

            If @Equ(@MessageBox(Die Datei wurde geändert.

                Soll sie gespeichert werden?,
                Datei$,36),6)
                Datei_Speichern

            EndIf

        EndIf

    EndProc

    let _dlg% = %Hwnd
    let SCHRIFT%=@createchoicebox(_dlg%,,0,0,136,120)
    let Groesse%=@createchoicebox(_dlg%,,136,0,40,120)
    let Fett%=@createbutton(_dlg%,f,176,0,24,24)
    let kursiv%=@createbutton(_dlg%,k,200,0,24,24)
    let unterstrichen%=@createbutton(_dlg%,u,224,0,24,24)
    let Text%=@createmultiedit(_dlg%,,0,24,548,364)
    let f% = 0
    let k% = 0
    let u% = 0
    let anz! = 1.5
    let Datei$ =
    clearlist
    addfonts
    @movelisttochoice(schrift%)
    @sendmessage(schrift%,1038,2,0)
    @addchoice(groesse%,10)
    @addchoice(groesse%,12)
    @addchoice(groesse%,14)
    @addchoice(groesse%,16)
    @addchoice(groesse%,18)
    @addchoice(groesse%,22)
    @addchoice(groesse%,26)
    @sendmessage(groesse%,1038,2,0)
    zeigeschrift
    @SetFocus(Text%)
    let _ende% = 0

    whilenot _ende%

        waitinput

        if @equ(%key,2)

            geändert
            let _ende% = 1

        elseif @equ(%key,4)

            If @and ( @Gt(@Sub(%WinRight,%WinLeft),220),

                @Gt(@Sub(%WinBottom,%WinTop),120) )
                SetWindowPos Text% = 0,24
                - @Sub(@Sub(%WinRight,%WinLeft),6),
                @Sub(@Sub(%WinBottom,%WinTop),88)

            endif

        elseif @menuitem(100)

            geändert
            SetText text%,
            Let Datei$=
            WindowTitle Mini-Ed 1.0
            @SetFocus(Text%)

        elseif @menuitem(101)

            geändert
            Datei_Laden
            @SetFocus(Text%)

        elseif @menuitem(102)

            Datei_Speichern
            @SetFocus(Text%)

        elseif @menuitem(103)

            Datei_SpeichernAls
            @SetFocus(Text%)

        elseif @menuitem(104)

            @WinExec(CONTROL Drucker,0)

        elseif @menuitem(-3808)

            shownormal
            SetWindowPos Text% = 0,24
            - @Sub(@Sub(%WinRight,%WinLeft),6),
            @Sub(@Sub(%WinBottom,%WinTop),88)

        elseif @menuitem(-4064)

            showmin

        elseif @menuitem(-4048)

            showmax
            SetWindowPos Text% = 0,24
            - @Sub(@Sub(%WinRight,%WinLeft),6),
            @Sub(@Sub(%WinBottom,%WinTop),88)

        elseif @or ( @menuitem(109),@menuitem(-4000) )

            Geändert
            Let _ende% = 1

        elseif @menuitem(130)

            @messagebox(programmiert mit RGH-Profan² 4.0,RGH-MINITEXT,0)

        elseif @menuitem(110)

            @sendmessage(text%,$304,0,0)   wm_Undo

        elseif @menuitem(111)

            @sendmessage(text%,$300,0,0)   wm_Cut

        elseif @menuitem(112)

            @sendmessage(text%,$301,0,0)   wm_Copy

        elseif @menuitem(113)

            @sendmessage(text%,$302,0,0)   wm_Insert

        elseif @menuitem(114)

            @sendmessage(text%,$303,0,0)   wm_Clear

        Elseif @Menuitem(200)

            let anz! = 1
            checkmenu 200,1
            checkmenu 201,0
            checkmenu 202,0
            zeigeschrift

        Elseif @Menuitem(201)

            let anz! = 1.5
            checkmenu 200,0
            checkmenu 201,1
            checkmenu 202,0
            zeigeschrift

        Elseif @Menuitem(202)

            let anz! = 2
            checkmenu 200,0
            checkmenu 201,0
            checkmenu 202,1
            zeigeschrift

        elseif @getfocus(schrift%)

            zeigeschrift

        elseif @getfocus(groesse%)

            zeigeschrift

        elseif @getfocus(fett%)

            if @equ(@buttonstate(%getfocus),108)

                let f% = @sub(1,f%)

                if f%

                    settext %getfocus,F

                else

                    settext %getfocus,f

                endif

                zeigeschrift

            endif

        elseif @getfocus(kursiv%)

            if @equ(@buttonstate(%getfocus),108)

                let k% = @sub(1,k%)

                if k%

                    settext %getfocus,K

                else

                    settext %getfocus,k

                endif

                zeigeschrift

            endif

        elseif @getfocus(unterstrichen%)

            if @equ(@buttonstate(%getfocus),108)

                let u% = @sub(1,u%)

                if u%

                    settext %getfocus,U

                else

                    settext %getfocus,u

                endif

                zeigeschrift

            endif

        endif

    wend

    @destroywindow(_dlg%)

endproc

HAUPTPROGRAMM
=============
windowstyle $11F
windowtitle Mini-Ed 1.0
window 20,20-555,452
cls @rgb(23,23,23)
PopUp &Datei
AppendMenu 100,&Neu
AppendMenu 101,&Laden
AppendMenu 102,&Speichern
AppendMenu 103,Speichern &als
Separator
AppendMenu 104, D&rucker einrichten
Separator
AppendMenu 109,&Ende
PopUp &Bearbeiten
AppendMenu 110,&Rückgänging 	Alt+BS
Separator
AppendMenu 111,&Ausschneiden 	Shift+Entf
AppendMenu 112,&Kopieren 	Strg+Einfg
AppendMenu 113,&Einfügen 	Shift+Einfg
AppendMenu 114,&Löschen 	Strg+Entf
PopUp &Anzeige
AppendMenu 200,&100 %
AppendMenu 201,1&50 %
AppendMenu 202,&200 %
App
uBar 130,a&Info CheckMenu 201,1 editor end
 
07/15/07  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

1.777 Views

Untitledvor 0 min.
Uwe Starke11/17/23
PETER195607/18/18
RudiB.03/04/13
Andre Hilprecht12/25/12
More...

Themeninformationen

this Topic has 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie