DCREAD GUI und FIT [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

DCREAD GUI und FIT [ERLEDIGT]

Beitrag von Manfred »

und wieder etwas, was ich nicht erklären kann.
FIT in DCREAD GUI soll doch dafür sorgen, das der Dialog automatisch von der Breite und Höhe her passt!?
In dem Beispiel passt zwar die Breite, aber die Länge wird immer zu groß bemessen und somit habe ich unten einen viel zu großen Platz der frei ist

Code: Alles auswählen

FUNCTION al_edit_var_neu(ar_get,apos,agruppe,xpush,abig,ex_ok,x_syspush,nZeilen)
         LOCAL aButton
         LOCAL bDatalink
         LOCAL cRahmenTitel  := aGruppe[1,3]
         LOCAL cTitel        := aGruppe[1,4] + oVtPara:cVersion
         LOCAL getlist       := {}
         LOCAL GetOptions
         LOCAL lEditProtect
         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 xPush   TO ""
         DEFAULT ex_ok   TO .T.                                                 // für die ANzeige der einelnen Pushbutton-
         DEFAULT nZeilen TO Len(ar_get)*2

         aButton := {;
                     {"Übernehmen",,,{|| DC_ReadGuiEvent(DCGUI_EXIT_OK,getlist)},,,,,"Wert übernehmen","Eingabewert übernehmen und Menue verlassen"},;
                     {"Abbruch"   ,,,{|| ASize(ar_get,0),DC_ReadGuiEvent(DCGUI_EXIT_ABORT,getlist)},,,,"{|| ." + Transform(ex_ok,"L") + ". }","Abbruch des Vorgangs","Abbruch des Eingabevorgangs und Menue verlassen."};
                    }
// {"Abbruch"   ,,,{|| quit_edit(ar_get)},,,,"{|| ." + Transform(ex_ok,"L") + ". }","Abbruch des Vorgangs"};
         oDialogZusatz:standardRahmenKopf(aGruppe[1,3],,@getlist,.F.,,,,.T.,nZeilen,oLocal_style:sty_user[3,2])
         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*/
                           xPush[nI,10],;                                        /* 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)
             lEditProtect := .F.
             IF ar_get[nI]:nLaenge = 500
// das könnte man gegen einen CodebLock tauschen. (12.08.2021)
                lEditProtect := .T.
             ENDIF
             @ oSysPara:skaliereXbParts(ar_get[nI]:nOben),oSysPara:skaliereXbParts(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
                IF lEditProtect
                   @ DCGUI_ROW,DCGUI_COL + IF(! Empty(ar_get[nI]:text),5,0) DCGET ar_get[nI]:eingabe;
                                                                      EDITPROTECT {|| .T.};
                                            PARENT oDialogZUsatz:oRahmenKopf;
                                           PICTURE ar_get[nI]:picture;
                                           TABSTOP;
                                           TOOLTIP ar_get[nI]:cTooltip
                ELSE
                   @ DCGUI_ROW,DCGUI_COL + IF(! Empty(ar_get[nI]:text),5,0) DCGET ar_get[nI]:eingabe;
                                            PARENT oDialogZUsatz:oRahmenKopf;
                                           PICTURE ar_get[nI]:picture;
                                           TABSTOP;
                                           TOOLTIP ar_get[nI]:cTooltip
                ENDIF
             ENDIF
         NEXT
********************************************************************************
         DCGETOPTIONS;
           AUTORESIZE;
               BORDER XBPDLG_SIZEBORDER;
              BUTTONS aButton;
                COLOR oVtPara:us_scrbg;
            COLORGETS {oSysPara:doParaWS:colorgets_aktiv,oSysPara:doParaWS:colorgets_inaktiv};
             ENTERTAB;
                 FONT xx_font_input;
              GETFONT oVtpara:us_font_menue;
           HILITEGETS oSysPara:doParaWS:hilitegets;
          NOESCAPEKEY;
          NOMAXBUTTON;
          NOMINBUTTON;
                PIXEL;
         PRESENTATION oVtPara:aPresGet;
              SAYFONT oVtpara:us_font_menue;
           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
erkennt irgendwer einen Fehler im System? Ich sehe erstmal nichts.
Und so sieht es dann aus.
FIT.JPG
FIT.JPG (87.71 KiB) 2483 mal betrachtet
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCREAD GUI und FIT

Beitrag von Tom »

Das liegt an der Groupbox, die Du da reinmalst. Ein anderer Aspekt, der eine unschöne Automatikberechnung zur Folge haben kann, ist eine Combobox - bei der rechnet Roger die Ausklappgröße mit. Also eine Combobox am unteren Rand, von der im ausgeklappten Zustand zehn Einträge zu sehen sind, verlängert den Dialog um 9 Einheiten nach unten. Aber, wie gesagt - hier machst Du das selbst. Du musst die Groupbox verkleinern.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCREAD GUI und FIT

Beitrag von Manfred »

Hi Tom,
manchmal könnte ich verzweifeln, das die Natur so einen Mist zuläßt. Du hast natürlich Recht. Und ich hatte dafür vorgesorgt und extra nZeilen eingebaut. Aber Cut&Paste schaltet ab und an den Verstand aus. :roll: :banghead:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCREAD GUI und FIT

Beitrag von Tom »

Huhu, Manfred.

Kann passieren. Aber es ist immer wieder eine Freude, Deinen aufgeräumten und exzellent formatierten Code zu sehen. :D
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCREAD GUI und FIT

Beitrag von Manfred »

:lol: brushteeth
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten