Button werden nicht Staticarea nicht Angezeigt [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
DSE
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 22
Registriert: Di, 24. Apr 2007 22:51

Button werden nicht Staticarea nicht Angezeigt [ERLEDIGT]

Beitrag von DSE »

Hallo Zusammen,

In einem Dialog werden in einer Funktion neue Buttons generiert. Diese werden jedoch nicht in der Staticarea dargestellt.

Code: Alles auswählen

@  1,1 DCTABPAGE oTabPage1 CAPTION msg("ABTEILUNG") ;
                SIZE 110,24.8 PREOFFSET 0 POSTOFFSET 85 ;  
                ;//IMAGE ICON_CLOSEDFOLDER_GREEN ;
      					SELECTEDIMAGE ICON_OPENFOLDER_GREEN ;   
      					TABHEIGHT 30 ;
      					CAPTIONLAYOUT XBP_LAYOUT_TEXTRIGHT ;
      					TEXTALIGN XBPALIGN_VCENTER + XBPALIGN_LEFT ;           
                MESSAGE {||msg("ABTEILUNG-Stamm")} INTO oMsgBox1 ;
                FONT '12.Arial Bold';
                TITLE "S" ;                
                STATICAREA oTab1Static ;  
                GOTFOCUS {||SetAppFocus(DC_GetObject(GetList,"ANR"))}  ;     
                ID "MAIN"   
                
                                                                                                                                      
		@ 01,01 DCSAY  msg('ANR') GET oRecord:ANR ;
				SAYSIZE 10 TABSTOP PARENT oTab1Static SAYTOOLTIP msg('');
				MESSAGE msg('') INTO oMsgBox2 VALID { ||.t. } ;
				WHEN {||.f.} ;
				PICTURE '999' ;
				GETID 'ANR'

		@ 02,01 DCSAY  msg('ABTEILUNG') GET oRecord:ABTEILUNG ;
				SAYSIZE 10 TABSTOP PARENT oTab1Static SAYTOOLTIP msg('');
				MESSAGE msg('') INTO oMsgBox2 VALID { ||.t. } ;
				EDITPROTECT {||!vEDIT} ;
				PICTURE '!XXXXXXXXXXXXXXXXXXX' ;
				GETID 'ABTEILUNG'

		@ 03,01 DCSAY  msg('BEREICH') GET oRecord:BEREICH ;
				SAYSIZE 10 TABSTOP PARENT oTab1Static SAYTOOLTIP msg('');
				MESSAGE msg('') INTO oMsgBox2 VALID { ||.t. } ;
				EDITPROTECT {||!vEDIT} ;
				PICTURE '!XXXXXXXXXXXXXXXXXXX' ;
				GETID 'BEREICH'
				
@ 04,01 DCSAY  msg('Anz. Reihen') GET oRecord:REIHE ;
				SAYSIZE 10 TABSTOP PARENT oTab1Static SAYTOOLTIP msg('');
				MESSAGE msg('') INTO oMsgBox2 VALID { ||.t. } ;
				EDITPROTECT {||!vEDIT} ;
				PICTURE '99' ;
				GETID 'REIHE'

@ 04,15 DCSAY  msg('Arbeitspl. pro Reihe') GET oRecord:RAP ;
				SAYSIZE 12 TABSTOP PARENT oTab1Static SAYTOOLTIP msg('');
				MESSAGE msg('') INTO oMsgBox2 VALID { ||.t. } ;
				EDITPROTECT {||!vEDIT} ;
				PICTURE '99' ;
				GETID 'RAP'				
@ 03.8,35 DCPUSHBUTTONXP                   ;
                CAPTION msg("Arbeitsplätze Generieren")            ;
                PARENT oTab1Static 	        ;
                SIZE 15,1                                 ;
                 ACTION { ||oBrowse2:RefreshAll(),SetAppFocus(oBrowse2),GenAPLShema(aApp)}

Code: Alles auswählen

function GenAPLShema(aApp)
 				 local xrow := 1,xcol := 21,xname,tmpnr,ii,iii
         select ABTEILUNG          
         orec := recno()
         select ARBEITSPLATZ        
         for ii = 1 to oRecord:REIHE
         	    xcol =+ (ii*15) 
         	    xrow := 1
          	  for iii = 1 to oRecord:RAP
          	  	  xrow =+iii
            	  	  tmpnr := STRZERO(ii,2)+STRZERO(iii,2)            	     	           	    	
            	  	  locate for ARBEITSPLATZ->APNR === tmpnr            	  	  
            	  	  btnname := if(found(),dret(tmpnr,'personal',1,'trim(NAME)+", "+vorname'),"Nicht Zugeordnet")   
       	  	
            	  	  @ xrow,xcol DCPUSHBUTTONXP                   ;
                			    CAPTION msg(tmpnr)            ; 
                                           PARENT oTab1Static ;               						
                		           SIZE 14,1                                             			            	  	  
            	 next
         next      
         DC_GetRefresh(aGetList)
return nil        
Zuletzt geändert von DSE am So, 02. Jun 2013 15:49, insgesamt 1-mal geändert.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Button werden nicht Staticarea nicht Angezeigt

Beitrag von Wolfgang Ciriack »

Hallo,
wann und wo rufst du denn die Funktion GenAPLShema(aApp) auf ?
Ist oTab1Static eine private Variable ?
Wenn nein, solltest du die local Variable als Parameter an diese Fkt. übergeben (GenAPLShema(aApp,oTab1Static).
Viele Grüße
Wolfgang
Benutzeravatar
DSE
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 22
Registriert: Di, 24. Apr 2007 22:51

Re: Button werden nicht Staticarea nicht Angezeigt

Beitrag von DSE »

Hallo Wolfgang,

die Variable wird in aApp definiert

#define oTab1Static aApp[70]

aufruf der Function hier

@ 03.8,35 DCPUSHBUTTONXP ;
CAPTION msg("Arbeitsplätze Generieren") ;
PARENT oTab1Static ;
SIZE 15,1 ;
ACTION { ||GenAPL(aApp),oBrowse2:RefreshAll(),SetAppFocus(oBrowse2),GenAPLShema(@oTab1Static,aApp)}

Viele Grüße
Ayhan
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Button werden nicht Staticarea nicht Angezeigt

Beitrag von Wolfgang Ciriack »

Ah, ok. Wenn du zur Laufzeit Elemente zur Getlist hinzufügen möchtest, dann musst du mit DC_MergeGetlists() arbeiten.
Hier ein Beispiel aus Rogers Forum:

Code: Alles auswählen

#INCLUDE "dcdialog.CH"
#INCLUDE "appevent.CH"

FUNCTION Main()

LOCAL GetList[0], lButtonAdded := .f., oDlg

@ 0,0 DCSAY 'Press Alt-F12 to Add a New Button' SAYSIZE 0 FONT '12.Lucida Console Bold'

DCHOTKEY xbeK_ALT_F12 ;
   ACTION {||AddButton(Getlist,oDlg),DC_GetRefresh(Getlist),lButtonAdded := .t.} ;
   WHEN {||!lButtonAdded}

DCREAD GUI TITLE 'Merge Test' PARENT @oDlg

RETURN nil

* --------------

function addbutton(aGetlist,oDlg)

local getlist[0]

@ 3,1 dcpushbutton caption "New Button" size 20,2 ;
      ACTION {||MsgBox('I am a new button')} ;
      FONT '12.Arial Bold'

DCREAD GUI PARENT oDlg:drawingArea EXIT SAVE

return DC_MergeGetLists(aGetList,GetList)

* ----------

PROC appsys ; RETURN
Viele Grüße
Wolfgang
Benutzeravatar
DSE
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 22
Registriert: Di, 24. Apr 2007 22:51

Re: Button werden nicht Staticarea nicht Angezeigt

Beitrag von DSE »

Hallo Wolfgang,

Super, Dank dir!

Viele Grüße
Ayhan
Antworten