Français
Source/ Codesnippets

Bildbetrachter

 
bildbetrachter.zip:  [...] 
 
14.05.2005  
 




KompilierenMarqueSéparation
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 Fin
 
16.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.849 Views

Untitledvor 0 min.
Georg28.01.2021
AndreasS26.12.2018
Heli9824.06.2017
R.Schneider16.06.2016
plus...

Themeninformationen

cet Thema hat 1 participant:

unbekannt (2x)


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