Español
Foro

Mapa de bits del cuadro de diálogo

 

H.Brill
¡Hola,
hatte nichts gefunden. Yo bräuchte
así una 7Segment-Anzeige en mi
Diálogo. Dazu müßte Yo una vacío
Mapa de bits redactar, darauf dibujar
y luego en el Diálogo Mostrar.

Bin aber por desgracia, no así Grafik-
bewandert.

Hab como una PureBasic Quellcode gefunden,
el Me gusta en XProfan umsetzen möchte.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
15.04.2010  
 



¿Te ha Crear("Mapa de bits ?
 
15.04.2010  
 




ByteAttack
Moin,

wieso nmmst No simplemente una Grafik con allen 11 Zuständen nebeneinander (Aus,0,1,2,3,4,5,6,7,8,9) ladest en el Speicher y kopierst entonces el Zona simplemente una Dialogelement?
 
Website:  [...] 
Facebook:  [...] 
15.04.2010  
 




ByteAttack
Hier veces una Grafik para Usted!


73 kB
Hochgeladen:15.04.2010
Ladeanzahl115
Descargar
 
Website:  [...] 
Facebook:  [...] 
15.04.2010  
 




ByteAttack
SO! Hier veces una simplemente Ejemplo:
KompilierenMarcaSeparación
Declare Dlg&

Proc Draw7Seg

    Parameters number$
    Declare 1$,2$,3$,1%,2%,3%
    1$=Left$(number$,1)
    2$=Mid$(number$,2,1)
    3$=Right$(number$,1)
    1%=Val(1$)+1
    2%=Val(2$)+1
    3%=Val(3$)+1
    StartPaint Dlg&
    MCopyBmp 118*1%,0-118,156 > 10,10;0
    MCopyBmp 118*2%,0-118,156 > 130,10;0
    MCopyBmp 118*3%,0-118,156 > 250,10;0
    EndPaint

EndProc

WindowStyle 24
WindowTitle "Hauptfenster %hwnd"
Window 10,10-200,100
cls 0
MLoadBmp $ProgDir+"7SEG.BMP"
Dlg&=Create("Dialog",%hwnd,"Dialogfenster",((%maxX/2)-192),((%maxY/2)-103),384,206)
StartPaint Dlg&
cls 0
MCopyBmp 0,0-118,156 > 10,10;0
MCopyBmp 0,0-118,156 > 130,10;0
MCopyBmp 0,0-118,156 > 250,10;0
EndPaint
Draw7Seg "012"
Waitmouse

594 kB
Hochgeladen:15.04.2010
Ladeanzahl89
Descargar
 
Website:  [...] 
Facebook:  [...] 
15.04.2010  
 




H.Brill
Ist sí interessant, aber como muß Yo
en efecto verschiedene Bitmaps mitschleppen,
si yo otro Farben haben voluntad.
Der Punkt como Dezimaltrenner fehlt de paso.

Hab como a algo como como en el Anhang pensamiento.

Könntet ihr veces encima media Code schauen.
Hab veces intenta, el PB-Code a übertragen,
aber irgendwo hakt lo. Ist auch todavía así manches
mejor a hacer, si yo a Speicherbitmaps
denke. Bin sólo kein así Grafiker.

PB-Code :
KompilierenMarcaSeparación
; PureBasic 4.40
; Idea from Localmotion34
; De préférence utilisez un gadget ayant un rapport de 11 * 13 ex 110 / 130
EnableExplicit
Structure SevenSegmentLed
x.l
y.l
width.l
height.l
Image.l
Gadget.l
value.l
point.l
color1.l
color2.l
BackgroundColor.l
EndStructure

;{ Datasection

    DataSection
    Led:
    ; Segment a
    Data.l 1,1,1,-1,6,0,1,1,-1,1,-6,0,-1,-1,0,0
    ; Segment g
    Data.l 1,6,1,-1,6,0,1,1,-1,1,-6,0,-1,-1,0,0
    ; Segment d
    Data.l 1,11,1,-1,6,0,1,1,-1,1,-6,0,-1,-1,0,0
    ; Segment f
    Data.l 1,1,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
    ; Segment b
    Data.l 9,1,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
    ; Segment e
    Data.l 1,6,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
    ; Segment c
    Data.l 9,6,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
    ; Point
    Data.l 10,11,1,1,-1,1,-1,-1,1,-1,0,0
    ; Fin dessin Leds
    Data.l 0,0
    SegmentA:
    Data.l 5,1
    SegmentB:
    Data.l 9,3
    SegmentC:
    Data.l 9,8
    SegmentD:
    Data.l 5,11
    SegmentE:
    Data.l 1,9
    SegmentF:
    Data.l 1,4
    SegmentG:
    Data.l 5,6
    SegmentP:
    Data.l 10,12
    EndDataSection

;}

ProcedureDLL SevenSegmentLed(BildId.l, x,y,width,height,color1,color2,BackgroundColor)
; Initialise the LinkedList the first call
Static Init

If Init=0

    Global NewList SevenSegmentLedLList.SevenSegmentLed()

EndIf

Init=1
; Fill the Structure
AddElement(SevenSegmentLedLList())
SevenSegmentLedLList()x=x
SevenSegmentLedLList()y=y
SevenSegmentLedLList()width=width
SevenSegmentLedLList()height=height
SevenSegmentLedLList()color1=color1
SevenSegmentLedLList()color2=color2
SevenSegmentLedLList()BackgroundColor=BackgroundColor
SevenSegmentLedLList()Image=CatchImage(#PB_Any,BildId)
Protected PWidth.f=SevenSegmentLedLList()width/11
Protected PHeight.f=SevenSegmentLedLList()height/13
;/ Dessine les Leds
;UseImage(SevenSegmentLedLList()Image)
StartDrawing(ImageOutput(SevenSegmentLedLList()Image))
Box(0,0,SevenSegmentLedLList()width,SevenSegmentLedLList()height,SevenSegmentLedLList()BackgroundColor)
Restore  Led

Repeat

    Read.l x
    Read.l y

    If x=0 And y=0 : Break : EndIf

        Protected a.l, b.l

        Repeat

            Read.l a
            Read.l b

            If a=0 And b=0 : Break : EndIf

                ;Line(x*PWidth,y*PHeight,a*PWidth,b*PHeight,color1)
                LineXY(x*PWidth,y*PHeight,x*PWidth + a*PWidth,y*PHeight + b*PHeight,color1)
                x=x+a : y=y+b
                ForEver
                ForEver
                StopDrawing()
                ; create the gadget & show the image
                SevenSegmentLedLList()Gadget=ImageGadget(#PB_Any,SevenSegmentLedLList()x,SevenSegmentLedLList()y,width,height,ImageID(SevenSegmentLedLList()Image),#PB_Image_Border)
                ; Return the gadget id
                ProcedureReturn ListIndex(SevenSegmentLedLList())
                EndProcedure
                ProcedureDLL SevenSegmentLedSet(id,value)
                SelectElement(SevenSegmentLedLList(),id)
                SevenSegmentLedLList()value=value
                Protected PWidth.f=SevenSegmentLedLList()width/11
                Protected PHeight.f=SevenSegmentLedLList()height/13
                ;/ Allume les Segments
                ;UseImage(SevenSegmentLedLList()Image)
                StartDrawing(ImageOutput(SevenSegmentLedLList()Image))
                ; Eteind les segments
                Restore SegmentA
                Protected n
                Protected a.l, b.l
                Protected temp.s
                For n=1 To 8
                Read.l a
                Read.l b
                FillArea(a*PWidth,b*PHeight,SevenSegmentLedLList()color1,SevenSegmentLedLList()BackgroundColor)
                Next

                Select value

                    Case 0
                    temp.s="abcdef"
                    Case 1
                    temp="bc"
                    Case 2
                    temp="abged"
                    Case 3
                    temp="abgcd"
                    Case 4
                    temp="fbgc"
                    Case 5
                    temp="afgcd"
                    Case 6
                    temp="afedgc"
                    Case 7
                    temp="abc"
                    Case 8
                    temp="abcdefg"
                    Case 9
                    temp="abcdfg"

                EndSelect

                ; Gestion du point

                If SevenSegmentLedLList()point=1

                    temp+"p"

                EndIf

                For n=1 To Len(temp)

                Select Mid(temp,n,1)

                    Case "a"
                    Restore SegmentA
                    Case "b"
                    Restore SegmentB
                    Case "c"
                    Restore SegmentC
                    Case "d"
                    Restore SegmentD
                    Case "e"
                    Restore SegmentE
                    Case "f"
                    Restore SegmentF
                    Case "g"
                    Restore SegmentG
                    Case "p"
                    Restore SegmentP

                EndSelect

                Read.l a
                Read.l b
                FillArea(a*PWidth,b*PHeight,SevenSegmentLedLList()color1,SevenSegmentLedLList()color2)
                Next
                StopDrawing()
                SetGadgetState(SevenSegmentLedLList()Gadget,ImageID(SevenSegmentLedLList()Image))
                EndProcedure
                ProcedureDLL SevenSegmentLedGet(id)
                SelectElement(SevenSegmentLedLList(),id)
                ProcedureReturn SevenSegmentLedLList()value
                EndProcedure
                Procedure SevenSegmentLedEvent(id)
                SelectElement(SevenSegmentLedLList(),id)
                ProcedureReturn SevenSegmentLedLList()Gadget
                EndProcedure
                ProcedureDLL SevenSegmentLedPoint(id,light)
                SelectElement(SevenSegmentLedLList(),id)
                SevenSegmentLedLList()light
                EndProcedure

mi Profano Incluir :
KompilierenMarcaSeparación
Declarar SevensegmentLed#, Led#, SegmentA#, SegmentB#, SegmentC#, SegmentD#, SegmentE#, SegmentF#, SegmentG#, SegmentP#
Declarar bmp1&, zaehler%
Declarar barray#[10]
Struct ssegmentLed = x%, y%, width%, height%, image&, gadget&, value&, point&, color1&, color2&, backgroundcolor&
Dim SevensegmentLed#, ssegmentLed
Dim barray#[], ssegmentLed
Dim Led#, 504
Dim SegmentA#,8
Dim SegmentB#,8
Dim SegmentC#,8
Dim SegmentD#,8
Dim SegmentE#,8
Dim SegmentF#,8
Dim SegmentG#,8
Dim SegmentP#,8

Proc InitSegments

    Segment a
    Largo Led#,0   = 1,1,1,-1,6,0,1,1,-1,1,-6,0,-1,-1,0,0
    Segment g
    Largo Led#,64  = 1,6,1,-1,6,0,1,1,-1,1,-6,0,-1,-1,0,0
    Segemnt d
    Largo Led#,128 = 1,11,1,-1,6,0,1,1,-1,1,-6,0,-1,-1,0,0
    Segemnt f
    Largo Led#,192 = 1,1,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
    Segment b
    Largo Led#,256 = 9,1,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
    Segemnt e
    Largo Led#,320 = 1,6,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
    Segemnt c
    Largo Led#,384 = 9,6,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
    Punto
    Largo Led#,448 = 10,11,1,1,-1,1,-1,-1,1,-1,0,0
    Ende Design Led
    Largo Led#,496 = 0,0
    Largo SegmentA#,0 = 5,1
    Largo SegmentB#,0 = 9,3
    Largo SegmentC#,0 = 9,8
    Largo SegmentD#,0 = 5,11
    Largo SegmentE#,0 = 1,9
    Largo SegmentF#,0 = 1,4
    Largo SegmentG#,0 = 5,6
    Largo SegmentP#,0 = 10,12
    zaehler% = 0

ENDPROC

Proc DisposeSegments

    DeleteObject SevensegmentLed#.image&
    DeleteObject bmp1&
    Disponer SevensegmentLed#, Led#, SegmentA#, SegmentB#, SegmentC#, SegmentD#, SegmentE#, SegmentF#, SegmentG#, SegmentP#
    Disponer barray#[]

ENDPROC

Proc SevenSegmentLed

    Parámetros x%, y%, width%, height%, color1&, color2&, Backgroundcolor&
    Declarar pwidth%, pheight%, mx%, my%, k%, a%, b%
    k% = 0

    With SevensegmentLed#

        .x% = x%
        .y% = y%
        .width% = width%
        .height% = height%
        .color1& = color1&
        .color2& = color2&
        .Backgroundcolor& = Backgroundcolor&
        .image& = @Crear("hNewPic", width%, height%, Backgroundcolor&)
        .Gadget& = Crear("BITMAP",hD% ,SevensegmentLed#.image&, width%, height%)

    Endwith

    barray#[zaehler%] = SevensegmentLed#
    StartPaint -1
    pwidth%  = width% / 11
    pheight% = height% / 13
    bmp1& = Crear("BITMAP",hD% ,SevensegmentLed#.image&, width%, height%)
    UseBrush 1, SevensegmentLed#.Backgroundcolor&
    Rectángulo SevensegmentLed#.x%, SevensegmentLed#.y% - SevensegmentLed#.width%, SevensegmentLed#.height%

    Mientras que 1

        mx% = @Largo(Led#, k%)
        my% = @Largo(Led#, k% + 4)
        Case (mx% = 0 And my% = 0) : Romper

        Mientras que 1

            a% = @Largo(Led#, k% + 4)
            b% 0 @Largo(Led#, k% + 8)
            Case (a% = 0 And b% = 0) : Romper
            USEP 0, 5, SevensegmentLed#.color1&
            Line mx% * pwidth%, my% * pheight% - mx% * pwidth% + a% * pwidth%, my% * pheight% + b% * pheight%
            mx% = mx% a%
            my% = my% + b%

        EndWhile

        k% = k% + 4

    EndWhile

    EndPaint
    Inc zaehler%
    bmp1& = Crear("BITMAP",hD% ,SevensegmentLed#.image&, width%, height%)
    Volver SevensegmentLed#.Gadget&

ENDPROC

Proc SevenSegmentLedSet

    Parámetros id%, value&
    Declarar pwidth%, pheight%, a%, b%, n%, temp$

    If id% < 9

        barray#[id%].value& = value&
        pwidth%  = barray#[id%].width% / 11
        pheight% = barray#[id%].height% / 13
        bmp1& = SevensegmentLed#.image&
        StartPaint image&

        WhileLoop 1, 8

            a% = @Largo(SegmentA#, 0)
            b% = @Largo(SegmentA#, 4)
            Fill a% *pwidth%, b% * pheight%, barray#[id%].color1&

        EndWhile

        Select value&

            CaseOf 0

            temp$ = "abcdef"

            CaseOf 1

            temp$ = "bc"

            CaseOf 2

            temp$ = "abged"

            CaseOf 3

            temp$ = "abgcd"

            CaseOf 4

            temp$ = "fbgc"

            CaseOf 5

            temp$ = "afgcd"

            CaseOf 6

            temp$ = "afedgc"

            CaseOf 7

            temp$ = "abc"

            CaseOf 8

            temp$ = "abcdefg"

            CaseOf 9

            temp$ = "abcdfg"

        EndSelect

        If barray#[id%].point& = 1

            temp$ = temp$ + "p"

        Endif

        WhileLoop 1, Len(temp$)

            Select Mid$(temp$, &LOOP, 1)

                CaseOf "a"

                a% = @Largo(SegmentA#, 0)
                b% = @Largo(SegmentA#, 4)

                CaseOf "b"

                a% = @Largo(SegmentB#, 0)
                b% = @Largo(SegmentB#, 4)

                CaseOf "c"

                a% = @Largo(SegmentC#, 0)
                b% = @Largo(SegmentC#, 4)

                CaseOf "d"

                a% = @Largo(SegmentD#, 0)
                b% = @Largo(SegmentD#, 4)

                CaseOf "e"

                a% = @Largo(SegmentE#, 0)
                b% = @Largo(SegmentE#, 4)

                CaseOf "f"

                a% = @Largo(SegmentF#, 0)
                b% = @Largo(SegmentF#, 4)

                CaseOf "g"

                a% = @Largo(SegmentG#, 0)
                b% = @Largo(SegmentG#, 4)

                CaseOf "p"

                a% = @Largo(SegmentP#, 0)
                b% = @Largo(SegmentP#, 4)

            EndSelect

            Fill a% * pwidth%, b% * pheight%, barray#[id%].color2&

        EndWhile

        Endpaint

    Endif

ENDPROC

Proc SevenSegmentLedPoint

    Parámetros id%, light&
    barray#[id%].point& = light&

ENDPROC


Testprogramm :
KompilierenMarcaSeparación
 $I SevenSegment.inc
Declarar bild1&, bild2&, hD%
InitSegments

Proc Diálogo

    Declarar hB%, info%, Editar1%, Label1%, OK%, Name$
    hD% = @Crear("Dialog",%DeskTop,"Dialogfenster",100,100,600,400)
    hB% = @Crear("Button",hD%,"&ENDE",10,10,60,25)
    info% = @Crear("Button", hD%, "&Info", 100, 10, 60, 25)
    Label1% = @Crear("Text", hD%, "Name : ", 10 ,50, 60, 20)
    Editar1% = @Crear("Edit", hD%, "Text", 70, 50, 240, 20)
    bild1& = @Crear("hNewPic", 80, 120, RGB(255,255,255))
    bild2& = @Crear("hNewPic", 80, 120, RGB(255,255,255))
    bmp1& = Crear("BITMAP",hD% ,bild1&,80,120)
    DrawSizedPic bild1&, 220, 220 - 80, 120; 0
    bild1& = SevenSegmentLed(200,220,40,80,8404992,16776960,10485760)
    bild2& = SevenSegmentLed(250,220,40,80,4227072,65280,4210688)
    SevenSegmentLedSet(1, 5)
    Claro OK%   OK% en 0 conjunto

    Sinestar encargado Ok%   solange OK% igual 0 es

        WaitInput

        If @Clicked(hB%)

            Ok% = 1

        ElseIf %Key = 2

            Hier se el X (rechts oben Schließen) ausgewertet
            OK% = 1

        ElseIf @Clicked(info%)

            Info Button gedrückt, lo se una einfache MessageBox ausgegeben.
            Name$ = @GetText $(Editar1%)
            Hier se de el Editar campo el Name gelesen y en el Messagebox ausgegeben.
            @MessageBox("Ich bin el Autor : " + Name$, "Info", 0)
            <... otro Abfragen y Aktionen ...>

        EndIf

    EndWhile

    Dialogfenster (incl. Button, usw.) entfernen
    @DestroyWindow(hD%)

ENDPROC

Hier se el Dialogbox (Procedur) aufgerufen
Diálogo
DisposeSegments
DeleteObject bild1&
DeleteObject bild2&
End

554 kB
Hochgeladen:15.04.2010
Ladeanzahl100
Descargar
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
15.04.2010  
 




ByteAttack
OK! Hier hätte Todavía una Vorschlag como simplemente va.

Anfragen si bajo $WinPath+\Fonts el Schriftart DIGIT.TTF disponible es. Wenn no simplemente hay hin kopieren...

Und ya spielen Farben, Größe, Punkte, Doppelpunkte, Bindestriche etc. ningún papel mehr...

Ejemplo:
KompilierenMarcaSeparación
Set("TrueColor",1)
WindowStyle 24
WindowTitle "Digit"
Window ((%maxX/2)-320),((%maxY/2)-140)-640,280
CLS 0
UseFont "Digit",100,0,0,0,0
TextColor RGB(0,255,0),-1
DrawText 10,10,"0123456789"
TextColor RGB(255,0,0),-1
DrawText 10,120,"01:23 - 4.5."
Wai

Jetzt debería Yo sólo wissen, si uno auch Schriftarten nutzen kann, el no en Windows installiert son ! Das wäre veces interessant a wissen !!!

4 kB
Hochgeladen:21.04.2010
Ladeanzahl47
Descargar
19 kB
Hochgeladen:21.04.2010
Ladeanzahl95
Descargar
 
Website:  [...] 
Facebook:  [...] 
21.04.2010  
 




Thomas
Freier
Lo dürften aber genügend geeignete Libre Digifonts en el WEB disponible ser. Z.B.: [...] 
 
Gruß Thomas
Windows XP SP2, XProfan X2
21.04.2010  
 




ByteAttack
Thomas Freier, Beitrag=56834, Zeitpunkt=21.04.2010
Lo dürften aber genügend geeignete Libre Digifonts en el WEB disponible ser. Z.B.: [...] 


Je nee - Is klar... Cuestión mich sólo, si uno auch TTF nutzen kann, el no installiert son. Quasi encima irgendeinen Zugriff en el TTF-Expediente direkt.
 
Website:  [...] 
Facebook:  [...] 
21.04.2010  
 



@Marc: Nein, sólo después de "windows"fonts... kopierte. ^ ^

Für media Geschmack macht ihr el viel a kompliziert.

Einfach Bitmapfonttexturmäßig (16*16 Felder en z.B. 512x512-Pixel-Bild) y sólo después de einfacher XY-Formel rauskopieren - es auch superfix oder Tengo el Ziel el Übung missverstanden. ^ ^
 
21.04.2010  
 




ByteAttack
Sí - Er voluntad sí no Gráficos con se rumschleppen ...
 
Website:  [...] 
Facebook:  [...] 
21.04.2010  
 



Entweder malt él el Digits en una hPic oder él läd esta en una hPic - él kann auch una hPic erzeugen y simplemente Bilddaten de el Speicher en él ablegen con SetBitmapBits(hPic,pixelAnzahl,pixelSpeicher) como z.B. en el Pixels.Inc. Mit GetBitmapBits käme uno auch simplemente a el Pixeldaten heran, podría uno como .tex speichern y Datengenerator einbinden en por SetBitmapBits wiederum anzuweisen. ^ ^
 
21.04.2010  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

11.177 Views

Untitledvor 0 min.
E.T.25.06.2023
Christof Neuß11.07.2018
ByteAttack05.08.2015
Magda06.09.2014
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie