Italia
Fonte/ Codesnippets

Editor Programmieren

 

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

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),$0F2,0,0)
    def @changed(1) @sendmessage(@%(1),$0B8,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$(File laden:,*.txt)

        if (datei$ <> )

            usecursor 2

            If (@FileSize(File$) > 32000)

                @MessageBox(File ist zu grande per den Editor!,Hinweis:,48)

            Else

                Dim Edit#,@FileSize(File$) + 2000
                ReadText Edit#,File$

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

                    WindowTitle Mini-Ed 1.0 [ + File$ + ]

                Else

                    @MessageBox(File ist zu grande per 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%)

        While Nr% <= Max%

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

        EndWhile

        close #1

    EndProc

    Proc Datei_SpeichernAls

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

        if (File$ <> )

            Speichere File$
            WindowTitle Mini-Ed 1.0 [ + File$ + ]

        endif

    EndProc

    Proc Datei_Speichern

        If (File$ <> )

            Speichere File$

        Else

            Datei_SpeichernAls

        EndIf

    EndProc

    Proc Geändert

        If @Changed(Text%)

            If @Equ(@MessageBox(Die File wurde geändert. Soll sie gespeichert werden?,

                File$,36),6)
                Datei_Speichern

            EndIf

        EndIf

    EndProc

    let _dlg% = %Hwnd
    let SCHRIFT%=@create(choicebox,_dlg%,,0,0,136,120)
    let Groesse%=@create(choicebox,_dlg%,,136,0,40,120)
    let Fett%=@create(button,_dlg%,f,176,0,24,24)
    let kursiv%=@create(button,_dlg%,k,200,0,24,24)
    let unterstrichen%=@create(button,_dlg%,u,224,0,24,24)
    let Text%=@create(multiedit,_dlg%,,0,24,548,364)
    let f% = 0
    let k% = 0
    let u% = 0
    let anz! = 1.5
    let File$ =
    clearlist
    addfonts
    @movelisttochoice(schrift%)
    @sendmessage(schrift%,$14E,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%,$14E,2,0)
    zeigeschrift
    @SetFocus(Text%)
    let _ende% = 0

    whilenot _ende%

        waitinput

        if %key = 2

            geändert
            let _ende% = 1

        elseif %key = 4

            If ((%WinRight - %WinLeft) > 220) and ((%WinBottom - %WinTop) >120)

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

            endif

        elseif @menuitem(100)

            geändert
            SetText text%,
            Let File$=
            WindowTitle Mini-Ed 1.5
            @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(-3808)

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

        elseif @menuitem(-4064)

            showmin

        elseif @menuitem(-4048)

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

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

            Geändert
            Let _ende% = 1

        elseif @menuitem(130)

            @messagebox(programmiert mit XProfan,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 @buttonstate(%getfocus) <> 108

                let f% = 1 - f%

                if f%

                    settext %getfocus,F

                else

                    settext %getfocus,f

                endif

                zeigeschrift

            endif

        elseif @getfocus(kursiv%)

            if @buttonstate(%getfocus) <> 108

                let k% = 1 - k%

                if k%

                    settext %getfocus,K

                else

                    settext %getfocus,k

                endif

                zeigeschrift

            endif

        elseif @getfocus(unterstrichen%)

            if @buttonstate(%getfocus) <> 108

                let u% = 1 - u%

                if u%

                    settext %getfocus,U

                else

                    settext %getfocus,u

                endif

                zeigeschrift

            endif

        endif

    endwhile

    @destroywindow(_dlg%)

endproc

HAUPTPROGRAMM
=============
set(TrueColor,0)
windowstyle $11F
windowtitle Mini-Ed 1.0
window 20,20-555,452
cls @rgb(23,23,23)
PopUp &File
AppendMenu 100,&Neu
AppendMenu 101,&Laden
AppendMenu 102,&Speichern
AppendMenu 103,Speichern &als
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 %
AppendMenuBar 130,a&Info
CheckMenu 201,1
editor
end
 
15.07.2007  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.605 Views

Untitledvor 0 min.
Rockford01.08.2024
Sven Bader22.02.2023
PETER195618.07.2018
Peter Max Müller18.05.2018
Di più...

Themeninformationen

Dieses Thema hat 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie