ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > Hilfe: Fenstergröße | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- 2 | [ - Beitrag schreiben - ] |
06.05.2006, 21:20 Uhr Ralf27 Posts: 2779 Nutzer |
Leuts, bitte nicht mit Steinen werfen. Also, es geht um die Fenstergröße, genauer die innere Fenstergröße. Wenn ich ein Fenster unteranderem mit folgenden Parameter aufrufe, dann müßte doch eigentlich ein Fenster aufgehn das genau diese innere Fenstergröße hat (Vermutung): WA_InnerWidth, Breite WA_InnerHeight, Hoehe Aber leider scheint das wohl nur auf einem ClassicAmiga ohne Grafikkarte zu laufen. Wenn jetzt eine Grafikkarte ins Spiel kommt, sei es jetzt AOne oder Classic mit Grafikkarte, dann stimmt das ganze leider nicht. Ich hab auch schon testeweise auf meinem kleinen Amiga ohne Grafikkarte mal die Fonts extrem groß gemacht um mal zu sehn was passiert. Nun, er funktioniert alles richtig. Kann es sein das ich da schon wieder irgendetwas übersehe? Ich wurde ja auch schon vom Maik darauf hingewiesen das ich auf die Fontgröße achten muß, bzw. einen Wert nochh dazuaddieren muß, damit die Fenstergröße stimmt. Aber dann stimmt diese wieder nicht hier auf dem Classic und dann würden die oben stehenen Parameter ja für die Katz sein... Da ich auch schon bei den Datatypes schon einige überraschungen gesehn habe, bin ich hier auch mal gespannt was da noch auf mich zu kommt. bzw. Danke im vorraus. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
06.05.2006, 22:32 Uhr thomas Posts: 7718 Nutzer |
Mit InnerWidth nud InnerHeight gibst du die Größe des Fensterinhalts an, ohne Rahmen. Wenn du da also die Breite und Höhe deines Bildes angibst, paßt das Bild genau in das Fenster und der Rahmen ist außen herum. Alles andere bleibt allerdings gleich. D.h. um in die linke obere Ecke zu zeichnen, mußt du den linken und oberen Rand berücksichtigen (es sei denn, du benutzt GIMMEZEROZERO). Genauso bezieht sich die Position des Fenster (also WA_Left und WA_Top) auf das komplette Fenster mit Rahmen. InnerWidth und InnerHeight werden nur zum Berechnen der Größe benutzt, sonst nichts. Das funktioniert mit oder ohne Grafikkarte und mit hedem beliebigen Font, sei er noch so groß. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
06.05.2006, 23:14 Uhr Ralf27 Posts: 2779 Nutzer |
@thomas: Genau das denk ich ja auch und ich hab bis jetzt auf meinem Classic ohne Grafikkarte das ganze nicht zum wanken bekommen. Allerdings hab ich dann auch Screenshots bekomen auf dennen man sieh das es so wohl doch nicht geht, bzw. das es auf Grafikkartenrechnern (Classic mit Grafikkarte, Aone, ...) wohl anderst ist. Vom MaikG hab ich ja auch denn hinweis bekommen das ich auch noch ein Offset dazuaddieren sollte. Allerdings konnte ich mir das bei dem Fenster mit den oben stehenden Parametern kaum vorstellen. Allerdings versteh ich dann die Screenshots nichts, bzw. wie sowas kommen kann. Das ist ja das seltsame... -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 09:08 Uhr thomas Posts: 7718 Nutzer |
@Ralf27: Vielleicht läuft bei dir bei der Berechnung der inneren Größe etwas falsch ? Ob InnerWidth und InnerHeight funktionieren, kannst du ganz leicht ausprobieren: das, was du angegeben hast, steht nach dem Öffnen des Fensters in Window->GZZWidth und Window->GZZHeight. Diese wiederum sind gleich Window->Width - Window->BorderLeft - Window->BorderRight bzw. Window->Height - Window->BorderTop - Window->BorderBottom. Außerdem ist Window->BorderLeft = Screen->WBorLeft, Window->BorderRight = Screen->WBorRight, Window->BorderBottom = Screen->WBorBottom und Window->BorderTop = Screen->WBorTop + Screen->RastPort.TxHeight + 1. Du kannst also die Rahmengröße schon vor dem Öffnen des Fensters berechnen und das Ergebnis dann überprüfen. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 10:56 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat:Das Programm läuft so ohne Probleme auf einem Rechner ohne Grafikkarte. Egal wie hoch die Fonts sind, egal was für eine Grafik rein kommt. Es ist auch egal was für ein WBScreen man nimmt, ohne Grafikkarte läuft es. Ich hab aber jetzt die Information bekommen, das es mit Grafikkarte, sei es jetzt AOne oder andere mit Grafikkarte, es halt nicht geht, bzw. das unten ein Teil (ein paar Zeilen) fehlen. Und ich übergebe bei der Fenstergröße nur diese beiden Parameter und nicht noch weitere wie z.b. die Position des Fensters. Ich muß unbedingt wieder meinen Classic mit Grafikkarte zum laufen bekommen und das mal testen... Zitat: Hm, es stimmt schon, ein Problem zu suchen das bei einem nicht auftritt ist schon schwer. Aber die Sachen mit dem RastPort.TxHeight+1 werd ich mir nochmal ansehn. Muß ich diesen Wert vielleicht doch dazuadieren für Grafikkartensysteme? Ich kann mir das kaum vorstellen, aber irgendwie ist zur Zeit alles möglich. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 11:03 Uhr Holger Posts: 8116 Nutzer |
Zitat:Du sagst ja nicht, ob Du GZZ benutzt. Wenn nicht, mußt Du beim Positionieren der Gadgets/Grafiken offsets benutzen. Die Größe sollte dagegen mit Inner(Width|Height) korrekt sein. Zitat:Vielleicht liegts auch an AOS4? mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 11:11 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Gute Frage, das dachte ich zuerst auchh, bis ich noch einen Screenshot von einem ClassicAmiga-System mit Grafikkarte bekommen habe und dann war ich am rundern und krübeln. Wegen GZZ: Ich fange bei 0,0 an und blitte wie wild in der Gegend rum. Wenn jetzt 0,0 im Titel wäre, dann wäre es gleich weg. Er beleibt aber da. Also ist 0,0 bei mir richtig bei 0,0 wo er auch hingehört: Links Oben in der inneren Ecke. Nur die Höhe scheint nicht korrekt zu sein auf Grafikkartenrechnern. Aber: Bei anderen Programmierern läuft es doch auch überall, bzw. hab ich so eine Fehlermeldung hier im Forum noch nicht gelesen. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 11:12 Uhr Holger Posts: 8116 Nutzer |
Zitat: Um Himmels Willen, nein. Wenn Du bisher keine Offsets addiert hast, warum solltest Du ausgerechnet diesen plötzlich addieren? thomas hat doch eindeutig geschrieben: Window->BorderTop = Screen->WBorTop + Screen->RastPort.TxHeight + 1 Wenn Du einen Offset zu Deinen Objekten addierst, sprich kein GZZ benutzt, dann solltest Du Window->BorderTop benutzen. Nur wenn Du die Offsets schon vor dem Fensteröffnen brauchst, kannst Du sie über "Screen->WBorTop + Screen->RastPort.TxHeight + 1" berechnen, was ich aber nicht empfehlen würde. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 11:15 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat:Ja, mir gingen da auch die Nackenhaare hoch. Mir ist ja klar was ihr beiden da geschrieben habt. Mir ist auch klar was InnerWidth und InnerHeight macht und bei mir auf dem System läuft das ja auch, egal was ich mit dem Fenster anstelle, bzw. was für ein Font oder sonst was. Es ist schon seltsam, aber es muß auch da eine Lösung geben. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 12:00 Uhr Holger Posts: 8116 Nutzer |
Also bei mir sieht es so aus, als ob Du beim Zeichnen einen Offset hinzufügst, obwohl ja (0,0) innen ist. Jedenfalls ist sowohl links, als auch oben ein Freiraum in der Größe des Rahmens und genau diese Menge scheint ja unten und rechts zu fehlen. Und das ist vollkommen unabhängig davon, ob ich eine Grafikkarte oder AGA benutze... (AOS3.9) mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 12:09 Uhr thomas Posts: 7718 Nutzer |
Hier ist ein kleines Testprogramm, das beweist, daß alles mit rechten Dingen zugeht: http://thomas-rapp.homepage.t-online.de/WinSizeTest.lha Gruß Thomas P.S.: das habe ich unter OS4 entwickelt und sowohl unter OS4 als auch OS3 (E-UAE) mit und ohne Grafikkarte getestet. -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ Dieser Beitrag wurde von thomas am 07.05.2006 um 12:11 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 12:53 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Hab es eben getestet und es läuft auch so wie ich es mir dachte. Eigentlich wäre mir die Zweifel daran nie gekommen wenn ich halt nicht die Bugreports bekommen hätte. Ich mach das Fenster halt so auf: code:REM Öffne Fenster auf einem öffentlichen Screen TAGLIST tagsl&, _ WA_IDCMP&,IDCMP_MOUSEBUTTONS&+_ IDCMP_MENUPICK&+_ IDCMP_CLOSEWINDOW&+_ IDCMP_RAWKEY&+_ IDCMP_MENUVERIFY&+_ IDCMP_VANILLAKEY&,_ WA_Flags&,WFLG_DRAGBAR&+_ WFLG_DEPTHGADGET&+_ WFLG_CLOSEGADGET&+_ WFLG_REPORTMOUSE&+_ WFLG_GIMMEZEROZERO&+_ WFLG_WINDOWACTIVE&,_ WA_Title&,Ver$+" "+Datensatz$,_ WA_InnerWidth&,Fx2-Fx1,_ WA_InnerHeight&,Fy2-Fy1,_ TAG_END& win&=OpenWindowTagList&(0,tagsl&) IF win&=0 THEN Fehler$="Kann Fenster nicht öffnen" fx2-fx1 ist die Breite und fy2-fy1 die Höhe. Damit läuft es bei mir korrekt. Oder ist da irgendwas fehlerhaft? -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 12:56 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Wenn du das Sudoku getestet hast, das liegt es am Skin. Öffne einfach mal denn Skin mit einem beliebigen Malprogramm. Dort sieht man das oben nix gezeichnet ist. Da oben wollte ich eigentlich noch swas wie "-Sudoku-" pixeln, hab es aber noch nicht gemacht. Dieser Bereich wird aber vom Skin ins Fenster geblittet. Ich zeichne bei 0,0 und addiere nix dazu. Das ist es ja, ich kann hier kein Fehler feststellen. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 12:57 Uhr thomas Posts: 7718 Nutzer |
Da nicht. Aber später beim Zeichnen. Zitat: GIMME ZERO ZERO = give me zero/zero = gib mir null/null D.h. die Koordinate 0/0 gehört dir, sprich zum Inneren des Fensters. Du mußt keine Berechnung mit Hilfe der Fensterrahmen machen, um herauszubekommen, wo du hinzeichnen mußt. Wenn du es doch tust, hast du oben links viel ungenutzten Platz und malst unten rechts aus dem Fenster hinaus. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 13:04 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Nein, denn ich addiere keinen Wert dazu. Ich hab den Tip bekommen das ich es machen soll, aber da kann ja was nicht stimmen. Denn ich fange bei 0,0 an zu zeichnen und addiere nichts(!) dazu. Bei mir läuft es ja auch komplett von 0,0 bis maxbreite-1, maxhoehe-1 und es geht richtig. Wenn ihr Sudoku getestet habt: Das liegt am Skin. Ich hab auf dem Bild einfach oben etwas freiraum gelassen, weil ich da nochwas hinpixeln wollte, das ist alles. Ihr könnt das ja einfach mal testen und da mal was reinzeichnen, das wird auch da oben ausgegeben. Auch mein Programm BMP-Reader.. und eigentlich noch viel mehr Programme laufen so wie oben beschrieben und ich hab noch nie einen Offset dazuaddieren müssen. Eventuell war mal ein Fenster zu klein, aber das war auch mal alles. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 13:06 Uhr Ralf27 Posts: 2779 Nutzer |
Ich werde aber auch mal ein kleines Programm in MBasic schreiben und dann mal unter verschiedenen Systemen testen lassen. Ich wüßte zu gerne woran es hängt. Vielleicht liegt der Fehler auch ganz woanderst. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 14:07 Uhr Holger Posts: 8116 Nutzer |
Zitat: Sehr wahrscheinlich. Wo kommen denn diese Zahlen her? mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 14:16 Uhr Holger Posts: 8116 Nutzer |
@Ralf27: Du solltest übrigens mal den Menüpunkt "Komplettlösung" überarbeiten. Man erwartet eigentlich nicht, daß er alle Sudokos löst, sondern eher nur das aktuelle. Sieht aber lustig aus, so wie ein Matrix-Screenblanker. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 20:40 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Ok, werd ich machen Bzw. ich sollte wirklich mal die uralte version von meinem Programm von der Homepage nehmen. Ich wollte zwar erst die neue Version aufladen wenn ich neue Skins habe, aber das werd ich wohl knicken. Ich glaub das alte Programm ist peinlicher als die Skins. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
07.05.2006, 22:45 Uhr Ralf27 Posts: 2779 Nutzer |
Hab eben eine aktuellere, aber ebenfalls unfertige Version hochgeladen. In dieser fehlt z.b. irgendein Signal, wenn man gewonnen hat. Ich wollte da sowas wie ein Gewonnen-Bild mit Gewonnnen-Sound ausgeben. when it's done... -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
08.05.2006, 01:14 Uhr NoImag Posts: 1050 Nutzer |
@Ralf27: Ich habe Sudoku 1.4 auf meinem A4000 mit CGFX V3 getestet. Die Fenstergröße ist korrekt. Ich habe es auch unter e-uae getestet. Hier sieht es völlig krank aus. Das erste Programm, bei dem mir dies aufgefallen ist. Allerdings sind auch hier die Fenstergrößen korrekt. Außerdem habe ich es noch auf meinem A4000 unter P96 getestet. Auch diesmal sind die Fenstergrößen korrekt. Bei eigenem Screen solltest du aber die Standardgröße des Screens und nicht immer 320 Punkte als Breite wählen. Ich komme sonst nicht an alle Menüs heran ;-) Außerdem ist die Auswahlbox in den Menüs scheinbar fest auf Topaz 8 eingestellt, jedenfalls hat Sie bei mir nichts mit der Texthöhe und der Textbreite zu tun. Tschüß [ - Antworten - Zitieren - Direktlink - ] |
08.05.2006, 06:35 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat:Was genau meinst du mit völlig krank? Wie sieht es denn aus? Könntest du mir da bitte ein screenshot machen? Oder könnte es an der Emu liegen? Zitat:Ich hab nirgends Topaz8 eingestellt. Insofern müßte das von woanderst kommen. Ich hab die 320 als mindestmaß eingestellt. Ich möchte ja auc, das das Programm auf kleinen Amigas läuft. Ich werde aber noch die Menutexte kürzen bzw. so verändern, das diese wieder passen müßten. Wenn man allerdings dann einen Riesenzeichensatz hat, dann wird es eng... Ok, könnte dann auch einen eigenen benutzen, damit es wieder geht. Ja, ich hab da wohl noch einiges an Arbeit, bis das ganze korrekt läuft. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
08.05.2006, 20:37 Uhr NoImag Posts: 1050 Nutzer |
Zitat: Ich vermute es liegt an der Emu. Ich habe noch etwas herumgespielt und dabei festgestellt, dass dies bei der 040-Emu passiert, nicht jedoch bei der 020-Emu. Ich habe schon an anderer Stelle festgestellt, dass etwas unter der 040-Emu nicht richtig ist, nur Grafik-Fehler waren noch nicht darunter. Zitat:Zitat:Ich hab nirgends Topaz8 eingestellt. Insofern müßte das von woanderst kommen. Deine Antwort auf MaikG im anderen Thread erklärt das doch: Zitat: Es war nur eine Vermutung von mir, dass du Topaz 8 bei der Berechnung für die Menüs annimmst. Zitat: Deshalb kannst du einen PAL-Hires-Screen ja trotzdem 640 Pixel und nicht nur 320 Pixel breit machen. Du kannst übrigens auch einen Lores-Screen 640 Pixel breit machen. Es läuft trotzdem auch auf einem kleinen Amiga. Am besten wäre es, wenn du dir die Standardgröße für den ausgesuchten Screenmode geben lässt und dann den Screen mit dieser Größe öffnest. Dann musst du auch die Menütexte nicht kürzen. Zitat: Wenn du einen eigenen Font verwendest, dann darfst du aber nur Topaz 8 vorraussetzen. Ansonsten musst du den Spieler zwingen, einen vernünftigen Font selbst auszuwählen. Zitat: Tut mit leid, dass ich so pingelig bin. Trotzdem ist mir noch etwas aufgefallen. Nach dem Start von Soduko sieht das Fenster aus, als sei es aktiv (der Rahmen ist blau), es ist aber nicht aktiv. Außerdem kann es zu diesem Zeitpunkt nicht durch einen Klick in die Dragbar aktiviert werden (man muss irgendwo anders in den Rahmen oder das Innere klicken). Ich habe keine Ahnung wie du das hinbekommen hast, aber das solltest du abstellen. Außerdem finde ich es gewöhungungsbedürftig, dass ich nach der Auswahl "immer eigener Screen" noch "Screenauswahl" aufrufen muss, bevor Sudoko auf einen eigenen Screen wechselt. Kannst du das so ändern, dass der Screenauswahlrequester automatisch kommt? Tschüß [ Dieser Beitrag wurde von NoImag am 08.05.2006 um 20:41 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
08.05.2006, 20:40 Uhr Holger Posts: 8116 Nutzer |
Zitat: Durch WFLG_WINDOWACTIVE, vermute ich. Das richtige Flag müßte WFLG_ACTIVATE oder so ähnlich heißen. "Aktivier es" ist eben etwas anderes als "Aktiviert". mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
08.05.2006, 20:45 Uhr NoImag Posts: 1050 Nutzer |
@Holger: Du bist aber schnell. Deine Vermutung klingt für mich plausibel. Tschüß [ - Antworten - Zitieren - Direktlink - ] |
08.05.2006, 22:45 Uhr whose Posts: 2156 Nutzer |
@NoImag: Ist sie auch. WFLG_WINDOWACTIVE wird von Intuition gesetzt und sollte nicht von Hand gesetzt werden, so steht es in den AutoDocs WFLG_ACTIVATE wäre das korrekte Flag, um das Fenster nach dem Öffnen als das aktive Fenster zu bekommen. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 [ - Antworten - Zitieren - Direktlink - ] |
08.05.2006, 23:26 Uhr Ralf27 Posts: 2779 Nutzer |
@whose: Ja, das stimmt. Da bin ich etwas über das Ziel hinausgeschossen. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
08.05.2006, 23:55 Uhr NoImag Posts: 1050 Nutzer |
Zitat: Das ist mir schon klar. Ich bin nur nicht auf die Idee gekommen, dass Ralf27 WFLG_WINDOWACTIVE gesetzt haben könnte. Tschüß [ - Antworten - Zitieren - Direktlink - ] |
09.05.2006, 00:09 Uhr whose Posts: 2156 Nutzer |
@NoImag: Das ist ein bekannter Anfänger-/Flüchtigkeitsfehler Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 [ - Antworten - Zitieren - Direktlink - ] |
09.05.2006, 00:18 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Oh, das war wohl eher ein Anfängerfehler von mir, denn ich benutze die Includes erst seit dem BMP-Projekt und jetzt erst richtig beim aktuellen Projekt. Mir ist ehrlichgetippt erst heute aufgefallen das es da zwei verschiedene Tags gibt. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
-1- 2 | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Hilfe: Fenstergröße | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |