DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > WB Refresh | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2006-11-05, 14:43 h Ralf27 Posts: 2779 User |
Wie sag ich der WB, das sie sich total neu aufbauen soll? Also, welchen Befehl müßte ich dazu bemühen, bzw. ich vermute einfach mal, das es einen gibt. Oder ist das ein größerer Aufwand? Danke im vorraus. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-11-05, 15:30 h thomas Posts: 7718 User |
Im Menü: Hilfsmittel -> Workbench zurücksetzen. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-11-05, 18:42 h Ralf27 Posts: 2779 User |
Als User, schon klar. Aber wie mach ich das, wenn ein Programm diesen Refresh auslösen soll? -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-11-05, 20:29 h DariusBrewka Posts: 899 [Banned user] |
Das geht nicht, da die WorkBench auch nur eine Applikation wie so viele andere auch ist. Es gibt keinen API Befehl dafür. Seit OS3.5 hat die WB aber einen Arexx Port, ggf gibts ein Arexx Kommando dafür aber das weiß ich nicht. [ - Answer - Quote - Direct link - ] |
2006-11-05, 23:26 h Holger Posts: 8116 User |
In einer ordentlich programmierten Anwendung sollte es keinerlei Notwendigkeit geben, einen Totalrefresh der Workbench auszulösen. Den zugehörigen Menüpunkt habe ich auch schon seit Jahren nicht mehr gebraucht, und Programme, die zur Benutzung dieses Menüpunktes zwingen, fliegen auch ziemlich schnell wieder von der Platte. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2006-11-06, 04:28 h bubblebobble Posts: 707 User |
Es gibt ziemlich sicher einen AREXX Befehl dafür. Aber wofür brauchst du das ? Ich bin sicher, es gibt eine andere Lösung. -- Thilo Köhler, Author von: HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker Homepage: http://www.hd-rec.de [ - Answer - Quote - Direct link - ] |
2006-11-06, 20:38 h Ralf27 Posts: 2779 User |
Ok, ich muß da etwas ausholen und erklären was ich eigentlich vor habe: Vor einigen Wochen habe ich dank Euch "gelernt" ( ), wie man via TCP: Daten aus dem Internet besorgen kann. Kombiniert mit der dank Euch erlernten Datatypeskenntnissen habe ich also binnen 5 (oder 10 Minuten |-) ) ein Programm zusammen"geklickt" das einfach sowas wie ein "Picture aus dem Internetanzeigprogramm" ist. Also sowas wie die vielen anderen im Aminet. Und da dachte ich mir, so ein schnödes anzeigen wie eigenem Screen oder Fenster auf der WB ist zwar recht einfach, aber wie geht es denn, wenn ich das ganze als Hintergrund in die Workbench einbauen möchte? Und genau da kommt jetzt die Sache mit dem Refresh rein. Ich hab mal Spaßhalber einfach mal das Bild direkt(ok, böse! ) mit BltBitmapRastport in die Workbenchbitmap geblittet um zu sehn wie es aussieht. Logischerweise hat es da alles überbügelt. Der Ansatz denn ich aber verfolgen möchte: Man kann ja mit den Prefs die WB dazu veranlassen ein Bild(oder Pattern, ist ja egal) in denn Hintergrund zu legen und wenn jezt genau dieses Bild benutzt wird und dann eingebaut wird wenn es da ist, bzw. wenn ich dann die WB dazu veranlassen könnte das Bild einzubauen... versteht ihr was ich vor habe? -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-11-06, 21:04 h Holger Posts: 8116 User |
@Ralf27: Wenn Du eine neue Einstellungsdatei nach ENV:sys/, also in Deinem Fall "Env:sys/WBPattern.prefs" schreibst, wird automatisch ein Refresh durchgeführt. Dafür sorgt das Hintergrundprogramm IPrefs. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2006-11-06, 21:50 h Ralf27 Posts: 2779 User |
@Holger: Ah, danke, sehr gut! Das gefällt mir! Hab mir eben die Prefs mit einem HexEditor angesehn. Da bleibt mir eigentlich nur noch die Frage, wie diese Datei aufgebaut ist, bzw. wo ich diesbezüglich Infos her bekommen könnte. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-11-07, 00:35 h NoImag Posts: 1050 User |
@Ralf27: Theoretisch stehen die Infos in den RKRMs (leider gab es wbpattern.prefs bei OS2.0 noch nicht) und in wbpattern.h. Ich habe gerade mal nachgesehen und dabei festgestellt, dass die Informationen unvollständig sind. Jedenfalls erklären sie nicht den Inhalt meiner wbpattern.prefs. Der grundsätzliche Aufbau ist wie folgt: IFF mit dem Chunk PRHD (6 Bytes, alle immer null) und drei PTRN Chunks. Der Chunk ist im Prinzip in wbpattern.h beschrieben, aber leider fehlt die Information, wie in diesem Chunk der Dateiname für ein Hintergrundbild gespeichert wird. Ich würde mal versuchen, einfach die Bytes bis zum Dateinamen zu übernehmen und nur jeweils den Dateinamen zu ersetzen. Natürlich darfst Du nicht vergessen, die Längeninformation für den Chunk anzupassen. Tschüß [ - Answer - Quote - Direct link - ] |
2006-11-07, 10:57 h thomas Posts: 7718 User |
@NoImag: Ich finde deinen Ansatz ziemlich verantwortungslos. Zwar steht nirgends explizit, wo der Dateiname gespeichert wird, aber es ist doch ziemlich offensichtlich. Zitat: Das funktioniert nur, wenn vorher bereits ein Bild (also ein Dateiname) benutzt wurde und wenn der neue Dateiname genauso lang oder kürzer ist als der alte. Wie gesagt, verantwortungslos. Es ist ziemlich offensichtlich, daß in wbp_DataLength die Länge der folgenden Daten steht und dahinter dann die eigentlichen Daten kommen, entweder ein Pattern oder eben ein Dateiname, je nachdem, was in wbp_Flags steht. In wbp_Flags stehen auch die anderen Einstellungen wie Qualität, Position und Skalierung. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-11-07, 12:27 h NoImag Posts: 1050 User |
@thomas: Was Du für offensichtlich hälst ist nur dummerweise falsch. Glaubst Du, ich habe das nicht überprüft, bevor ich meinen Vorschlag gemacht habe? Tschüß [ - Answer - Quote - Direct link - ] |
2006-11-07, 12:35 h thomas Posts: 7718 User |
@NoImag: Wie hast du das denn überprüft ? Es funktioniet z.B. genau so in PicShow bei "Als Hintergrundbild speichern". Ich würde das nicht schreiben, wenn es falsch wäre. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-11-07, 15:12 h crack Posts: 1181 [Former member] |
Viele Programme bieten doch die Option, beim starten die Workbench zu schließen (CloseWB) und beim beenden wird sie wieder freigegeben. Das dauert minimal länger, führt aber zum gewünschten Erfolg. -- Heimatseite: http://www.a1k.org [ Dieser Beitrag wurde von crack am 05.03.2010 um 20:14 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2006-11-07, 21:48 h Ralf27 Posts: 2779 User |
Ok, also muß ich jetzt irgendwie die wbpattern.prefs "aktualisieren". Ich dachte zuerst halt die prefs lesen, löschen und dann wieder schreiben. Gibt es aber noch einen anderen Weg, damit IPrefs die WB wieder neu aufbaut? Der Weg über die Datei ändern ist ok. Ich möchte halt das ganze mit minimalsten Aufwand (der Inhalt der Datei bleibt gleich, nur die Bilddatei ändert sich(nicht der Name!)) machen. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-11-07, 22:42 h Ralf27 Posts: 2779 User |
zur Zeit läuft es mit einfacher "Dateikopiererei". Aber es geht doch bestimmt noch besser. Vorschläge? An dieser Stelle nochmal ein dickes Dankeschön an Euch da drausen. Ihr glaubt ja gar nicht wie sehr Ihr mir bei meinen Problemchen helft! Danke! -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-11-07, 22:42 h thomas Posts: 7718 User |
Du brauchst die Datei nicht löschen. Ein einfaches SetDate bzw. dos.library/SetFileDate() reicht vollkommen. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-11-07, 23:47 h NoImag Posts: 1050 User |
@thomas: Ich habe mir den Inhalt von WBPattern.prefs angeschaut und mit wbpattern.h verglichen. Ich habe es gerade nochmal gemacht und dabei festgestellt, dass ich gestern abend um 4 Bytes verrutscht bin. Du hattest also recht. War wohl etwas spät. Tschüß [ Dieser Beitrag wurde von NoImag am 07.11.2006 um 23:48 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2006-11-12, 11:09 h Ralf27 Posts: 2779 User |
Hm, leider gibt es doch noch ein kleines Problem: Wenn jetzt WBPattern ein Bild ausgewählt hat für den Hintergrund, dann zeigt er auch diesen an. Logischerweise kann ich dieses Bild nicht löschen, weil es ja im gebrauch ist. Also wollte ich einfach nur das Bild umbennenen und das neue Bild unter dem alten Namen speichern. Soweit meine Theorie. Aber "leider" ist es nun so, das WBPattern einfach das umbenannte Bild weiter verwendet und das Bild, das WBPattern nach dem "WBRefresh" benutzen sollte einfach links liegen läst. Ok, ist eigentlich eine gute Eigenschaft des Amigas, das er auch ein umbenanntes Objekt, das er gerade benutzt, auch wieder "findet", allerdings bin ich mir jetzt nicht klar drüber, wie ich WBPattern dazu bringen soll auch wirklich das neue zu benutzen. Oder muß ich jetzt immer die WBPattern.prefs umschreiben bei einem Refresh, wenn ich das neue Bild haben möchte? -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-11-12, 14:20 h thomas Posts: 7718 User |
Zitat: Ähm, ja. Ich habe gerade mal in den Quelltext von PicShow geschaut. Ich bin da wohl auch über dieses Problem gestolpert. Jedenfalls setze ich die WBPattern.prefs zuerst auf Default (also ohne Bild) und warte eine halbe Sekunde, dann ist die Bilddatei frei und ich kann sie überschreiben. Anschließend speichere ich wieder ein WBPattern.prefs mit meinem Dateinamen. Die Default-WBPattern hat wbp_Flags = WBPF_PATTERN und wbp_DataLength = 96, alles andere auf 0 (außer wbp_Which natürlich). Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-11-12, 14:32 h Ralf27 Posts: 2779 User |
@Thomas: Ok, aber leider hab ich dennoch als noch nicht richtig verstanden wie diese prefs-Datei aufgebaut ist. Die ersten Bytes sind mir klar, aber der Rest, der eigentlich klar sein sollte, versteh ich echt nicht. Der generelle Aufbau eines IFF-Files ist mir klar, aber denn Rest bekomme ich auch nicht mit denn Includes von GCC auf die Reihe. Hab mir das Ding auch schon gestern angesehn, aber leider nicht so richtig, bzw. leider gar nicht verstanden. Das dürfte hoffentlich die letzte Hürde sein. -- http://www.alternativercomputerclub.de.vu [ Dieser Beitrag wurde von Ralf27 am 12.11.2006 um 14:32 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2006-11-12, 16:10 h thomas Posts: 7718 User |
code:chunk=FORM size=342 type=PREF chunk=PRHD size=6 Version = 0 Type = 0 Flags = 0 chunk=PTRN size=59 Reserved = 0 0 0 0 Which = WBP_ROOT Flags = WBPF_DITHER_BAD WBPF_PRECISION_ICON WBPF_PLACEMENT_SCALE Revision = 0 Depth = 0 DataLength = 35 000000: 73 79 73 3a 70 72 65 66 73 2f 70 72 65 73 65 74 sys:prefs/preset 000010: 73 2f 50 69 63 53 68 6f 77 5f 57 61 6c 6c 70 61 s/PicShow_Wallpa 000020: 70 65 72 per chunk=PTRN size=120 Reserved = 0 0 0 0 Which = WBP_DRAWER Flags = WBPF_PATTERN WBPF_DITHER_BEST WBPF_PRECISION_EXACT WBPF_PLACEMENT_TILE Revision = 0 Depth = 0 DataLength = 96 000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ chunk=PTRN size=120 Reserved = 0 0 0 0 Which = WBP_SCREEN Flags = WBPF_PATTERN WBPF_DITHER_DEF WBPF_PRECISION_DEF WBPF_PLACEMENT_TILE Revision = 0 Depth = 3 DataLength = 96 000000: 01 80 02 70 02 18 32 08 4c 30 40 90 42 2e 80 95 ...p..2.L0@.B... 000010: 84 2b 71 56 0c aa 09 76 1a cc 15 40 0e c0 01 80 .+qV.ª.v.Ì.@.À.. 000020: 01 80 02 70 02 18 32 08 4c 30 40 90 42 2e 80 95 ...p..2.L0@.B... 000030: 84 2b 71 56 0c aa 09 76 1a cc 15 40 0e c0 01 80 .+qV.ª.v.Ì.@.À.. 000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-11-12, 16:29 h Ralf27 Posts: 2779 User |
@Thomas: So sieht das schon viel besser aus, danke! Aber dennoch, ein paar Kleinigkeiten sind da als noch: Da oben steht z.b. DataLength=96 und dann folgt "Dummycode", wo eigentlich weiter oben noch ein Dateiname steht. Das können doch keine Platzhalter sein, oder was soll das darstellen? Der Aufbau der IFF-Struktur benötigt sowas ja eigentlich gar nicht. Das verwirrt mich jetzt doch etwas. Moment... Pattern? Ups, stimmt ja, das geht ja auch mit WBPattern. ... Ah, so langsam steig ich durch... (wird ja auch mal Zeit... ) Noch ne Kleinigkeit: Bei den Patterns ist einmal eine Farbtiefe von 0 und das andere eine Farbtiefe von 3 und das, obwohl die Datenlänge immer 96 Bytes hat? Müssen alle drei Blöcke (WBP_ROOT, WBP_DRAWER, WBP_SCREEN) immer angegeben werden, obwohl da nix gemacht wird, also kein Pattern und kein Bild? Ich vermute schon, wie das da oben so aussieht... Kurz angemerkt: Ich gehe aber auch recht in der Annahme, das die Blöcke immer auf "gerade Adressen" fallen müssen, also wie bei IFF-ILBM Dummybytes rein müssen? -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-11-12, 18:06 h thomas Posts: 7718 User |
Zitat: 0 ist keine gültige Farbtiefe, deshalb wird wohl die maximale Tiefe von 3 angenommen. Bei Tiefe 1, 2 und 3 ist die Anzahl Bytes immer Depth * 32. Zitat: Du solltest die vorhandene Datei laden und nur den Block für den Workbench-Hintergrund ändern. Sonst machst du dem Benutzer die Einstellungen für Fenster und Bildschirm kaputt. Zitat: Ja, das ist eine Vorgabe von IFF und hat nichts mit ILBM o.a. zu tun. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-11-12, 19:29 h Ralf27 Posts: 2779 User |
Ah, es läuft. Wunderbar. Danke! Jetzt hab ich sogar noch mehr Möglichkeiten als ich eigentlich am Anfang eingeplant hatte. Somit könnte ich die Sache jetzt doch noch etwas flexsibler machen. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-11-12, 21:11 h Ralf27 Posts: 2779 User |
Hab eben eine "Vorabversion" meines Programmes auf meiner Homepage hochgeladen. Ich werd aber da noch einiges daran schrauben, aber es läuft schon soweit. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > WB Refresh | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |