wenn ich das Array abfrage direkt nach dem Verlassen des DCREAD GUI, also kurz vor dem Return, dann steht da immer noch der Ursprungswert drin, der dort stand, als das Array an die Maske übergeben wurde. es wird also nicht automatisch aktualisiert.
Code: Alles auswählen
FUNCTION al_edit_var_neu(ar_get,apos,agruppe,xpush,abig,ex_ok,x_syspush,nZeilen)
LOCAL aButton := {;
{"Übernehmen",,,{|| DC_ReadGuiEvent(DCGUI_EXIT_ABORT,getlist)},,,,,"Wert übernehmen"},;
{"Abbruch" ,,,{|| quit_edit(ar_get)},,,,"{|| ." + Transform(ex_ok,"L") + ". }","Abbruch des Vorgangs"};
}
LOCAL bDatalink
LOCAL cRahmenTitel := aGruppe[1,3]
LOCAL cTitel := aGruppe[1,4] + oVtPara:cVersion
LOCAL getlist := {}
LOCAL GetOptions
LOCAL nI
LOCAL oDialog := NIL
LOCAL oDialogZUsatz := mk_dialog():new()
LOCAL oLocal_style := Local_style():new():initvaria(oVtPara:us_font_input)
LOCAL p_gross := {0,0}
LOCAL zbig := {}
LOCAL zzbreit := 8
LOCAL zzhoch := 16
MEMVAR oSysPara
MEMVAR oVtPara
MEMVAR xx_font_input // hier unbekannt
DEFAULT ex_ok TO .T. // für die ANzeige der einelnen Pushbutton-
DEFAULT nZeilen TO Len(ar_get)*2
oDialogZusatz:standardRahmenKopf(aGruppe[1,3],,@getlist,.F.,,,,.T.,nZeilen)
xx_font_input := oVTpAra:us_font_input
zbig := string_big_text( Replicate("M",100) , xx_font_input )
zzhoch := zbig[2]
zzbreit := Round((zbig[1] / 100),0)
p_gross := { zzbreit*20 , zzhoch }
********************************************************************************
aButton[1,2] := p_gross[1]
aButton[2,2] := p_gross[1]
aButton[1,3] := p_gross[2]*1.3
aButton[2,3] := p_gross[2]*1.3
FOR nI := 1 TO Len(xPush)
AAdd(aButton,{xPush[nI,3],; /* Caption*/
p_gross[1],; /* width*/
p_gross[2]*1.3,; /* height*/
xPush[nI,4],; /* Action Code Block*/
,; /* Cargo*/
,; /* Bitmap Resource*/
,; /* COnfig Object*/
,; /* When CodeBlock*/
,; /* Tooltip*/
oLocal_style:sty_user; /* Font*/
};
)
// AAdd(aButton,{xPush[nI,3],p_gross[1],p_gross[2]*1.3,xPush[nI,4],,,,{|| xPush[nI,5]},,oLocal_style:sty_user})
NEXT
********************************************************************************
FOR nI := 1 TO Len(ar_get)
@ ar_get[nI]:nOben,ar_get[nI]:nLinks DCSAY ar_get[nI]:text;
OBJECT oDialogZUsatz:oText;
PARENT oDialogZUsatz:oRahmenKopf;
SIZE 0
IF ValType(ar_get[nI]:eingabe) <> "U" // es muß was drin stehen, sonst macht es wenig Sinn
@ DCGUI_ROW,DCGUI_COL DCGET ar_get[nI]:eingabe;
PARENT oDialogZUsatz:oRahmenKopf;
PICTURE ar_get[nI]:picture;
TABSTOP
ENDIF
NEXT
********************************************************************************
DCGETOPTIONS;
AUTORESIZE;
BORDER XBPDLG_SIZEBORDER;
BUTTONS aButton;
COLOR oSysPara:doParaWS:dialog_hg;
COLORGETS {oSysPara:doParaWS:colorgets_aktiv,oSysPara:doParaWS:colorgets_inaktiv};
GETFONT oVtpara:us_font_menue;
HILITEGETS oSysPara:doParaWS:hilitegets;
NOESCAPEKEY;
NOMAXBUTTON;
NOMINBUTTON;
PIXEL;
PRESENTATION oVtPara:aPresGet;
SAYFONT oVtpara:us_font_menue;/* SAYWIDTH oDialogZusatz:nSayBreite+oSysPara:skaliereXbParts(30); */
SAYOPTIONS XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_LEFT;
SCROLLBARS XBP_SCROLLBAR_VERT+XBP_SCROLLBAR_HORIZ;
TOOLTIPCOLOR oSysPara:doParaWS:tooltipcolor_vg,oSysPara:doParaWS:tooltipcolor_hg;
TOOLTIPFONT oSysPara:doParaWS:tooltipfont
DCREAD GUI;
FIT;
TITLE cTitel;
OPTIONS GetOptions;
PARENT @oDialog
RETURN ar_get <------ hier abgefragt, steht immer noch der Ursprungswert drin, obwohl im Eingabefeld geändert wurde.