Español
Fuente/ Codesnippets

Bildbetrachter

 
bildbetrachter.zip:  [...] 
 
14.05.2005  
 




KompilierenMarcaSeparación
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Bildbetrachter
Lauffähig ab Profan-Version 5.0
###################################
Andreas Miethe * November 1998
###################################
BITMAPS (BMP),(RLE),(DIB)
ICONS   (ICO)
CURSOR  (CUR),(ANI)
einlesen und einem Control zuweisen
###################################
Definitionen
############
DEF @ALoadImage(6) ! USER32,LoadImageA
Loadimage :
Parameter : %Hinstance,Name$,Art,X,Y,Flags
HInstance = das aufrufende Programm
Name$     = Name des Bildes, Cursors, Icons
Art       = BITMAP(0) ICON(1) CURSOR(2) METAFILE(3)
X         = Groesse X-Achse
Y         = Groesse Y-Achse
Flags:
LR_DEFAULTCOLOR     0x0000
LR_MONOCHROME       0x0001
LR_COLOR            0x0002
LR_COPYRETURNORG    0x0004
LR_COPYDELETEORG    0x0008
LR_LOADFROMFILE     0x0010
LR_LOADTRANSPARENT  0x0020
LR_DEFAULTSIZE      0x0040
LR_VGACOLOR         0x0080
LR_LOADMAP3DCOLORS  0x1000
LR_CREATEDIBSECTION 0x2000
LR_COPYFROMRESOURCE 0x4000
LR_SHARED           0x8000
Deklarationen
#############
Declare Bild&,Art%,Bild#,Ende%
Declare x%
Let x%=0
Declare ImageControl&[9],Window2&[9]  das reicht fuer 10 Bilder, kann natuerlich auch variabel hochgesetzt
Declare Image$,ver!
Declare AnzahlBilder%
Let AnzahlBilder% = -1
Hauptfenster aufbauen
#####################
SettrueColor 1
WindowTitle Bildbetrachter für Bitmaps, Icons, Cursor, animierte Cursor ...
Window Add(%Maxx,1),0 - %Maxx,%Maxy
Cls @RGB(192,192,192)
UseFont Arial,15,0,0,0,0
SetDialogFont 1
UseIcon A
########################################################
Menue aufbauen
Voreinstellungen :
Bildinformationen werden nach laden des Bildes aktiviert
########################################################
PopUp Programm
AppendMenu 100,Bild Laden
Separator
AppendMenu 102,Ende
PopUp Bilder
Das Hauptfenster auf den Bildschirm
###################################
SetWindowPos %Hwnd = 0,0 - %Maxx,%Maxy

