Last Update : 2007/11/xx
English | Trad. Chinese
Hot Soup Processor (aka "HSP") is a programming tool for Windows, developed by Onitama (ONION software) in Japan. It allows you to create a game, application, and so on. Now HSP is released version 3.x.
HSP2/HSP3 Related links:
/* multi-line comments */ /* inline comments */
; single-line comments // single-line comments
/* draw string text mes "text to draw" */ mes "Hello Word!" mes "HSP programming!"
/* set text color (RGB value 0-255) color red color, green color, blue color */ color 255, 0, 0 mes "Hello Word!" color 0, 128, 0 mes "HSP programming!"
/* set text font font "font name", height size, font style font style: 0=default, 1=bold, 2=italic, 4=underline, 8=strikeout, 16=antialiased font (not supported on Windows 9x) */ font "Arial", 20, 1 mes "Hello Word!" font "MS Sans Serif", 40, 1 | 8 mes "HSP programming!"
/* set text position (in pixel) pos x-coordinate position, y-coordinate position */ pos 100, 150 mes "Hellow Word!" pos 200, 300 mes "Windows HSP programming!"
/* draw a dot point pset x-coordinate position, y-coordinate position */ pset 100, 100 pset 100, 200
/* draw a line line x-coordinate of starting point, y-coordinate of starting point, x-coordinate of ending point, y-coordinate of ending point */ line 100, 100, 400, 100 color 0, 0, 255 line 200, 300, 300, 400
/* draw a rectangle boxf x-coordinate of upper-left, y-coordinate of upper-left, x-coordinate of lower-right, y-coordinate of lower-right */ boxf 10, 10, 100, 100 color 255 boxf 50, 50, 200, 200
/* draw a circle circle x-coordinate of upper-left, y-coordinate of upper-left, x-coordinate of lower-right, y-coordinate of lower-right, draw mode draw mode: 0=edge only, 1=fill (default) */ color 255 circle 100, 100, 200, 200 color 0, 255 circle 300, 200, 400, 400, 0
/* gettime(mode) mode: 0=year, 1=month, 2=day of the week, 3=day, 4=hour, 5=minute, 6=second, 7=msecond */ ; set font and size font "Arial", 50 ; infinity loops repeat ; temporarily stop drawing redraw 0 ; paint out quadrangle (black color) color boxf 50, 50, 300, 100 ; display time (white color) color $FF, $FF, $FF pos 50, 50 mes ""+gettime(4)+":"+gettime(5)+":"+gettime(6) ; restart drawing redraw 1 ; temporarily waiting (10ms) wait 100 loop
mes "1+1= "+(1 + 1) a = 10 * 10 - 1 mes a b = 100 a = b * (100 + 1) mes a ; division mes 100 / 2 ; remainder "%" mes 10 \ 3
c = 1 c++ mes c d = 5 d += 2 mes d
; double + double -> double ; double + int -> double ; int + double -> int mes 1.1 + 2.4 mes 2.2 + 1 mes 1 + 2.4
a = 9
if a > 10 {
mes "big"
} else {
mes "small"
}
a = 5 if a != 4 : mes "no ["+a+"]"
/* button object button "string on button", *label name */ button "PUSH!", *label_1 stop *label_1 mes "Hi!"
/* checkbox object chkbox "string on checkbox", variable */ ; first button with check mark a = 1 chkbox "X", a chkbox "Y", b ; object position pos 100, 20 ; obuject size objsize 50, 50 button "Check!", *check stop *check mes "X:"+a+" / Y:"+b+""
/* single-line edit object input variable, object size, object height, max string length */ a = "Hello!" input a, 200, 20 button "Check!", *check stop *check mes a
/* listbox object (single selection) listbox variable, object height, "string list per '\n'" */ listbox a, 50, "A\nB\nC\nD\nE" button "Check!", *label stop *label mes a
/* combobox object combox variable, doropdown height, "string list per '\n'" */ objsize 100 combox a, 100, "HSP\ncombobox\ncontrole" button "Check!", *label2 stop *label2 mes a stop
#include "user32.as" ; Normal Beep MessageBeep 0 wait 100 ; Error Beep MessageBeep $10 wait 100 ; Question Beep MessageBeep $20 wait 100 ; Exclamation Beep MessageBeep $30 wait 100 ; Information Beep MessageBeep $40 mes "done"
/* MessageBox API and bulit-in dialog function */ #uselib "user32.dll" #func MessageBox "MessageBoxA" int, str, str, int MessageBox hwnd, "Hello World!", "HSP :)", $40 ; return value mes stat ; Built-in HSP function dialog "\"dialog\" (mode 0) function displays a infobox", 0, "HSP"
/*
Simple Color Code Picker Sample for HSP3
by Kpan
*/
#include "user32.as"
#include "gdi32.as"
#define ctype GetRValue(%1) %1 & $FF
#define ctype GetGValue(%1) (%1 >> 8) & $FF
#define ctype GetBValue(%1) (%1 >> 16) & $FF
; main window (Window ID : 0)
screen 0, 130, 50
title "Color Code Picker"
; jump label for WM_CLOSE
onexit gosub *exit
; always window on top
gsel 0, 2
; one-line edit control (Object ID : 0)
pos 50, 15
input value, 70, 20
; get a handle to device context
GetDC 0
hdc_display = stat
repeat
; temporarily stop drawing
redraw 0
color 255, 255, 255
boxf 0, 0, 50, 50
; get rgb color value
GetPixel hdc_display, ginfo(0), ginfo(1)
clr_rgb = stat
color GetRValue(clr_rgb), GetGValue(clr_rgb), GetBValue(clr_rgb)
boxf 10, 10, 40, 40
; update edit control
objprm 0, strf("#%06X", clr_rgb)
; restart drawing
redraw 1
wait 10
loop
*exit
ReleaseDC 0, hdc_display
end
/*
Simple Color Code Checker Sample for HSP3
by Kpan
*/
screen 0, 230, 80
title "Color Code Checker"
; jump label for WM_HSCROLL
oncmd gosub *hscroll, $114
dim value_color, 3
; trackbar
pos 65, 10
repeat 3
winobj "msctls_trackbar32", "", , $50000000 | $100, 150, 20
hTrackbar.cnt = objinfo(stat, 2)
; TBM_SETRANGEMAX (0-255)
sendmsg hTrackbar.cnt, $408, , 255
loop
gosub *draw_circle
stop
*hscroll
if lparam = hTrackbar.0 {
; TBM_GETPOS
sendmsg lparam, $400
value_color.0 = stat
gosub *draw_circle
return
}
if lparam = hTrackbar.1 {
sendmsg lparam, $400
value_color.1 = stat
gosub *draw_circle
return
}
if lparam = hTrackbar.2 {
sendmsg lparam, $400
value_color.2 = stat
gosub *draw_circle
return
}
return
*draw_circle
color value_color.0, value_color.1, value_color.2
circle 10, 20, 55, 65
return
/*
Simple Password Generator
by Kpan
*/
#include "user32.as"
#define ctype MAKELONG(%1,%2) (%1) & $FFFF | (%2) << 16
screen , 350, 90
title "Simple Password Generator"
randomize
sdim pass
dim character, 20
objmode 2
font "Arial", 26, 16 | 1
; inputbox to show a generated password
pos 10, 10
input pass, 330, 38
SetWindowLong objinfo(stat, 2), -16, $50010080 | $2
objmode 1
; inputbox to set a figure number
pos 220, 61
input figure, 40, 22, 2
; Up-down Control
winobj "msctls_updown32", "", , $50000012 | $4
sendmsg objinfo(stat, 2), $465, , MAKELONG(20, 8)
objprm 1, 8
objsize 70, 22
pos 270, 60
button "Create", *create
stop
*create
if figure < 8 : stop
; create password string
repeat figure
repeat 20
if rnd(2) {
; for Number
character.cnt = rnd(10) + $30
} else {
; for Alphabet
character.cnt = rnd(26) + $61
}
loop
poke pass, cnt, strf("%c", character.rnd(20))
loop
objprm 0, pass
Copyright © 2005-2010 Kpan. All rights reserved.