Aktualisieren von Bitmaps in der Anzeige mit eXpress

Moderator: Moderatoren

Antworten
Benutzeravatar
uwe.24
UDF-Programmierer
UDF-Programmierer
Beiträge: 52
Registriert: Di, 01. Aug 2006 15:47
Wohnort: Osnabrück
Danksagung erhalten: 1 Mal

Aktualisieren von Bitmaps in der Anzeige mit eXpress

Beitrag von uwe.24 »

Hallo.

Ich bin schon lange mit der Anzeige von Bitmaps beschäftig und kriege es nicht hin.
Ich hab eine Datei mit Materialdaten, unter anderem mit den GHS Symbolen.
Die Daten der Materialien zeige ich in TABS an.
Im ersten TAB ist ein Browse und im zweiten sind dann die Detaildaten und die GHS Symbole.
Das sieht beim Startsatz mit Testdaten und allen 9 GHS Symbolen dann so aus.
Temp2.JPG
Temp2.JPG (50.73 KiB) 1698 mal betrachtet
Beim Wechsel der TABS erneuere ich die Variablen.
Das klappt auch mit den vielen DCSAY Werte.
Hier die DCSTATIC Zeilen der GHS Symbole

Code: Alles auswählen

 nRow2 = nRow2 +6
      *Hier
      @ nRow2,114 dcstatic TYPE XBPSTATIC_TYPE_BITMAP CAPTION DC_GetBitmap(aGHSSymbole2[1]) OBJECT oBMP1 PARENT oTabPage2
      @ nRow2,130 dcstatic TYPE XBPSTATIC_TYPE_BITMAP CAPTION DC_GetBitmap(aGHSSymbole2[2]) OBJECT oBMP2 PARENT oTabPage2
      @ nRow2,146 dcstatic TYPE XBPSTATIC_TYPE_BITMAP CAPTION DC_GetBitmap(aGHSSymbole2[3]) OBJECT oBMP3 PARENT oTabPage2
      @ nRow2,162 dcstatic TYPE XBPSTATIC_TYPE_BITMAP CAPTION DC_GetBitmap(aGHSSymbole2[4]) OBJECT oBMP4 PARENT oTabPage2
      @ nRow2,178 dcstatic TYPE XBPSTATIC_TYPE_BITMAP CAPTION DC_GetBitmap(aGHSSymbole2[5]) OBJECT oBMP5 PARENT oTabPage2

      nRow2 = nRow2 +5.5
      @ nRow2,114 dcstatic TYPE XBPSTATIC_TYPE_BITMAP CAPTION DC_GetBitmap(aGHSSymbole2[6]) OBJECT oBMP6 PARENT oTabPage2
      @ nRow2,130 dcstatic TYPE XBPSTATIC_TYPE_BITMAP CAPTION DC_GetBitmap(aGHSSymbole2[7]) OBJECT oBMP7 PARENT oTabPage2
      @ nRow2,146 dcstatic TYPE XBPSTATIC_TYPE_BITMAP CAPTION DC_GetBitmap(aGHSSymbole2[8]) OBJECT oBMP8 PARENT oTabPage2
      @ nRow2,162 dcstatic TYPE XBPSTATIC_TYPE_BITMAP CAPTION DC_GetBitmap(aGHSSymbole2[9]) OBJECT oBMP9 PARENT oTabPage2
Hier die Aktualisierung der Bitmaps

Code: Alles auswählen

func GHSSymboleLadenMCNR()
   *Hier2
   local aTemp
   aTemp := dc_tokenarray(cGHSSymbole,",")
   aSize(aGHSSymbole2,0)

   for i = 1 to len(aTemp)
       if len(alltrim(aTemp[i])) > 0
         for j = 1 to len(aGHSSymbole1)
            nPos = at(alltrim(aTemp[i]),aGHSSymbole1[j])
            IF nPos > 0
               aadd(aGHSSymbole2,aGHSSymbole1[j])
            ENDIF
         next
      ENDIF
   next
   for i = len(aGHSSymbole2) to 9
      aadd(aGHSSYmbole2,"\WESTLAND\MAT\GHS\GHS Piktogramme\Leer.jpg")
   next

   oBMP1:SetCaption(aGHSSymbole2[1])
   oBMP2:SetCaption(aGHSSymbole2[2])
   oBMP3:SetCaption(aGHSSymbole2[3])
   oBMP4:SetCaption(aGHSSymbole2[4])
   oBMP5:SetCaption(aGHSSymbole2[5])
   oBMP6:SetCaption(aGHSSymbole2[6])
   oBMP7:SetCaption(aGHSSymbole2[7])
   oBMP8:SetCaption(aGHSSymbole2[8])
   oBMP9:SetCaption(aGHSSymbole2[9])

   DC_GetRefresh(oBMP1)
   DC_GetRefresh(oBMP2)
   DC_GetRefresh(oBMP3)
   DC_GetRefresh(oBMP4)
   DC_GetRefresh(oBMP5)
   DC_GetRefresh(oBMP6)
   DC_GetRefresh(oBMP7)
   DC_GetRefresh(oBMP8)
   DC_GetRefresh(oBMP9)

