Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Listbox frei positionierbar und mit wählbarer Schriftart
==========================================================================
FRELSBOX.INC (c) 1998 Richard Maurukas
==========================================================================
Frei positionierbare Listbox beim Aufruf.
Profan-Listboxen erscheinen beim Aufruf an einer festen Position.
Mit dieser INC können Sie diese Listen je nach belieben beim Aufruf an eine
gewünschte Fensterposition mit einer gewünschten Größe in einer frei
defierten Schriftart darstellen.
Mit frei definierbarem Fenstertitel
Mit frei definierbarer Fenstergröße
Mit frei definierbarer Listboxgröße
Mit frei wählbarem Font
Sortiert oder Unsortiert
Anzeige eines ICON
Rückgabe =der selektierte String, oder die selektierte Zeile
.....
Binden Sie die PROC CREATEPOS_LISTBOX als INC in ihr Profan-Programm ein.
Aufruf aus dem Profan Programm:
CREATEPOS_LISTBOX Para1, Para2, Para3, Para4, Para5, Para6, Para7, Para8
Parameter1: ist das Handle des übergeordneten Fensters.
Z.B %HWND
Parameter2: Sortierung der Listbox
1 für Sortiert, <>1 unsortiert
Parameter3: der Rückgabewert
1 Gibt den gewählten Text aus der Listbox zurück
2 Gibt den Index des gewählten Eintrages zurück
Parameter4: Der Fenstertitel
Parameter5: Die Fenster X Koordinate
Parameter6: Die Fenster Y Koordinate
Parameter7: Die Fensterbreite
Praameter8: Die Fensterhöhe
Beispiel für den Aufruf einer Listbox aus dem Hauptprogramm:
Usefont Arial,14,0,1,0,0 Ihr gewünschter Font
clearlist
AddFonts
CREATEPOS_LISTBOX %HWND,1,1,Gibt den gewählten Text mit OK zurück,0,0,300,200
Erstellt eine Sortierte Listbox im Hauptfenster in der angegebenen
Fenster- und Listboxgröße mit dem definierten Font. Der Rückgabewert
ist der ausgewählte Text in der Listbox.
Die Position und Größe der Listbox innerhalb des Fensters sowie die Positionen
und Größe der Buttons kann in der INC je nach Geschmack geändert werden.
(c) 1998 Richard Maurukas
===========================================================================================
Declare Ende%
------------------------------Begin FRELSBOX.INC ------------------------------------------
PROC CREATEPOS_LISTBOX
PARAMETERS VERSCHIEB_WINDOW%, VERSCHIEB_SORTIERT%,VERSCHIEB_MODUS%, VERSCHIEB_FENSTERTITEL$,VER_X%,VER_Y%,VER_DX%,VER_DY%
DECLARE VERSCHIEB_DIALOG% , VERSCHIEB_LISTE1%
DECLARE VERSCHIEB_OK% , VERSCHIEB_BREAK%
DECLARE VERSCHIEB_LISTPOS% , VERSCHIEB_LISTTEXT$
Let VERSCHIEB_DIALOG% =Createdialog(VERSCHIEB_WINDOW%,VERSCHIEB_FENSTERTITEL$,VER_X%,VER_Y%,VER_DX%,VER_DY%)
If equ(VERSCHIEB_SORTIERT%,1)
let VERSCHIEB_LISTE1% =CreateSortedlistbox(VERSCHIEB_DIALOG%,,10, 10,sub(VER_DX%,20),sub(VER_DY%,80))
else
let VERSCHIEB_LISTE1% =Createlistbox(VERSCHIEB_DIALOG%, , 10, 10,sub(VER_DX%,20),sub(VER_DY%,80))
ENDIF
let VERSCHIEB_OK% =Createbutton(VERSCHIEB_DIALOG%,&OK , sub(VER_DX%,180),sub(VER_DY%,55),80, 20)
let VERSCHIEB_BREAK% =Createbutton(VERSCHIEB_DIALOG%,&Abbruch,sub(Ver_DX%,90),sub(VER_DY%,55),80, 20)
createicon(VERSCHIEB_DIALOG%,EDITOR,10,sub(VER_DY%,60))
Sendmessage(VERSCHIEB_LISTE1%,$0030,%Font,0)
MovelistToList(VERSCHIEB_LISTE1%)
Sendmessage(VERSCHIEB_LISTE1%,$0407,0,0) 16 Bit ersten Eintrag auswählen
Sendmessage(VERSCHIEB_LISTE1%,$0186,0,0) 32 Bit ersten Eintrag auswählen
whilenot or(Getfocus(VERSCHIEB_OK%),Getfocus(VERSCHIEB_BREAK%))
Let VERSCHIEB_LISTPOS% =GetCursel(VERSCHIEB_LISTE1%)
let VERSCHIEB_LISTTEXT$=GetString$(VERSCHIEB_LISTE1%,VERSCHIEB_LISTPOS%)
wend
if Getfocus(VERSCHIEB_BREAK%)
DestroyWindow(VERSCHIEB_DIALOG%)
Return -1
else
DestroyWindow(VERSCHIEB_DIALOG%)
case equ(VERSCHIEB_MODUS%,1):Return VERSCHIEB_LISTTEXT$
case equ(VERSCHIEB_MODUS%,2):Return VERSCHIEB_LISTPOS%
endif
ENDPROC
---------------------------------END FRELSBOX.INC --------------------------------------
Beispiel zum Aufruf aus dem Haupt-Programm
Window 0,0-640,480
Windowtitle Frei positionierbare Listbox, (c) 1998 Richard Maurukas
Popup Datei
Appendmenu 101,Liste für Text einblenden
Appendmenu 102,Liste für Index einblenden
Separator
Appendmenu 199,Beenden
whilenot ende%
waitinput
if menuitem(101)
Usefont Arial,36,0,0,0,0 Ihr gewünschter Font
clearlist
addfonts
CREATEPOS_LISTBOX %HWND,1,1,Gibt den gewählten Text mit OK zurück,40,20,500,300
case gt(@$(0),-1):Print Der gewählte Text in der Liste war: ;@$(0)
case equ(@$(0),-1):Print Sie haben Abbrechen gedrückt
Elseif Menuitem(102)
Usefont Courier,14,0,1,1,0 Ihr gewünschter Font
clearlist
Addfiles *.*
CREATEPOS_LISTBOX %HWND,2,2,Gibt den gewählten Index mit OK zurück,140,100,250,300
case gt(@%(0),-1): Print Die gewählte Position in der Liste war: ;@%(0)
case equ(@%(0),-1):Print Sie haben Abbrechen gedrückt oder es war nicht ausgewählt
elseif Menuitem(199)
end
ef='./../../function-references/XProfan/endif/'>endif
Wend