Aktualisieren von Bitmaps in der Anzeige mit eXpress
Verfasst: Mi, 11. Aug 2021 9:12
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. Beim Wechsel der TABS erneuere ich die Variablen.
Das klappt auch mit den vielen DCSAY Werte.
Hier die DCSTATIC Zeilen der GHS Symbole
Hier die Aktualisierung der Bitmaps
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.
Was mache ich falsch?
Uwe aus OS
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. 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
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
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.
Was mache ich falsch?
Uwe aus OS