AMIGA-RESISTANCE https://forum.amiga-resistance.info/ |
|
Problem mit #SIMPLEBUTTON https://forum.amiga-resistance.info/viewtopic.php?f=38&t=1675 |
Seite 1 von 2 |
Autor: | psd [ 18 Feb 2008, 22:39 ] |
Betreff des Beitrags: | Problem mit #SIMPLEBUTTON |
Hallo, ich bastele mir gerade eine einfache Toolbar. Das Problem ist, dass die Buttons nur am untersten Rand auf den OnMouseUp-Event reagieren. Hier der Code, vielleicht mag es ja mal einer ausprobieren und/oder hat eine Idee dazu: Code: Alles auswählen @VERSION 3, 0 @DISPLAY { Title = "HollyBar", X = #LEFT, Y = #TOP, Width = 32, Height = 32, Borderless = True, Sizeable = False, NoModeSwitch = True } Const #PREFSFILE = "HollyBar.prefs" btnwidth = 32 btnheight = 32 buttons = {} Function p_ReadPrefs() If Not Exists( #PREFSFILE ) Error( "No preferences file found." ) Else OpenFile( 1, #PREFSFILE, #MODE_READ ) While Not Eof( 1 ) line$ = ReadLine( 1 ) If LeftStr( line$, 1 ) <> ';' And StrLen( line$ ) > 1 TrimStr( line$, " ", True ) TrimStr( line$, " ", False ) InsertItem( buttons, line$ ) EndIf Wend CloseFile( 1 ) EndIf EndFunction Function p_MakeButtons() For index=1 To ListItems(buttons) posx = ( index - 1 ) * btnwidth posy = 0 LoadBrush( index, buttons[index-1] .. ".info" ) ScaleBrush( index, btnwidth, btnheight, True ) DisplayBrush( index, posx, posy ) MakeButton( index, #SIMPLEBUTTON, posx, posy, btnwidth, btnheight, evtmatch ) Next EndFunction Function p_RunApp( msg ) Run( buttons[msg.ID-1] ) EndFunction evtmatch = { OnMouseUp = p_RunApp } p_ReadPrefs() ChangeDisplaySize( ListItems( buttons ) * btnwidth, btnheight+1, True ) p_MakeButtons() While( quit = False ) WaitEvent Wend End Code: Alles auswählen ; HollyBar preferences Cubic:Microgolded Prog:Buero/MUIbase/Muibase |
Autor: | psd [ 19 Feb 2008, 00:18 ] |
Betreff des Beitrags: | |
Es scheint an Zeile 8 zu liegen (Borderless = True). Auskommentieren und gut ist. Ich wurschtele das hier auf einem Pegasos zurecht. Kann das mal jemand mit OS3 oder OS4 testen? |
Autor: | Clyde [ 19 Feb 2008, 07:40 ] |
Betreff des Beitrags: | |
Hey, super, klingt interessant. Schön auch, dass Du den Fehler (?) gefunden hast. Ist aber schon komisch, oder? Ich schau mir das heute Abend zu Hause nochmal an. Da teste ich das ganze dann auch unter OS3.9. Freu mich schon drauf! EDIT: Ich finde auch Deinen Quelltext schön strukturiert und gut lesbar. *Daumenhoch* Ich fordere mehr solcher Quelltexte! MdG |
Autor: | psd [ 19 Feb 2008, 09:08 ] |
Betreff des Beitrags: | |
Der Fehler tritt auch auf, wenn ich das Skript mit 'hollywood -borderless hollybar.hws' aufrufe. Scheint ein Bug zu sein. Liest Andreas hier mit oder gibt es einen Bugtracker? Wenn wir wissen, ob es nur unter MorphOS oder generell auftritt, wäre es einen Bugreport wert. Was die Lesbarkeit angeht: Anfänger sollten unbedingt den passenden Abschnitt im Hollywood-Guide beherzigen: 4.6 Styleguide suggestions. Man tut sich (und vielleicht auch anderen) wirklich einen großen Gefallen damit. |
Autor: | Clyde [ 19 Feb 2008, 09:13 ] | ||
Betreff des Beitrags: | |||
Ich denke er hat nicht viel Zeit hier regelmäßig zu lesen. Und einen Bugtracker gibt es (meines Wissens nach) auch nicht. Das beste wäre es, das Problem entweder direkt an Andreas zu schicken oder an die Mailingliste. Da können es gleich andere testen und Andreas bekommt es auch mit. Ein Bugtracker wäre aber vielleicht echt nicht schlecht, da man ihn ja auch für feature requests benutzen kann und so schön alles sammeln kann. Hm, müsste man mal bei ihm anfragen. Dem kann ich nur 100%ig beipflichten! |
Autor: | Clyde [ 19 Feb 2008, 22:51 ] | |
Betreff des Beitrags: | ||
Hey psd, habe gerade versucht, Dein Programm unter OS3 zu compilieren, aber ich bekomme für folgende Zeile Code: Alles auswählen If LeftStr( line$, 1 ) <And> 1 Bin im Moment zu müde, um genau rauszufinden, was Du da machst. :-/ Aber vielleicht hilft Dir die Meldung? Habe auch schon verschiedenste Sachen mit der HollyBar.prefs probiert, die aktuelle Version, die ja auf alle Fälle gehen müsste, sieht so aus: Code: Alles auswählen ; HollyBar preferences ;Amikit:Programme/Cubic IDE ;Amikit:Programme/Designer ;Amikit:Programme/guideml Amikit:Programme/Hollywood/GUI Gute Nacht! |
Autor: | psd [ 20 Feb 2008, 18:29 ] |
Betreff des Beitrags: | |
Danke für's Testen. Die in der Fehlermeldung angemeckerte Zeile wird von der Forensoftware nicht korrekt angezeigt. Hier ein kurzes Skript, mit dem man den Fehler reproduzieren kann: Code: Alles auswählen @VERSION 3, 0 @DISPLAY { Width = 200, Height = 100, } buttons = { "left", "right" } Function p_Output( msg ) DebugPrint( buttons[msg.ID-1] ) EndFunction evtmatch = { OnMouseUp = p_Output, OnRightMouseUp = p_Output } Box( 0, 0, 100, 100, #RED ) Box( 100, 0, 100, 100, #BLUE ) MakeButton( 1, #SIMPLEBUTTON, 0, 0, 100, 100, evtmatch ) MakeButton( 2, #SIMPLEBUTTON, 100, 0, 100, 100, evtmatch ) While( quit = False ) WaitEvent Wend End Das klappt auch wunderbar, solange das Fenster nicht borderless ist. Starte das Skript mal mit "hollywood -borderless script.hws" und achte darauf, was passiert, wenn Du die Buttons oben bzw. unten anklickst. Ich verstehe es jedenfalls nicht. |
Autor: | psd [ 20 Feb 2008, 18:38 ] |
Betreff des Beitrags: | |
Ach ja, in der prefs müssen Pfade zu den Programmen stehen, das Programm-Verzeichnis reicht nicht. |
Autor: | malsehn [ 20 Feb 2008, 20:51 ] |
Betreff des Beitrags: | |
copy and paste Test liefert nur die button ohne Aktion |
Autor: | psd [ 20 Feb 2008, 21:54 ] |
Betreff des Beitrags: | |
Du siehst die Ausgaben, wenn du das Skript aus einer Shell startest. Je nachdem, wie man es aufruft, arbeitet es richtig, oder nicht. So ist alles OK: Code: Alles auswählen hollywood script.hws Code: Alles auswählen hollywood -borderless script.hws |
Autor: | Clyde [ 20 Feb 2008, 21:58 ] |
Betreff des Beitrags: | |
Ok, danke für das neue Beispielprog. Bei mir tritt das selbe Problem auf. @malsehen: Wenn Du auf einen Button klickst, sollte in der shell, in der Du das Skript gestartet hast, entweder "left" oder "right" erscheinen! @psd: Ich denke, ich weiß, was passiert: Wenn Du in den oberen Bereich die rechte Maustaste gedrückt hältst, kannst Du das Fenster verschieben! In den anderen Bereichen (in denen die Buttons richtig reagieren), passiert das nicht. D.h. in meinen Augen, die titlebar, die durch borderless verschwindet, wird quasi transparent und nach unten, in das Hollywood-Programm-Fenster reingeschoben und legt sich über alles, was darunter ist. Deswegen kann man das Fenster verschieben, aber direkt darunter nichts anklicken. Ich habe mal die Buttons in der Höhe halbiert und nach unten geschoben, da klappt das wunderbar. Also: Code: Alles auswählen NPrint("Hier ist oben") Box( 0, 50, 100, 50, #RED ) Box( 100, 50, 100, 50, #BLUE ) MakeButton( 1, #SIMPLEBUTTON, 0, 50, 100, 50, evtmatch ) MakeButton( 2, #SIMPLEBUTTON, 100, 50, 100, 50, evtmatch ) MdG |
Autor: | psd [ 20 Feb 2008, 22:10 ] |
Betreff des Beitrags: | |
Ja, das könnte ein Erklärung sein. Auf der Mailingliste bin ich seit heute, gute Gelegenheit für eine Testmail. Schreibt man da deutsch oder englisch? |
Autor: | Tipsi [ 20 Feb 2008, 22:22 ] | ||
Betreff des Beitrags: | |||
Wenn Du beim Strichpunkt (;) anstelle von Hochkommas Anführungs- und Schlusszeichen nimmst, klappts. Statt: If LeftStr( line$, 1 ) <> ';' And StrLen( line$ ) > 1 Das hier: If LeftStr( line$, 1 ) <> ";" And StrLen( line$ ) > 1 Griessli Tipsi |
Autor: | Clyde [ 20 Feb 2008, 22:36 ] | |
Betreff des Beitrags: | ||
@psd: Man schreibt da auf Englisch. Ich weiß nicht, ob es auch ohne geht (glaube nicht), aber wenn Du eine Yahoo-ID hast bzw. Dir kostenlos erstellst, dann hast Du umfangreiche Möglichkeiten wie z.B. das Durchlesen aller bisherigen Mails der Liste, Umfragen, Projektdatenbank uvm. unter http://tech.groups.yahoo.com/group/airsoft_hollywood/ Ich habe mir auch nur deswegen einen Yahoo-Account angelegt. @Tipsi: Vielen Dank für die Hilfe! Hat funktioniert. Allerdings bekomme ich jetzt eine andere Fehlermeldung: Habe nur noch diesen eine Pfad in der Prefs stehen. Denn Pfad gibt es wirklich, habe ich 100 Mal überprüft. Und die GUI von Hollywood ist ja ein richtiges Programm ...!? |
Autor: | psd [ 20 Feb 2008, 23:02 ] |
Betreff des Beitrags: | |
OK, die Mail ist raus. In Zeile 44 wird einfach das Icon des Programms in einen Brush geladen. Es muß daher in einem Hollywood-tauglichen Format vorliegen. Da Du klassisch unterwegs bist, könnte das vielleicht ein Grund sein (ich bin nicht gerade der Amiga-Experte)? |
Seite 1 von 2 | Alle Zeiten sind UTC |
Powered by phpBB® Forum Software © phpBB Limited Deutsche Übersetzung durch phpBB.de |