Deutsch
Quelltexte/ Codesnippets

Bildbetrachter

 
bildbetrachter.zip:  [...] 
 
14.05.2005  
 




KompilierenMarkierenSeparieren
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 209

        EndIf

    EndWhile

    End
 
16.07.2007  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.855 Betrachtungen

Unbenanntvor 0 min.
Georg28.01.2021
AndreasS26.12.2018
Heli9824.06.2017
R.Schneider16.06.2016
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie