<< Inhaltsverzeichnis Suchen >>

CHANGE_BITMAP

Funktion

Syntax:

CHANGE_BITMAP(<BUTTON-NAME>,<BUTTON-ATTRIBUT>)

<BUTTON-NAME>          = PUSHBUTTON                                           oder
                                               RADIOBUTTON                                          oder
                                               CHECKBOX                                                oder
                                               #.<FELD-NUMMER>                                oder
                                               #<MASKEN-NUMMER>.#<VAR-NAME>
                                                 [,<RADIOBUTTON-AUSWAHL>]          oder
                                               #<MASKEN-NUMMER>.#<INDEXDATEI-
                                                 NAME>.<FELDNAME>[,<RADIOBUTTON-
                                                                                                       AUSWAHL>]
<FELD-NUMMER>                        = <NUM-AUSDRUCK>
<RADIOBUTTON-AUSWAHL>   = "<EINZELZEICHEN>"
<BUTTON-ATTRIBUT>                 = <STRING-AUSDRUCK>

 

Bedeutung:

<BUTTON-ATTRIBUT> hat folgenden Aufbau:

<BILD-DATEI> [;[<BUTTON-GROESSE>]
                              ;[<TEXT-POS-X> , <TEXT-POS-Y>]
                              ;[<TEXT-GROESSE>]
                              ;[<3D-RAND>]
                              ;[<WIN95-STYLE>]
                              ;[<POSITION-DER-BILDDATEI>]
                              ;[<ORIGINAL-GROESSE>]
                              ;[<BILDGROESSE-X> , <BILDGROESSE-Y>]]

<BILD-DATEI> = [<BILD-NAME>
                                 [,<BUCHSTABE-1-CHECKED>
                                 [,<BUCHSTABE-1-SELECTED>
                                 [,<BUCHSTABE-1-CHECKED-SELECTED>]]]]   oder
                                 leer                                                                               oder
                                 EBUS_TYPE_<nn> (<nn> = 00,...,05)

Die Button-Attribute sind beschrieben in der Programm-Verwaltung bei den Maskenfeld-Attributen.

Mit der Funktion CHANGE_BITMAP können die Button-Attribute für Pushbuttons, Radiobuttons und Checkboxen im Programmablauf dynamisch verändert werden. Bei <BUTTON-NAME> wird angegeben, ob die Button-Attribute für einen einzelnen Button oder für alle Pushbuttons bzw. Radiobuttons bzw. Checkboxen geändert werden soll. Mit RESET_BITMAP werden die ursprünglichen Button-Attribute des/der Buttons wieder aktiviert. CHANGE_BITMAP kann nur angewendet werden auf Buttons, die vom EBUS-Programm gezeichnet werden, also keine Windows-Standard-Buttons sind. Wird bei CHANGE_BITMAP als <BUTTON-NAME> ein Maskenfeld angegeben, das kein Button ist, der vom EBUS-Programm gezeichnet wird, so liefert CHANGE_BITMAP den Fehlercode 7705.

Wird <BUTTON-NAME> = #.<FELD-NUMMER> angegeben, so bezieht sich die Feldnummer auf die Felder der aktuellen Maske. Ist das entsprechende Feld kein Pushbutton, kein Radiobutton und keine Checkbox, so hat die Funktion CHANGE_BITMAP keine Wirkung. Die Adressierung der Maskenfelder über Feldnummern kann verwendet werden für Felder, die in einem Window mit ADDFIELD erzeugt wurden (siehe Beispiel).

<3D-RAND>:
J = Ja
N = Nein

<WIN95-STYLE>:
J = Ja
N = Nein

<POSITION-DER-BILDDATEI>:
L = links
M = Mitte
R = rechts

<ANZEIGE-DES-BILDES>:
O = Originalgröße
A = angepaßt
T = total
B = Bildgröße

Ist <BILD-NAME> = "", so werden die WINDOWS-Standard-Buttons angezeigt.

Bei <BILD-NAME> = "EBUS_TYPE_00" werden die Standard-Buttons von WINDOWS angezeigt. Diese werden aber nicht von WINDOWS sondern vom EBUS-Programm gezeichnet. Dies hat den Vorteil, daß Vergrößerungen und Verkleinerungen exakt dargestellt werden können. Bei <BILD-NAME> = "EBUS_TYPE_00" und <WIN95-STYLE> = "J" werden auch unter WINDOWS 3.1 die Buttons im WINDOWS 95 - Stil erzeugt. Ist <WIN95-STYLE> = "N", so werden die Buttons im Stil von WINDOWS 3.1 gezeichnet. Ist <WIN95-STYLE> der Leerstring "", so werden die Buttons im Stil des aktuellen Betriebssystems angezeigt.

Mit EBUS_TYPE_<nn> werden gängige Buttons, die vom WINDOWS-Standard abweichen zur Verfügung gestellt. Für Pushbuttons existieren derzeit EBUS_TYPE_00 bis EBUS_TYPE_05 und für Checkboxen und Radiobuttons EBUS_TYPE_00 bis EBUS_TYPE_03.

 

 

 

Pushbutton

Checkbox/
Radiobutton
nicht gesetzt

Checkbox/
Radiobutton
gesetzt

 

EBUS_TYPE_01

 

EBUS_TYPE_02

 

EBUS_TYPE_03

 

EBUS_TYPE_04

 

 

 

EBUS_TYPE_05

 

 

 

CHANGE_BITMAP liefert als Ergebnis 0, wenn kein Fehler auftrat, andernfalls die Fehlernummer. Die Fehler sind im Anhang beschrieben. Ist das bei <BUTTON-NAME> angegebene Maskenfeld nicht auf der aktuellen Maske oder kein Pushbutton, kein Radiobutton und keine Checkbox, so liefert CHANGE_BITMAP als Ergebnis -1.

 

Beispiel:

/* Alle Pushbuttons im WINDOWS 95 - Stil anzeigen
EBUS_PUSHBUTTON$ = "EBUS_TYPE_02;;;;;J"

/* Bilddatei von BUTT1$ ändern
H% = CHANGE_BITMAP(#10.#BUTT1$,"NBILD2.BMP,C,S,B")
IF H% <> 0 THEN ... Fehler ... ENDIF
...
H% = RESET_BITMAP(#10.#BUTT1$)

/* Window mit 2 Pushbuttons erzeugen
WINDOWPOS(0,0)
WINDOW(2,10,60,2,2,"Window")
EBUS_PUSHBUTTON$ = "ebus_type_05"
BUTTON1$="&OK"
H$ = "B030300NNNJIAN N                    &&&&&&&&&&"
H% = ADDFIELD(H$,BUTTON1$,PROG1.MACRO.VOR.BUTTON,)
IF H% <> 0 THEN ...
Fehler ... ENDIF
BUTTON2$="&Abbruch"
H$ = "B032000NNNJIAN N                    &&&&&&&&&&"
H% = ADDFIELD(H$,BUTTON2$,,)
IF H% <> 0 THEN ...
Fehler ... ENDIF
H% = STARTFIELD
WCLOSE

 

Macro PROG1.VOR.BUTTON:
/* Textfarbe des 1. Buttons auf blau und Buttontyp auf 3 ändern
GR_PUSHBUTTON_TEXTCOLOR=0,0,255
H% = CHANGE_BITMAP(#.1,"EBUS_TYPE_03")

 

siehe auch:

RESET_BITMAP, EBUS_PUSHBUTTON$, EBUS_CHECKBOX$, EBUS_RADIOBUTTON$