Karakatoa
04-11-2004, 17:49
Olá pessoal
Vou partilhar convosco uma brincadeira que fiz no outro dia. Não está nada de especial uma vez que fiz aquilo um bocado ás três pancadas. Simula uma pequena janela de mensagem que aparece no canto inferior direito do ecran, do tipo messager mas com um design pior (Eu nao tenho jeito nenhum para o design... :'( )
O código fonte em C# está disponivel em:
http://ceko.dyndns.org/~shownomercy/artigos_techzonept/MessageWindow.zip
Pode ser que tirem algumas ideias daqui.
:001:
Karakatoa, obrigado pela tua contribuição. :)
Artigos e código são bem vindos. Ajudam a melhorar o conteúdo aqui do forum.
Alterei o titulo do teu post para organizar melhor aqui o forum.
Para já vou deixá-lo em sticky. Mais tarde se os stickys crescerem muito arranja-se outra forma de organizar.
A versão PureBasic :004:
Feita em 5 minutos... o executavel tem 12Kb ...
Procedure MSN_POPUP(text.s,delay.l,color1.l,color2.l)
id=500
Dim textline.s(2)
line=1
For a=1 To Len(text)
char.s=Mid(text,a,1)
If char<>"|"
textline(line)+char
Else
line+1
EndIf
Next
currlen=Len(textline(1))
textlin=1
For a=1 To 2
templen=Len(textline(a))
If currlen<templen
currlen=templen
textlin=a
EndIf
Next
StartDrawing(WindowOutput())
textsize=TextLength(textline(textlin))
StopDrawing()
fontid=LoadFont(0,"ARIAL",10)
width=textsize+10
If OpenWindow(#Window_2,0, 0, width, 40, #PB_Window_BorderLess, "",WindowID(#Window_0))
ResizeWindow(textsize+10,40)
width = WindowWidth()
height=40
i = height
CreateGadgetList(WindowID(#Window_2))
If CreateImage(id,width,height)
sRed.f = Red(color1) : r.f = (Red (color1) - Red (color2))/i
sGreen.f = Green(color1) : g.f = (Green(color1) - Green(color2))/i
sBlue.f = Blue(color1) : b.f = (Blue (color1) - Blue (color2))/i
If StartDrawing(ImageOutput())
For a = 0 To i-1
xx.f = sRed - a*r
yy.f = sGreen - a*g
zz.f = sBlue - a*b
Line(0,a,width,0,RGB(xx,yy,zz))
Next a
DrawingMode(1)
FrontColor($FF,$FF,$FF)
If fontid<>0
DrawingFont(fontid)
EndIf
For a=1 To 2
If textline(a)<>""
textsize=TextLength(textline(a))
Locate((width-textsize)/2,2+((a-1)*16))
DrawText(textline(a))
EndIf
Next
StopDrawing()
EndIf
EndIf
ImageGadget(0,0,0,width,height,UseImage(id))
UpdateWindow_(WindowID(#Window_2))
lx.l=GetSystemMetrics_(#SM_CXMAXIMIZED)-(width+20)
ly.l=GetSystemMetrics_(#SM_CYMAXIMIZED)-10
For a=1 To 40
UseWindow(#Window_2)
MoveWindow(lx,ly-a)
UpdateWindow_(WindowID(#Window_2))
Delay(5)
Next
Delay(delay)
For a=1 To 40
UseWindow(#Window_2)
MoveWindow(lx,(ly-40)+a)
UpdateWindow_(WindowID(#Window_2))
Delay(5)
Next
UseWindow(#Window_0)
CloseWindow(#Window_2)
EndIf
ProcedureReturn
EndProcedure
Boas. É pá até curtia ver essa cena que fizeste, mas o link não dá. Já agora gostava de saber se posso colocar alguns programas em C que fiz. Um deles tá muito bom, é uma base de dados dos alunos para um instituto ou universade, só precisa de um arranjito para ficar melhor. LOL. Trabalha com ficheiros binários. Cumprimentos a todos. :009:
Boas. É pá até curtia ver essa cena que fizeste, mas o link não dá. ...
Pois :( isso estava alojado num servidor em que eu tinha uma conta (http://ceko.dyndns.org/~shownomercy/ ) infelizmente o gajo do pc onde isso tava, aconteceu-lhe alguma coisa (teve que ser operado, pelo que consegui perceber) e eu não consegui tirar o que lá estava a tempo, mas talvez o Karakatoa tenha isso.
...
Já agora gostava de saber se posso colocar alguns programas em C que fiz. Um deles tá muito bom, é uma base de dados dos alunos para um instituto ou universade, só precisa de um arranjito para ficar melhor. LOL. Trabalha com ficheiros binários. Cumprimentos a todos. :009:
Podes, claro, não sei é se deverias postar isso na internet (ou em qualquer sitio publico) contendo os dados dos alunos ... digo eu.