hier ein Beispiel eine click through dia Show. Für Kritik bin ich immer dankbar!!!!!
Code: Alles auswählen
UseJPEGImageDecoder()
Global DelayTime.w
Global Pfad.s
Global Zufall.b
Global Breite.w
Global Hoehe.w
Global lastx.w
Global lasty.w
Global posx.w
Global posy.w
Global Zeit.c
Global Color.l
DelayTime = 1000
Image0 = CatchImage(0, ?Image0)
Image5 = CatchImage(5, ?Image5)
DataSection
Image0:IncludeBinary "slide.BMP"
Image5:IncludeBinary "2.ico"
EndDataSection
Count.c = 0
Procedure HideWindowFromShowingInTaskbar(WindowID, NewWindowHandle, show)
If show=1
HideWindow(WindowID,1)
EndIf
SetWindowLong_(WindowID(WindowID),#GWL_HWNDPARENT,NewWindowHandle)
If show=1
HideWindow(WindowID,0)
EndIf
ProcedureReturn
EndProcedure
Procedure size()
ffhwd = FindWindow_("Progman", "Program Manager")
WindowRect.RECT ; WindowRect als RECT Struktur definieren
GetWindowRect_(ffhwd, WindowRect) ; Hier isse
Breite= WindowRect\right
Hoehe =WindowRect\bottom
ExamineDesktops()
SHAppBarMessage_(#ABM_GETTASKBARPOS,Taskbar.APPBARDATA)
Select Taskbar\uEdge
Case #ABE_BOTTOM
colpixx=DesktopWidth(0)-4
colpixy=DesktopHeight(0)-4
Case #ABE_LEFT
colpixx=4
colpixy=DesktopHeight(0)-4
Case #ABE_TOP
colpixx=DesktopWidth(0)-4
colpixy=4
Case #ABE_RIGHT
colpixx=DesktopWidth(0)-4
colpixy=DesktopHeight(0)-4
EndSelect
hDC = GetDC_(0)
Color = GetPixel_(hDC,colpixx,colpixy)
ReleaseDC_(0, hDC)
EndProcedure
Procedure CheckTimer()
Static Time.l
If Time = 0
Time = ElapsedMilliseconds() + DelayTime
ProcedureReturn #True
EndIf
If Time < ElapsedMilliseconds()
Time + DelayTime
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
Procedure SetWinTransparency(win,level)
If level>=0 And level<101
hLib = LoadLibrary_("user32.dll")
If hLib
adr = GetProcAddress_(hLib,"SetLayeredWindowAttributes")
If adr
SetWindowLong_(WindowID(win),#GWL_EXSTYLE,GetWindowLong_(WindowID(win),#GWL_EXSTYLE)|$00080000); Or #WS_EX_LAYERED|$00080000)
SetLayeredWindowAttributes_(WindowID(win), RGB(255, 0, 255),255*level/100, $3)
EndIf
FreeLibrary_(hLib)
EndIf
EndIf
EndProcedure
Procedure Darstellung()
LoadImage(40, GetGadgetItemText(20,Random(CountGadgetItems(20)-1),1))
If ImageWidth(40)/Breite=>0.8 Or ImageHeight(40)/Hoehe=>0.8
If ImageWidth(40)=>ImageHeight(40)
fac.d= ImageHeight(40)/ImageWidth(40)
ResizeImage(40,hoehe*0.8,(hoehe*0.8)*fac)
Else
fac.d=ImageWidth(40)/ImageHeight(40)
ResizeImage(40,(hoehe*0.8)*fac,hoehe*0.8)
EndIf
EndIf
If Zufall=0
ResizeWindow(10, posx, posy, ImageWidth(40), ImageHeight(40))
Else
posx=Random(Breite-200):posy=Random(Hoehe-200)
ResizeWindow(10, posx, posy, ImageWidth(40), ImageHeight(40))
EndIf
StartDrawing(WindowOutput(10))
DrawImage(ImageID(40), 0, 0)
StopDrawing()
ResizeWindow(20,posx+ImageWidth(40)-15,posy,#PB_Ignore,#PB_Ignore )
EndProcedure
If ProgramParameter()=""
Pfad=PathRequester("Diashow","")
Zeit=Val(InputRequester("Diashow","Zeit in sec","20"))
Zufall=MessageRequester("Diashow","Zufällig positionieren",#PB_MessageRequester_YesNo)
If Zufall=6
posx=10:posy=10
Else
posx=Val(InputRequester("Diashow","X-Position","200"))
posy=Val(InputRequester("Diashow","Y-Position","200"))
EndIf
If Pfad<>""
Speichern.s=InputRequester("Diashow","Zeile kopieren und in die Verknüpfung einfügen!",Pfad +" "+Str(Zeit)+" "+Str(Zufall)+" "+Str(posx)+" "+Str(posy))
EndIf
End
Else
Pfad= ProgramParameter(0)
Zeit= Val(ProgramParameter(1))
Zufall= Val(ProgramParameter(2))
posx= Val(ProgramParameter(3))
posy= Val(ProgramParameter(4))
EndIf
If OpenWindow(0, 0, 0, 20, 20,"Timer-Test", #PB_Window_SystemMenu)
ListViewGadget(20, 0, 0, 400, 500)
Size()
AddSysTrayIcon(2, WindowID(0), Image5)
SysTrayIconToolTip(2,"Simple Slideshow")
HideWindow(0,1)
;Directory enlsesen
If Right(Pfad,1)<>"\" :Pfad+"\":EndIf
If ExamineDirectory(directoryid,Pfad,"*.*")
dirid=NextDirectoryEntry(directoryid)
While dirid
dirtype = DirectoryEntryType(directoryid)
Select dirtype
Case #PB_DirectoryEntry_File
file.s=DirectoryEntryName(directoryid)
this_extension.s=LCase(GetExtensionPart(file))
this_filename.s=LCase(Left(file,Len(file)-Len(this_extension)))
If Len(this_extension):this_filename=Left(this_filename,Len(this_filename)-1):EndIf
If this_extension="jpg"
file.s=Pfad+DirectoryEntryName(directoryid)
AddGadgetItem(20,0,file)
EndIf
EndSelect
dirid=NextDirectoryEntry(directoryid)
Wend
EndIf
;Ende Directory
;Dia öffnen
OpenWindow(10,10,10,100,100,"",#PB_Window_BorderLess)
HideWindowFromShowingInTaskbar(10, WindowID(0), 0)
ImageGadget(30, 0, 0, 30,30,image0)
SetWinTransparency(10,50)
;Button erstellen
OpenWindow(20,100,100,15,15,"",#PB_Window_BorderLess)
HideWindowFromShowingInTaskbar(20, WindowID(0), 0)
SetWindowColor(20,RGB(Red(Color),Green(Color),Blue(Color)))
Darstellung()
;Ende Diashow öffnen
Repeat
If lastx <> WindowMouseX(10) Or lasty <> WindowMouseY(10)
lastx=WindowMouseX(10)
lasty=WindowMouseY(10)
StartDrawing(WindowOutput(10))
DrawImage(ImageID(40), 0, 0)
DrawImage(image0, lastx-15, lasty-15)
StopDrawing()
EndIf
EventID = WindowEvent()
Select EventID
Case #PB_Event_CloseWindow
Break
Case 0
Delay(200)
Case #WM_LBUTTONDOWN
SendMessage_(WindowID(20),#WM_NCLBUTTONDOWN,#HTCAPTION,0)
ResizeWindow(10,WindowX(20)-ImageWidth(40)+15,WindowY(20),#PB_Ignore,#PB_Ignore)
EndSelect
If CheckTimer()
Count + 1
If Zeit=Count:FreeImage(40):Darstellung():Count=0:EndIf
EndIf
ForEver
EndIf
End