option_add fügt dem Dialog Extras=>Weitere Optionen eine Option zu. Der Wert der Option wird in der Registierdatenbank von Windows gespeichert.
Returnwert
bool ist TRUE (1), wenn die Funktion erfolgreich ausgeführt werden konnte und sonst FALSE (0).
Parameter
ssCategory ist die Zeichenkette, die in der linken Listbox des Dialogfeldes angezeigt wird. Falls die Kategorie nicht existiert, wird sie zugefügt.
ssName ist der Name der Option die in der linken Spalte des Property-Elements angezeigt wird.
ssSection ist der Abschnittsname in der Registrierdatenbank oder der INI-Datei in den der Wert der Option geschrieben wird. Siehe WriteProfileString und WriteProfileInt.
ssKey ist der Schlüsselname in der Registrierdatenbank oder der INI-Datei in den der Wert der Option geschrieben wird. Siehe WriteProfileString und WriteProfileInt.
ssDefault ist der Defaultwert (immer als Zeichenkette, auch bei Integerwerten).
ssDataType ist entweder “string” oder “int”.
ssHelpText ist der Hilfe-Text, der im unteren Teil des Dialogfeldes angezeigt wird.
ssType enthält den Typ des Dialogfeldes und optional den Namen einer Callback-Funktion. ssType kann folgende Werte annehmen:
| edit | Editierfeld (keine Callback-Funktion) |
| checkbox | Checkbox (keine Callback-Funktion) |
| buttonedit | Editierfeld mit Schaltfläche. Es ist eine Callback-Funktion erforderlich, der Name in der Form “buttonedit@_opt_my_callback” angegeben wird. Siehe Beispiel. |
| buttonstatic | Textfeld mit Schaltfläche. Callbackfunktion erforderlich. |
| combo | Kombinationsfeld. Callbackfunktion erforderlich. |
Aufbau der Callback-Funktion:
def callback(svInit, iControl, iRow, iCol)
{
return val;
}
Die Funktion gibt einen skalaren String zurück.
Beispiel
def __opt_ncfiletype(svInit, iControl, iRow, iCol)
{
svValue = ["netCDF","netCDF (PC-Byteorder)","netCDF-up","netCDF-up (compressed)"]
if (nargsin() == 2) {
if (iControl == 1) {
idx = strtod(svInit[1])+1;
if (idx[1] >= 1 && idx[1] <= len(svValue)) {
return svValue[idx];
}
return svValue[1];
} else if (iControl == 2) {
return sprintf("%d", find(svInit[1] == svValue)-1);
} else {
return TRUE;
}
}
<ssMat, svSel> = GetListBoxText(svInit[iControl], FALSE);
smMat = ReportControl_GetMatrix(ssMat);
return CreateListBoxText(svValue, smMat[iRow; iCol]);
}
ssHelp = _s("Specifies the type of the netCDF file.\n\n" + ....
"netCDF: Standard netCDF File\n" + ....
"netCDF (PC-Byte order): netCDF file with little-endian byte order\n" + ....
"netCDF-up: New file format for data files (UniPlot 5.6).\n" + ....
"netCDF-up (compressed): Same as netCDF-up, but with better compression (a bit slower)\n\n" + ....
"Find more information in the help system: \"Overview netCDF Files\"");
option_add(_s("Import and Data Browser"), ..
_s("netCDF Filetype"), ..
"Settings", "standard-netcdf-files", "1", "int", ..
ssHelp, "combo@__opt_ncfiletype");
Kommentar
Die Funktion ist in UniScript geschrieben. Den Quelltext befindet sich in der Datei do_confg.ic.
History
| Version | Beschreibung |
|---|---|
| 5.6.0 | Neu. |
Siehe auch
Überblick Application-Objekt, Extras=>Weitere Optionen, GetProfileString, GetProfileInt, WriteProfileString, WriteProfileInt
id-783960