return NIL
Erst löse ich das Feld cGHSSymbole (GHS01, ...) in Array Werte auf.
Dann sehe ich nach, ob es eine Bildatei (aus aGHSSymbole1, vorher alle eingelesen) dazu gibt.
Wenn ja, lade ich deren Dateinamem in das Array aGHSSymbole2 und fülle noch mit bis 9 mit leeren Bildern auf (??).
Das klappt auch beim ersten Start, bei dem der Testdatensatz mit GHS01 bis GHS09 geladen wurde.
Aber beim Wechsel im Browse, verschwinden die Bilder.
Da kann man beim Debuggen sehen.
Die alten Bilder vom Startsatz/Testsatz sind da und aGHSSymbole2 enthält schon die richtigen (neuen) Dateinamen
und ab der Zeile oBMP1:SetCaption(aGHSSymbole2[1]) verschwinden die Bilder nach und nach.

Nach Recherche im Forum hier und bei Roger und den Hilfedateien sollte das Arbeiten mit Variablen doch reichen.

Ich habe aber auch vieles mehr versucht.
Aktuell läuft die Anzeige in einem eigenen Fenster, was erst mit dem Wechsel zu Tab 2 aufgebaut wird.
Aber das ist das mit dem richtigen verbinden und verschieben der Fenster so eine Sache.
Temp4.JPG
Temp4.JPG (46.59 KiB) 1698 mal betrachtet

Was mache ich falsch?

Uwe aus OS
Uwe aus OS
Benutzeravatar
uwe.24
UDF-Programmierer
UDF-Programmierer
Beiträge: 52
Registriert: Di, 01. Aug 2006 15:47
Wohnort: Osnabrück
Danksagung erhalten: 1 Mal

Re: Aktualisieren von Bitmaps in der Anzeige mit eXpress

Beitrag von uwe.24 »

Hurra.

Ich habe weiterprobiert und eine Lösung gefunden.

Code: Alles auswählen

/*
   *so geht es nicht
   oBMP1:SetCaption(aGHSSymbole2[1])
   oBMP2:SetCaption(aGHSSymbole2[2])
   oBMP3:SetCaption(aGHSSymbole2[3])
   oBMP4:SetCaption(aGHSSymbole2[4])
   oBMP5:SetCaption(aGHSSymbole2[5])
   oBMP6:SetCaption(aGHSSymbole2[6])
   oBMP7:SetCaption(aGHSSymbole2[7])
   oBMP8:SetCaption(aGHSSymbole2[8])
   oBMP9:SetCaption(aGHSSymbole2[9])
   */
   *so geht es
   oBMP1:SetCaption(DC_GETBitMap(aGHSSymbole2[1]))
   oBMP2:SetCaption(DC_GETBitMap(aGHSSymbole2[2]))
   oBMP3:SetCaption(DC_GETBitMap(aGHSSymbole2[3]))
   oBMP4:SetCaption(DC_GETBitMap(aGHSSymbole2[4]))
   oBMP5:SetCaption(DC_GETBitMap(aGHSSymbole2[5]))
   oBMP6:SetCaption(DC_GETBitMap(aGHSSymbole2[6]))
   oBMP7:SetCaption(DC_GETBitMap(aGHSSymbole2[7]))
   oBMP8:SetCaption(DC_GETBitMap(aGHSSymbole2[8]))
   oBMP9:SetCaption(DC_GETBitMap(aGHSSymbole2[9]))
Uwe aus OS
Antworten