Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Bildbox erstellen (ohne API)
Lauffähig ab Profan-Version 5.0
BILDBOX Version 1.0 © by Rolf Koch / Koblenz (Roko-Software) Oktober 2000
IDEEN Vorlage: Wie erstelle ich eine Bildlistbox ohne Api?
Hallo, hier ein Beispiel, wie Du zumindest eine Bitmapbox
erschummeln kannst. Achtung bitte darauf achten, daß
die Bilder durchnummeriert sind. Falls man Bilder einspeißt,
so kann man ja in einer Schleife die Bilder mit
let copy$=i%;.BMP
copy Test.bmp > copy$ in eine richtige Form bringen.
Mann könnte diese auch vor Programmende wieder löschen.
Alles ist möglich auch mit reinem Profan - einfach weiterdenken
bei diesem Code.
Achtung: Bilder müssen im selben Pfad wie Programm sein, zur Not
mit Pfadvariablen arbeiten.
Natürlich ist dieses Beispiel noch nicht einwandfrei, aber
macht was draus. Wie immer als Ideenvorlage.
$P+
SetErrorLevel 0
Declare Edit1&
Declare Text1&
Declare appexit%
Declare GroupBox1&
Declare GroupBox2&
Declare VScroll1&
Declare Bildmenge&,i%
Declare b1$,b2$,b3$,b4$,b5$,b6$,b7$,b8$,b9$,b10$
Declare b11$,b12$,b13$,b14$,b15$,b16$,b17$,b18$,b19$,b20$
Declare Zeile$,Bildzaehler%,scrollpos&
Let Bildmenge&=10 Anzahl der Bilder:2
SetTrueColor 1
WindowStyle $003F
WindowTitle Schummel Bildlistbox ohne Api v 1.0 (© by Rolf Koch Roko-Software)
Window Add(%maxX,50),114 - 498,408
Cls @RGB(192,192,192)
UseFont MS Sans Serif,13,0,0,0,0
SetDialogFont 1
Let GroupBox1&=CreateGroupBox(%hwnd,,11,16,185,338)
Let VScroll1&=CreateVScroll(%hwnd,,177,24,16,328)
Let Edit1&=CreateEdit(%hwnd,,268,53,172,21)
Let Text1&=CreateText(%hwnd,Gewählter Eintrag:,269,30,91,17)
LOADBMP PROFAN.BMP,270,130;0
SetScrollRange VScroll1&,0,Bildmenge&
SetScrollPos VScroll1&,0
SetWindowPos %hwnd = 207,114 - 498,408;0
PROC BILDER Bilder aufbereiten
PARAMETERS i%
inc i% Hier wäre normalerweise eine 2te Schleife angebracht
let b1$=i%;.BMP
inc i%
let b2$=i%;.BMP
inc i%
let b3$=i%;.BMP
inc i%
let b4$=i%;.BMP
inc i%
let b5$=i%;.BMP
inc i%
let b6$=i%;.BMP
inc i%
let b7$=i%;.BMP
inc i%
let b8$=i%;.BMP
inc i%
let b9$=i%;.BMP
inc i%
let b10$=i%;.BMP
inc i%
let b11$=i%;.BMP
inc i%
let b12$=i%;.BMP
inc i%
let b13$=i%;.BMP
inc i%
let b14$=i%;.BMP
inc i%
let b15$=i%;.BMP
inc i%
let b16$=i%;.BMP
inc i%
let b17$=i%;.BMP
inc i%
let b18$=i%;.BMP
inc i%
let b19$=i%;.BMP
inc i%
let b20$=i%;.BMP
ENDPROC
PROC BILD
locate 1,1
LOADSIZEDBMP Weis.bmp,12,24 - 164,328;0 Hintergrund
DrawText 60,40,b1$
LOADSIZEDBMP b1$,25,30 - 30,30;0
DrawText 60,72,b2$ Hier könnte auch was anderes hin
LOADSIZEDBMP b2$,25,62 - 30,30;0
DrawText 60,104,b3$
LOADSIZEDBMP b3$,25,94 - 30,30;0
DrawText 60,136,b4$
LOADSIZEDBMP b4$,25,126 - 30,30;0
DrawText 60,168,b5$
LOADSIZEDBMP b5$,25,158 - 30,30;0
DrawText 60,200,b6$
LOADSIZEDBMP b6$,25,190 - 30,30;0
DrawText 60,232,b7$
LOADSIZEDBMP b7$,25,222 - 30,30;0
DrawText 60,264,b8$
LOADSIZEDBMP b8$,25,254 - 30,30;0
DrawText 60,298,b9$
LOADSIZEDBMP b9$,25,286 - 30,30;0
DrawText 60,330,b10$
LOADSIZEDBMP b10$,25,318 - 30,30;0
ENDPROC
BILDER 0 Proc zum Aufbereiten der Bilder
BILD Bilder anzeigen
WhileNot appexit%
WaitInput
If Equ(%key,2)
Let appexit%=1
ElseIf GetFocus(VScroll1&)
let scrollpos&=@GetScrollPos(VScroll1&)
Bilder scrollpos&
Bild
ElseIf Mouse(14,30 - 176,62) HotSpot1
Bild
CopyBmp 14,30-145,30 > 25,30;4
settext edit1&,b1$
ElseIf Mouse(14,62 - 176,94)
Bild
CopyBmp 14,62-145,30 > 25,62;4
settext edit1&,b2$
ElseIf Mouse(14,94 - 176,126)
Bild
CopyBmp 14,62-145,30 > 25,94;4
settext edit1&,b3$
ElseIf Mouse(14,126 - 176,155)
Bild
CopyBmp 14,62-145,30 > 25,126;4
settext edit1&,b4$
ElseIf Mouse(13,158 - 176,190)
Bild
CopyBmp 14,62-145,30 > 25,158;4
settext edit1&,b5$
ElseIf Mouse(13,190 - 175,222)
Bild
CopyBmp 14,62-145,30 > 25,190;4
settext edit1&,b6$
ElseIf Mouse(12,222 - 174,254)
Bild
CopyBmp 14,62-145,30 > 25,222;4
settext edit1&,b7$
ElseIf Mouse(11,254 - 173,286)
Bild
CopyBmp 14,62-145,30 > 25,254;4
settext edit1&,b8$
ElseIf Mouse(10,286 - 172,318)
Bild
CopyBmp 14,62-145,30 > 25,286;4
settext edit1&,b9$
ElseIf Mouse(10,318 - 172,350)
Bild
CopyBmp 14,62-145,30 > 25,318;4
settext edit1&,b10$
ElseIf Equ(%key,4)
Fenstergröße
ElseIf Equ(%key,5)
Help
EndIf
Wend