Zeile 87 bis EOF:
[autoit]Func _end()
_BASS_Free()
Exit
EndFunc
Zeile 87 bis EOF:
[autoit]Func _end()
_BASS_Free()
Exit
EndFunc
Kann man, guck doch ins Skript ![]()
Zeile 19:
[autoit]HotKeySet("{ESC}", "_end")
[/autoit]Aber danke ![]()
Puh. Da muss ich mich mal mit E auseinandersetzen ![]()
Vollbildmodus drin. Update Post #1
Das ist leider nicht so einfach, aber möglich. Kommt in der nächsten Version ![]()
Es sollte doch automatisch Fullscreen sein?
Hab ich gemacht, sonst ist ja ein schlechter Trip vorprogrammiert ![]()
Geheimtipp (von James) : Kerli - Army of Love (Centron Remix), einfach von YT (;)) und dann mit 30 Blasen! ![]()
Löscht bitte die GDIPlus aus den Includes ![]()
Tach!
Dieser Visualizer geht im wahrsten Sinne des Wortes mit der Musik auf. Die ganze Atmosphäre des in OGl realisierten Raums ändert sich mit der Musik. Transparente Blasen ändern ihre Größe und Position, die Hintergrundfarbe ändert sich. Auch zwei klassische Balken für die Levels finden sich in der Mitte des Raums. Die Kamera fliegt automatisch um alles herum.
Alles lässt sich einstellen, von der Transparenz der einzelnen Objekte, über deren Anzahl bis hin zum Antialiasing.
Unbedingt ruhige / klassische Musik mit langsamen, aber bestimmten Höhepunkten wählen, die Windows7 Beispielmusik ist perfekt.
Wenn ihr Dubstep, Chillstep oder irgendeine andere Treppe nehmt, dann stellt die Blasenzahl auf höchstens 30!!!
FÜR EPILEPTIKER NICHT GEEIGNET
Bei schnellerer Musik fühlt sich das ganze an wie auf LSD. Aber mit der Grafik sollte es dann trotzdem noch klappen (>35FPS bei 500 Blasen aufm i7 mit 128MB G-RAM).
Viel Spaß! (PS: Man ist dieses T2 grottig. Mal nen ordentlichen Wrapper schreiben
)
Songs (mit Blasenzahl)
Kerli - Army of Love (Centron Remix) mit 30 Blasen
CRO - EASY mit 50 Blasen
Pumped Up Kicks | Nonstop Dubstep Rmx mit 45 Blasen
Das gesamte Berlin Calling Album mit 350 Blasen im 1000er Raum
Updates (Release: 12.9.12 / 22:58):
- Vollbildmodus
- Bug gefixt
- Raumgröße lässt sich nun anpassen
- unnötige includes entfernt
#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]GUICreate("My GUI") ; will create a dialog box that when displayed is centered
GUISetState (@SW_SHOW) ; will display an empty dialog box
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Example1()
Example2()
; example 1
Func Example1()
Local $msg
GUICreate("My GUI") ; will create a dialog box that when displayed is centered
GUISetState(@SW_SHOW) ; will display an empty dialog box
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete()
EndFunc ;==>Example1
; example 2
Func Example2()
Local $sFile = "..\GUI\logo4.gif"
Local $gui = GUICreate("Background", 400, 100)
; background picture
GUICtrlCreatePic("..\GUI\msoobe.jpg", 0, 0, 400, 100)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]; transparent MDI child window
GUICreate("", 169, 68, 20, 20, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $gui)
; transparent pic
GUICtrlCreatePic($sFile, 0, 0, 169, 68)
GUISetState(@SW_SHOW)
Do
Local $msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE
EndFunc ;==>Example2
Dann gibts jetzt halt noch einen ![]()
Das mit der Font kann ich noch einbauen. Das ganze war sowieso für so einen Art Formeleditor gedacht, bei dem es nur eine Font gibt ![]()
Hier mal eine kleine Funktion:
[autoit]; #FUNCTION# ====================================================================================================================
; Name ..........: _StringWidth
; Description ...: Return the Width of a Label containing the given string
; Syntax ........: _StringWidth($sString)
; Parameters ....: $sString - A string value.
; Return values .: Width in px
; Author ........: minx
; ===============================================================================================================================
Func _StringWidth($sString)
$hGUI = GUICreate($sString,0,0)
GUISetState(@SW_HIDE, $hGUI)
$Ref = GUICtrlCreateLabel($sString,0,0)
$aPos = ControlGetPos($sString, "", $Ref)
GUIDelete($hGUI)
Return $aPos[2]
EndFunc
Und hier ein Beispiel:
#include <Math.au3>
#include <String.au3>
#include <StaticConstants.au3>
$Formel = "\frac {1 - 20|(90 + 2x) · 30}"
$Left = 50
$Top = 100
$GUI = GUICreate("Math Test", 500, 500)
GUISetState()
$aString = StringSplit(_SSB($Formel, "\frac {", "}"), "|", 1); Zähler und Nenner herausfinden
$Length = _Max(_StringWidth($aString[1]), _StringWidth($aString[2])) ; Größen des Zählers und Nenners herausfinden, und die größte wiedergeben
GUICtrlCreateLabel($aString[1], $Left, $Top, $Length, 13, $SS_CENTER) ; Zähler
GUICtrlCreateLabel("", $Left, $Top+13, $Length, 1); Bruchstrich
GUICtrlSetBkColor(-1,0)
GUICtrlCreateLabel($aString[2], $Left, $Top+14, $Length, 20, $SS_CENTER); Nenner
Do
Until GUIGetMsg() = -3
; #FUNCTION# ====================================================================================================================
; Name ..........: _StringWidth
; Description ...: Return the Width of a Label containing the given string
; Syntax ........: _StringWidth($sString)
; Parameters ....: $sString - A string value.
; Return values .: Width in px
; Author ........: minx
; ===============================================================================================================================
Func _StringWidth($sString)
$hGUI = GUICreate($sString,0,0)
GUISetState(@SW_HIDE, $hGUI)
$Ref = GUICtrlCreateLabel($sString,0,0)
$aPos = ControlGetPos($sString, "", $Ref)
GUIDelete($hGUI)
Return $aPos[2]
EndFunc
Func _SSB($String, $S, $E)
$aString = _StringBetween($String, $S, $E)
Return $aString[0]
EndFunc
Ich bin für die Übernahme des englischen Beispiels bei GUICreate. Dort kann man ebenfalls gleich den Extendedmode von GuiGetMsg zeigen, und das Brispiel für beide Befehle nutzen.
Die Wordlist ist ne Gute Idee. SciLexer bietet da schon fertige Datenbanken mit allen nativen Funktionsnamen und einigen UDFs ![]()
uff. Vergessen. Ist ja auch noch früh ![]()
Also ich finde StringSplit("a,b", ",")[1] nur logisch. Erstens spart man damit ne Menge Platz und Nerven, und man sieht, dass StringSplit einen Array zurückgibt. So kann das ganze direkt in eine Funktion oder Variable.
Besser als:
$aString = Stringsplit("a,b",",")
$sString = $aString[1]
Das ist auf jeden Fall sinvoll, und sehr übersichtlich.
Wer AutoIt beherrscht und sich ein wenig mit Messages und Objekten befasst hat, der wird sich an PowerBASIC auch keinen Zahn ausbrechen und kann erstaunliche Ergebnisse erzielen.
Hier mal ein Beispiel für den Syntax:
hWnd = CreateWindowEx(0, _ ' extended Window style
$ClassName, _ ' window class name
$ClassName, _ ' window caption
%WS_OVERLAPPEDWINDOW, _ ' window style
...
BYVAL %NULL, _ ' window menu handle
hInstance, _ ' program instance handle
BYVAL %NULL) ' creation parameters
ShowWindow hWnd, iCmdShow
UpdateWindow hWnd
' Create a timer event every 30 mSec
hTimer = SetTimer(hWnd, 0, 30, BYVAL %NULL)
DO WHILE GetMessage(Msg, %NULL, 0, 0)
TranslateMessage Msg
DispatchMessage Msg
LOOP
Alles anzeigen
Ist sehr vertraut, nicht? ;). Hier mal ein kleines Beispiel für eine Dll. Diese gibt einfach nur eine MsgBox mit dem übergebenen Parameter aus, und den Sinn des Lebens zurück, 42 ![]()
#COMPILER PBWIN 10
#COMPILE DLL
#INCLUDE ONCE "Win32api.inc"
GLOBAL ghInstance AS DWORD
FUNCTION MyFunction1 ALIAS "MyFunction1" (BYVAL Param1 AS LONG) EXPORT AS LONG
' hier sonstiges
MSGBOX "Hi! Du hast mir folgendes geschrieben: " + STR$(Param1)
FUNCTION = 42 ' return
END FUNCTION
SUB MySub1 ALIAS "MySub1" (BYVAL Param1 AS LONG) EXPORT
' Hier kann sonstwas rein.
END SUB
Alles anzeigen
Und zum Aufrufen in AutoIt:
[autoit]$hDll = DllOpen("MyDLL.dll")
$aResult = DllCall($hDll, "long", "MyFunction1", "long", 1234)
MsgBox(64, "minx", "Die Dll hat folgendes geschrieben: "&$aResult[0])
Oder fürs neue AutoIt:
[autoit]MsgBox(64, "minx", "Die Dll hat folgendes geschrieben: "& DllCall(DllOpen("MyDLL.dll"), "long", "MyFunction1", "long", 1234)[0] )
[/autoit]Keine AHnung ob PB inzwischen kostenlos ist, ich habe es von meinem Vater. Es ist wirklich wahnsinnig schnell. Zum Beispiel im direkten Vergleich die Graphics-Befehle von Au3 und PB. Es sind die gleichen, nur das es bei PB mehr gibt, und das sie eine unerhörte Geschwindigkeit haben. Klar kann man auch in PB GDI(+) nutzen, aber das ist absolut nicht nötig. Es gibt übrigens Graphicbefehle die Bildbearbeitung ermöglichen, die vermisse ich bei Au3 sehr.
Der ganze Source und die Dll ist hier .
So long!
Doch eigentlich schon. Wenn du durch das SKript guckst, siehst du, dass keine Funktionen fehlen, wie bei dir angezeigt...