Français
Source/ Codesnippets

Editor Mini Programmieren

 

KompilierenMarqueSéparation
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 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.783 Views

Untitledvor 0 min.
Uwe Starke17.11.2023
PETER195618.07.2018
RudiB.04.03.2013
Andre Hilprecht25.12.2012
plus...

Themeninformationen

cet Thema hat 1 participant:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie