English
Source / code snippets

Imageviewer

 
Imageviewer.zipper:  [...] 
 
05/14/05  
 




CompileMarkSeparation
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
 
07/16/07  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

1.856 Views

Untitledvor 0 min.
Georg01/28/21
AndreasS12/26/18
Heli9806/24/17
R.Schneider06/16/16
More...

Themeninformationen

this Topic has 1 subscriber:

unbekannt (2x)


Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie