Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Bildschirm intelligent klonen (Fehler)
#3
Bei mir funktioniert das mit und ohne Debugger. Auch die Farben sind nicht schwarz, sondern so wie sie sein sollten.

Aus deinem Code ist aber nicht ersichtlich von welchem Type "srctags" ist.
Ich vermute mal deine scrntags Variable hält zu wenige Felder und daher gibt es memtrash.
Probiere das so wie ich:

*scrtags.TagItem = Tags(#BIDTAG_DesiredWidth,640,#BIDTAG_DesiredHeight,256,#BIDTAG_Depth,3)

Was mir noch aufgefallen ist:
1. Du solltest keine System Constanten selbst definieren. Binde in den Compiler settings "all.res" ein und nutze diese.

2. BestModeIDA() funktioniert nicht mit RTG. Du bekommst daher nur ChipSetScreens.
Für RTG würdest du
modeid.l= BestCModeIDTagList_ (Tags(#CYBRBIDTG_NominalWidth,width.l,#CYBRBIDTG_NominalHeight,height.l,#CYBRBIDTG_Depth,dpth.l))
benötgen.

3. Wenn du den Workbench Screen clonen möchtest, solltest du die anderen Attribute wie Tiefe etc. weglassen.

Darf ich fragen, warum du BestModeID() benutzt, wenn du sowieso den WB Screen clonen willst? Dein Code clont den WB Screen eigentlich nie, weil BestModeID() bei deinen Specs immer irgendwas zurückliefert, allerdings im Allgemeinen nicht den WB Mode, sondern einen PAL Screen mit 8 Farben, was für jemanden der eine RTG Workbench z.B. mit AfA Skins installiert hat recht öde aussieht.

Guter Stil wäre es, den WB Screen ohne weitere Angaben zu clonen, also auch ohne eigene Farben. Wenn du Farben in deiner App brauchst, dann hole sie lieber später mit ObtainBestPen(). Dann funktioniert deine App auf jedem CustomScreen, PublicScreen, Workbench Clone oder direkt auf der Workbench. Ist dann völlig egal. Auch die Farbtiefe muss dann nicht mehr 3 oder größer sein.
Zitieren


Nachrichten in diesem Thema

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 4 Gast/Gäste