Proc Bildladen

    Declare Maxb!,Maxh!,xx!,ver1!
    Let xx! = 1
    Let Maxb! = 0
    Let Maxh! = 0
    Let Image$ = @LoadFile$(Bild Laden...,Bitmaps|*.BMP;*.RLE;*.DIB;|Icon|*.ICO|Cursor|*.CUR;*.ANI)

    If GT$(Image$,)

        Dim Bild#,Len(Image$) + 1
        Imageart bestimmen
        ##################
        Case Equ$(Upper$(Right$(Image$,3)),Upper$(BMP)):Let Art% = 0
        Case Equ$(Upper$(Right$(Image$,3)),Upper$(RLE)):Let Art% = 0
        Case Equ$(Upper$(Right$(Image$,3)),Upper$(DIB)):Let Art% = 0
        Case Equ$(Upper$(Right$(Image$,3)),Upper$(ICO)):Let Art% = 1
        Case Equ$(Upper$(Right$(Image$,3)),Upper$(CUR)):Let Art% = 2
        Case Equ$(Upper$(Right$(Image$,3)),Upper$(ANI)):Let Art% = 2
        Image der Variablen zuweisen
        ############################

        If equ(Art%,0)

            Mloadbmp Image$
            Let maxh!=%bmpy
            Let maxb!=%bmpx
            let ver!=div(%bmpy,%bmpx)  Verhaeltnis X_Y - Achse
            Das Bitmap koennte groesser als der Bildschirm sein, daher
            X und Y-Achsen an Bildschirmgroesse anpassen
            ##########################################################

            whilenot and(lt(maxh!,sub(%Maxy,180)),lt(maxb!,sub(%Maxx,10)))

                Let maxh!=sub(maxh!,xx!)
                Let maxb!=sub(Maxb!,div(xx!,ver!))
                Let xx!=add (xx!,1)

            wend

            String Bild#,0 = Image$
            Let Bild& = @ALoadImage(%HInstance,Bild#,Art%,Maxb!,Maxh!,$0050)

        ElseIf neq(Art%,0)

            String Bild#,0 = Image$
            Let Bild& = @ALoadImage(%HInstance,Bild#,Art%,0,0,$0050)

        endif

        Dispose Bild#

    EndProc

    Proc Bildzeigen

        Inc AnzahlBilder%  Zaehler um eins hochsetzen
        AppendMenu add(200,anzahlbilder%),Image$  Menuepunkt hinzufuegen
        Declare Breite%,Button%,Ende1%
        Declare BildInfo%,Bildname$,Bildbreite%,Bildhoehe%,Bildart%
        Let Window2&[AnzahlBilder%] = @CreateWindow(%Hwnd,image$,0,0,0,0)
        ImageControl nach Art erstellen
        ###############################
        Case Equ(art%,0):Let ImageControl&[AnzahlBilder%] = @Control(Static,,$5000100E,0,0,0,0,Window2&[AnzahlBilder%],1001,%Hinstance)
        Case Gt(art%,0):Let ImageControl&[AnzahlBilder%] = @Control(Static,,$50001003,0,0,0,0,Window2&[AnzahlBilder%],1001,%Hinstance)
        Image dem Control zuweisen
        ##########################
        Sendmessage(ImageControl&[AnzahlBilder%],$0172,Art%,Bild&)
        Case Lt(Width(ImageControl&[AnzahlBilder%]),500):Let Breite%=500 Mindestbreite des Fensters
        Case Gt(Width(ImageControl&[AnzahlBilder%]),500):Let Breite%=Width(ImageControl&[AnzahlBilder%])
        SetWindowPos Window2&[AnzahlBilder%] = 4,40 - Breite%,add(Height(ImageControl&[AnzahlBilder%]),148)
        @CreateText(Window2&[AnzahlBilder%],Bildinformationen,10,add(Height(ImageControl&[AnzahlBilder%]),20),300,24)
        @CreateText(Window2&[AnzahlBilder%],add$(Bildname : ,Image$),10,add(Height(ImageControl&[AnzahlBilder%]),40),400,24)

        If equ(art%,0)

            @CreateText(Window2&[AnzahlBilder%],add$(add$(Bildbreite : ,str$(%bmpx)), Pixel),10,add(Height(ImageControl&[AnzahlBilder%]),60),300,24)
            @CreateText(Window2&[AnzahlBilder%],add$(add$(Bildhöhe : ,str$(%bmpy)), Pixel),10,add(Height(ImageControl&[AnzahlBilder%]),80),300,24)

        elseif neq(art%,0)

            @CreateText(Window2&[AnzahlBilder%],add$(add$(Bildbreite : ,str$(Width(ImageControl&[AnzahlBilder%]))), Pixel),10,add(Height(ImageControl&[AnzahlBilder%]),60),300,24)
            @CreateText(Window2&[AnzahlBilder%],add$(add$(Bildhöhe : ,str$(Height(ImageControl&[AnzahlBilder%]))), Pixel),10,add(Height(ImageControl&[AnzahlBilder%]),80),300,24)

        endif

        Case Equ(Art%,0):@CreateText(Window2&[AnzahlBilder%],Bildart : BITMAP,10,add(Height(ImageControl&[AnzahlBilder%]),100),300,24)
        Case Equ(Art%,1):@CreateText(Window2&[AnzahlBilder%],Bildart : ICON,10,add(Height(ImageControl&[AnzahlBilder%]),100),300,24)
        Case Equ(Art%,2):@CreateText(Window2&[AnzahlBilder%],Bildart : CURSOR,10,add(Height(ImageControl&[AnzahlBilder%]),100),300,24)

    EndProc

    Hauptprogramm
    #############
    Let Ende% = 0

    Whilenot Ende%

        Waitinput
        Let x%=0

        whilenot equ(x%,add(AnzahlBilder%,1))

            if and(equ(getactivewindow(),Window2&[x%]),equ(%message,160))

                destroywindow(Window2&[x%])

            endif

            Inc x%

        wend

        If MenuItem(102)

            Let Ende% = 1

        ElseIf MenuItem(100)

            if lt(anzahlbilder%,9)

                Bildladen
                Bildzeigen

            else

                Messagebox(Grenze erreicht,Meldung,0)

            endif

        ElseIf MenuItem(200)

            Destroywindow(Window2&[0])
            RemoveMenu 200
            Dec anzahlbilder%

        ElseIf MenuItem(201)

            Destroywindow(Window2&[1])
            Dec anzahlbilder%
            RemoveMenu 201

        ElseIf MenuItem(202)

            Destroywindow(Window2&[2])
            Dec anzahlbilder%
            RemoveMenu 202

        ElseIf MenuItem(203)

            Destroywindow(Window2&[3])
            Dec anzahlbilder%
            RemoveMenu 203

        ElseIf MenuItem(204)

            Destroywindow(Window2&[4])
            Dec anzahlbilder%
            RemoveMenu 204

        ElseIf MenuItem(205)

            Destroywindow(Window2&[5])
            Dec anzahlbilder%
            RemoveMenu 205

        ElseIf MenuItem(206)

            Destroywindow(Window2&[6])
            Dec anzahlbilder%
            RemoveMenu 206

        ElseIf MenuItem(207)

            Destroywindow(Window2&[7])
            Dec anzahlbilder%
            RemoveMenu 207

        ElseIf MenuItem(208)

            Destroywindow(Window2&[8])
            Dec anzahlbilder%
            RemoveMenu 208

        ElseIf MenuItem(209)

            Destroywindow(Window2&[9])
            Dec anzahlbilder%
            RemoveMenu <
lass=s2>209 EndIf EndWhile End
 
16.07.2007  
 



Zum Quelltext


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

1.860 Views

Untitledvor 0 min.
Georg28.01.2021
AndreasS26.12.2018
Heli9824.06.2017
R.Schneider16.06.2016
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

unbekannt (2x)


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