Italia
Fonte/ Codesnippets

Editor Mini Programmieren

 

KompilierenMarkierenSeparieren
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
 
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.796 Views

Untitledvor 0 min.
Uwe Starke17.11.2023
PETER195618.07.2018
RudiB.04.03.2013
Andre Hilprecht25.12.2012
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