ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > GadGets | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- 2 | [ - Beitrag schreiben - ] |
28.12.2006, 21:26 Uhr Ralf27 Posts: 2779 Nutzer |
Ich will Euch nicht auf den Keks gehn, aber bis jetzt hab ich dieses Thema immer geschickt umgangen, bzw. hab ich kaum einen Schimmer wie ich es am besten machen könnte. Hab hier noch OS1.2-Doku, nach der ich mit Intui-Mitteln auch Gadgets machen könnte. Allerdings sieht dies da nicht gerade "schick" aus. Da ich aber auch die Gadtools benutze, könnte ich auch diese dazu benutzen. Allerdings habe ich mir dazu mal das Demo in MaxonBasic angesehn und quasi Kopfschmerzen bekommen. Die Frage ist jetzt viel mehr wo ich einfache, verständliche und am besten deutsche Doku dazu finden könnte. Wie schon geschrieben könnte ich das ganze auch AmigaBasic OS1.2-Like machen, allerdings möchte ich mir das auch nicht mehr antun und wenn ich schon was größeres aufbaue, dann auch richtig machen, auch wenn ich dazu vermutlich auch ca. 10 Jahre zu spät komme... Dank Eurer Hilfe hab ich ja auch schon einiges in Sachen Amigaprogrammierung gelernt und ich kann mir auch gut vorstellen das mir ein paar einfache C-Beispiele mehr helfen als ein (meiner Meinung nach)vermurkstes MaxonBasic-Demo, das ich überhaupt nicht lesen kann, bzw. nicht versteh. Vielen Dank schonmal im vorraus. Achja, es werden eigentlich nur folgende Gadgets benötigt: Stringgadgets und ein einfaches Auswahlgadget zum starten. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 10:24 Uhr MaikG Posts: 5172 Nutzer |
Mh, gadtools ist dir also zu kompliziert. Ich denke da gibt es dann besonders unter OS1.2 nur die Möglichkeit, die Gadgets selbst zu proggen. Ist ziemlich einfach, oben und links eine weisse Line, rechts und unten eine Schwarze in der Mitte der Text - für ein Button Gadget. Klicks fragst du selbst ab, wenn die Mauskoordinaten dem Gadget entsprechen und einer Klickt, machst du die weissen Linen zu schwarzen und umgekehrt. Dann beim Loslassen wieder herstellen und die gewünschte Funktion ausführen. Das String Gadget kannst du die mit einem Malprogramm von der WB holen und ebenso erstellen, für den Text nimmst du das Get.String beispiel(hast du?) und setzt das an die entsprechende Position. Ist natürlich ohne Clipboard Funktion aber hat 1.2 das überhaupt? [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 10:34 Uhr thomas Posts: 7718 Nutzer |
@Ralf27: Hier ist ein kommentiertes Gadtools-Beispiel in C: http://thomas-rapp.homepage.t-online.de/examples/gadtools.c Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 12:59 Uhr Holger Posts: 8116 Nutzer |
Zitat:So etwas hat man auch unter AOS1.x nicht selber gemacht. Dafür gibt es eine Border-Struktur, mit der man mehrere Linien zeichnen kann. Da legt man eine mit dem weiß oben & links und schwarz unter & rechts an und eine zweite mit umgekehrten Farben und verwendet die als GadgetRender und SelectRender. Den Rest macht das System. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 13:04 Uhr Holger Posts: 8116 Nutzer |
Zitat:Der public screen sollte aber nicht die gesamte Programmlaufzeit gelockt bleiben. Nach dem Öffnen des Fensters gibt es keinen Grund mehr, den Lock aufrecht zu erhalten. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 15:26 Uhr thomas Posts: 7718 Nutzer |
Zitat: Es gibt aber auch keinen Grund, ihn freizugeben. Das Fenster blockt den Screen ohnehin. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 16:18 Uhr Ralf27 Posts: 2779 Nutzer |
Danke, das muß ich mir gleich mal ansehn. Wegen verstehn und so: Ich programmiere in MaxonBasic und eigentlich sollte ich diese Sprache ja auch lesen können, aber was da als Beispiele mitgeliefert wird ist wirklich der Hammer. Da kann ich ja besser C lesen als diese Beispiele. Ich will hier aber nicht denn Eindruck hinterlassen das ich undankbar über die Hilfe von Maxon bin, aber nunja... Bis jetzt hab ich über die C-Beispiele mehr gelernt als mit den Beispielen in MBasic. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 17:40 Uhr MaikG Posts: 5172 Nutzer |
>So etwas hat man auch unter AOS1.x nicht selber gemacht. Dafür gibt >es eine Border-Struktur, mit der man mehrere Linien zeichnen kann. Mag ja sein aber wenn man diverse nicht Standard Farben nehmen will und ggf. Bilder wird das wohl schwieriger... [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 17:49 Uhr Ralf27 Posts: 2779 Nutzer |
MaikG: Es kommt darauf an wie es erklärt wird. Die Beispiele von Maxon sind ja wohl wirklich recht kompliziert und seltsam gemacht. Das Beispiel vom Thomas ist ja wohl wirklich selbsterklärend und einfach einfach. Damit kann man Gadtools verstehn. Achja, vorher hab ich die Gadgets von Intuition benutzt, was ja auch möglich ist. Aber auch das fast nie oder zu Testzwecken. Wie oben schon geschrieben hab ich dieses Thema immer geschickt umfahren. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 18:29 Uhr bruZard Posts: 307 Nutzer |
Finde ich alles wahnsinnig kompliziert ... ich muss nur schreiben "myButton:TGadget = CreateButton("Mein schöner Button", 2,2,100,20,win)" und kann diesen Source für Linux, Windows und MacOS kompilieren, sieht überall gleich aus ...... aber gut, ich schweife ab. -- Wer glaubt dass Volksvertreter das Volk vertreten, der glaubt auch dass Zitronenfalter Zitronen falten [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 19:29 Uhr Mad_Dog Posts: 1944 Nutzer |
Schau mal hier: http://w3.norman-interactive.com/C-Kurs_10_1.html Ich hoffe, das hilft Dir ein wenig weiter... -- http://www.norman-interactive.com [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 19:55 Uhr Holger Posts: 8116 Nutzer |
Zitat: Das ist trotzdem etwas anderes. Das erste Beispiel, das mir spontan dazu einfällt, ist, dass ein Programm den public screen in private ändern kann, damit keine neuen Fenster mehr geöffnet werden können. Wenn man eigentlich darauf wartet, dass die alten geschlossen werden, ist das ziemlich sinnvoll. Wenn ein Programm den screen die ganze Zeit per LockPubScreen blockiert, geht das natürlich nicht. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 19:58 Uhr Holger Posts: 8116 Nutzer |
Zitat: Mmh, zum einen vermisse ich AmigaOS in Deiner Liste (wegen der Relevanz), zum anderen sehe ich da absolute Koordinaten und Größen in Deinem Beispiel, was also, wenn Du so wie im Beispielprogramm ein font-sensitives Layout erzeugen willst, keinen Deut einfacher zu programmieren ist. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 20:04 Uhr Holger Posts: 8116 Nutzer |
Zitat:Hab auch nicht behauptet, dass AOS1.x GUI-Programmierung einfach gewesen wäre. Ging nur darum, dass die 3D-Look Programmierung nicht von Hand programmiert werden musste, insb. das reagieren auf Selektion oder (Gott bewahre) der Test, ob ein Maus-Ereignis innerhalb der Gadget-Grenzen stattfand. Ich hatte damals, weiß selber nicht mehr woher, einen ziemlich komfortablen GUI-Editor, mit dem man das alles zusammenklicken und dann source-code generieren konnte. Den code hat man dann hinterher noch ein bisschen optimiert, so dass z.B. gleich große Gadgets auch das gleiche Border-Objekt benutzt haben, so dass es nicht nur weniger Speicher brauchte, sondern auch konsistentes Aussehen sichergestellt war, selbst dann, wenn man die Farben dynamisch angepasst hat. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
29.12.2006, 21:06 Uhr bruZard Posts: 307 Nutzer |
Zitat: Yop. absolute Koordinaten. Spielt aber keine Rolle. Diese Daten werden ausschliesslich für die Initialisierung verwendet und richten sich danach nach den globalen Eigenschaften des Windows ... aber wie Du schon sagtest, so eine einfache Programmierung hat keinerlei Relevanz für ein Monster wie GTTools, Intuition oder MUI. -- Wer glaubt dass Volksvertreter das Volk vertreten, der glaubt auch dass Zitronenfalter Zitronen falten [ - Antworten - Zitieren - Direktlink - ] |
30.12.2006, 00:12 Uhr Ralf27 Posts: 2779 Nutzer |
Ich hab das Beispiel mal übersetzt, aber leider stürzt es immer nach dem öffnen des Fensters ab. Ich hab es immer weiter vereinfacht, aber dennoch, irgendwo hab ich wohl einen Fehler drin. Ich dachte wirklich ich hätte es verstanden, aber leider... Kurz noch ein Hinweis: Ich hab es mal stark vereinfacht um den Fehler etwas einzugrenzen, aber leider dennoch nicht gefunden. Kurz mal das Programm: code:REM $INCLUDE Exec.bh REM $INCLUDE DOS.bh REM $INCLUDE Intuition.bh REM $INCLUDE gadtools.bh LIBRARY OPEN "exec.library", LIBRARY_MINIMUM& LIBRARY OPEN "intuition.library", LIBRARY_MINIMUM& LIBRARY OPEN "dos.library", LIBRARY_MINIMUM& LIBRARY OPEN "gadtools.library", LIBRARY_MINIMUM& REM $window REM $errors REM $lines REM $nolibrary REM $nodebug REM $nobreak REM $noevent REM $nooverflow REM $novarchecks REM $noautodim REM $noaddicon REM $noarray REM $nostack DEFINT a-z CONST tagsl&=100 tags&=AllocMem&(tagsl&,MEMF_PUBLIC&) IF tags&=0 THEN Ende CONST GID_Auswahl=1 CONST GID_Eingabe=2 CONST GID_Weiter=3 CONST GID_Abbruch=4 scr&=LockPubScreen&(0) IF scr&=0 THEN Ende glist&=0 gad&=CreateContext&(VARPTR(glist&)) ng&=AllocMem&(NewGadget_sizeof%,MEMF_PUBLIC&) IF ng&=0 THEN Ende VInfo&=GetVisualInfoA&(scr&,0) POKEL ng&+ng_VisualInfo%,VInfo& POKEL ng&+ng_TextAttr%,PEEKL(scr&+ScreenFont%) POKEW ng&+ng_Flags%,0 POKEW ng&+ng_LeftEdge%,10 POKEW ng&+ng_TopEdge%,20 POKEW ng&+ng_Width%,100 POKEW ng&+ng_Height%,20 POKEL ng&+ng_GadgetText%,SADD("Eingabe"+CHR$(0)) POKEW ng&+ng_GadgetID%,GID_Eingabe gad& = CreateGadgetA&(STRING_KIND&,gad&,ng&,0) POKEW ng&+ng_LeftEdge%,120 POKEL ng&+ng_GadgetText%,SADD("Abbruch"+CHR$(0)) POKEW ng&+ng_GadgetID%,GID_Abbruch gad& = CreateGadgetA&(BUTTON_KIND&,gad&,ng&,0) IF gad&=0 THEN Ende TAGLIST tags&, _ WA_Width&, 250, _ WA_Height&, 150, _ WA_Left&, 0, _ WA_Top&, 0, _ WA_PubScreen&, scr&, _ WA_Title&, "Fenster", _ WA_Flags&,WFLG_CLOSEGADGET& OR WFLG_DRAGBAR& OR WFLG_DEPTHGADGET& OR WFLG_ACTIVATE& OR WFLG_NOCAREREFRESH&, _ WA_IDCMP&,IDCMP_CLOSEWINDOW& OR IDCMP_VANILLAKEY& OR BUTTONIDCMP& OR CYCLEIDCMP&, _ WA_Gadgets&,glist&, _ TAG_END& win&=OpenWindowTagList&(0,tags&) IF win&=0 THEN Ende UserPort&=PEEKL(win&+UserPort%) GT_RefreshWindow win&,0 go=1 WHILE go junk=WaitPort&(UserPort&) msg&=GT_GetIMsg&(UserPort&) IF msg& THEN Class&=PEEKL(msg&+Class%) SELECT CASE Class& CASE IDCMP_GADGETUP& gad&=PEEKL(msg&+IAddress%) ID&=PEEKW(gad&+ng_GadGetID%) SELECT CASE ID& CASE GID_Eingabe text&=0 TAGLIST tags&, _ GTST_String&,VARPTR(text&), _ TAG_END& junk=GT_GetGadgetAttrsA(gad&,win&,0,tags&) PRINT PEEK$(text&) CASE GID_Abbruch go=0 END SELECT CASE IDCMP_VANILLAKEY& go=0 CASE IDCMP_CLOSEWINDOW& go=0 END SELECT GT_ReplyIMsg msg& END IF WEND Ende: IF win& THEN CloseWindow win& IF glist& THEN FreeGadgets glist& IF VInfo& THEN FreeVisualInfo VInfo& IF ng& THEN FreeMem ng&,NewGadget_sizeof% IF scr& THEN UnLockPubScreen 0,scr& IF tags& THEN FreeMem tags&,tagsl& Wenn ich die Doku richtig verstanden habe, dann muß ich kein Speicher für glist reservieren, bzw. wird dies wohl dann auch wieder mit FreeGadgets freigegeben. Ich hab wirklich mal vor irgendwann mal bei GadTools auch die Gadgets zu verstehn. Bei den Menus mit GadTools bin ich ja auch schon dank Euch durchgestiegen. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
30.12.2006, 03:43 Uhr Holger Posts: 8116 Nutzer |
@Ralf27: Das ist jetzt zwar bestimmt nicht die Ursache des Absturzes, sollte aber schon mal erwähnt werden: WFLG_NOCAREREFRESH& solltest Du streichen. NoCareRefresh und Gadtools gehören definitiv nicht zusammen. Für genauere Blicke ist es jetzt leider etwas zu spät mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
30.12.2006, 08:33 Uhr Cj-Stroker Posts: 1343 Nutzer |
Hi Ralf27 Auch auf die Gefahr hin, daß ich mir den Mund fusselig labere. Du hättest es auch in diesem Fall um Welten einfacher haben können. In Blitz geht das weitaus einfacher und man versteht es sogar. Zudem enthält die letzte von mir releaste Distri auch noch eine Menge Examples zu den Gadtools. Da ist alles dabei, was man braucht. In Sachen WYSIWYG Editoren mußt du im Aminet mal nachgucken: http://aminet.net/search.php?query=gadtools Die Gadtoolsbox ist zum Beispiel sowas. Ruten Rutsch ins neue Jahr ! MFG Cj-Stroker -- Webmaster of Amiforce and Abakus-Design http://www.Amiforce.de (Fight For Amiga) http://www.cj-stroker.de/Abakus/ (World of AMHuhn and more) Forum: http://amiforce-forum.cj-stroker.de [ - Antworten - Zitieren - Direktlink - ] |
30.12.2006, 09:18 Uhr thomas Posts: 7718 Nutzer |
@Ralf27: Wenn du schreibst code:bist du dann sicher, daß der Speicher mit dem Text bis zum Programmende unverändert bleibt ? Der Text wird nämlich nicht kopiert, sondern der Pointer, den du übergibst wird so übernommen. Wenn du den Speicher dann für etwas anderes benutzt, ist es klar, daß das Programm abstürzt.POKEL ng&+ng_GadgetText%,SADD("Abbruch"+CHR$(0)) Ich würde es vielleicht so schreiben (vorausgesetzt, daß das basicmäßig richtig ist): code:CONST Abbruch_text$ = "Abbruch"+CHR$(0) POKEL ng&+ng_GadgetText%,SADD(Abbruch_text$) Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
30.12.2006, 09:27 Uhr Ralf27 Posts: 2779 Nutzer |
@Cj-Stroker: Ich hab mir hier damals mal BlitzBasic gekauft, das hier auch läuft. Allerdings läuft bei mir das AmiBlitz nicht, da es eine Grafikarte vorraussetzt. Oder eben eine CybergraphX-Installation für AGA(<- ?!?). Außerdem war damals auch der Hinweis auf "am besten unter WinUAE programmieren" schon merkwürdig. Mag ja sein das AmiBlitz wesentlich besser und einfacher ist. Es mag auch sein das MaxonBasic total veraltet und langsam ist. Aber auf eins kommt es mir an, das es Spaß macht. Ok, an gewissen Punkten hätte ich vermutlich lieber eine andere Sprache als MaxonBasic... Achja, ich hab wirklich keine Grafikkarte hier in meinem kleinen Amiga. Im großen ist eine drin, aber der ist seit fast einem Jahr außer Betrieb (A1200T-Bastelrechner...) -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
30.12.2006, 09:29 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat:Da bin ich mir schon recht sicher. Außer, wenn das Programm abstürzt, dann wird auch dieser Speicherbereich vom MBasic-Compiler freigegeben und dann können wilde Sachen drin stehn. Aber ich kann dies ja auch nochmal umbauen und in einem eigenen Speicherbereich übergeben. Ich vermute aber das das nicht der Quell des Übels ist. Ich muß da woanderst einen ganz schönen Bockmist gebaut haben. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
30.12.2006, 09:48 Uhr MaikG Posts: 5172 Nutzer |
code:SUB Setng_GadgetText(a$) SHARED ng(1) POKEL VARPTR(ng(ng_GadgetText2)),SADD(a$+CHR$(0)) END SUB ng(ng_LeftEdge2)= 20 ng(ng_TopEdge2) = 50 ng(ng_Width2) = 100 ng(ng_Height2) = 12 Setng_GadgetText "OK" ng(ng_GadgetID2) = 1 ng(ng_Flags2) = 0 TAGLIST VARPTR(GadgetTags&(0)), GT_Underscore&, "_"%, TAG_END& gad& = CreateGadgetA&(BUTTON_KIND&, gad&, VARPTR(ng(0)), VARPTR(gadgetTags&(0))) Ich kann mich schwach erinnern das ich dieses Sub da oben nicht grundlos verwende. Lehne dein Style doch mehr an die Maxon Beispiele an dann könnte ich dir genauer sagen was falsch ist. [ - Antworten - Zitieren - Direktlink - ] |
30.12.2006, 18:45 Uhr Holger Posts: 8116 Nutzer |
@Ralf27: Also, ich habe jetzt Dein Programm getestet und es läuft. Neben dem schon angesprochenen Fehler, dass Du NoCareRefresh eingeschaltet hat, was allerdings keine Auswirkungen hat, solange Du nur einen Button und ein String-Gadget benutzt, hast Du noch einen Fehler beim Abfragen der angeklickten Gadget ID. Da wo steht: code:muss es heißen:gad&=PEEKL(msg&+IAddress%) ID&=PEEKW(gad&+ng_GadGetID%) SELECT CASE ID& code:Ansonsten läuft alles...gad&=PEEKL(msg&+IAddress%) ID&=PEEKW(gad&+GadgetGadgetID%) SELECT CASE ID& mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
30.12.2006, 20:40 Uhr Ralf27 Posts: 2779 Nutzer |
Tatsache, das war alles, jetzt läuft es! Danke! Alledings, irgendwas ist da dennoch faul: Beim ersten Starten vom Programm sieht das ganze etwas anderst aus als beim zweiten mal. Das versteh ich nun wieder nicht. Z.b. ist beim zweiten Programmstart der Text verschoben. Wie kann denn das passieren? -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
31.12.2006, 12:18 Uhr Ralf27 Posts: 2779 Nutzer |
Genauergetippt ist kein Text zu sehn und wenn ich nichts in die Gadget eingebe, dann wird dann auch beim auslesen der Gadgets nicht angegeben, obwohl ich ein Defaulttext drin stehn habe. Ich vermute mal das ich den Text falsch übergebe. Aber wieso läuft es dann nur bei mir nicht und bei euch richtig? -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
31.12.2006, 14:36 Uhr MaikG Posts: 5172 Nutzer |
>Z.b. ist beim zweiten Programmstart der Text verschoben. Wie kann denn das passieren? Nach mehrmaligen Starten war kein Standard Text mehr im Text-Gadget. Du wirst da was falsch übergeben. Machs lieber wie im Beispiel. [ - Antworten - Zitieren - Direktlink - ] |
31.12.2006, 14:50 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Ja, ich hab zwar ne leise Ahnung was das sein könnte, aber ich kann es mir dennoch kaum vorstellen, da die ng-Struktur ja nur die Vorlage ist. Oder arbeitet gadtools mit dem Zeiger auf denn Text? Denn dann würde es das wirklich sein. Wegen dem Beispiel von MaxonBasic: Ist dir mal aufgefallen wie die es gemacht haben? Die füllen eine MaxonBasic-Array(2Byte pro Feld) mit den Daten und übergeben dann dieses Feld. Das hat auch zur Folge das man z.b. GadGetID plötzlich nur noch 16Bit möglich ist, statt 32 (ok, nicht so wichtig, aber ist mir auch gleich aufgefallen). Bzw. das alle Werte 16bittig sind. Ok, das Demo scheint zu laufen, aber was macht das Demo bei der Textübergabe anderst? -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
31.12.2006, 17:34 Uhr Holger Posts: 8116 Nutzer |
Zitat: Bei mir läuft's "richtig", weil ich gar nicht erwartet habe, dass da ein Text drin stehen soll, denn Du übergibst ja auch keinen. Der Text für ein String-Gadget muss in der TagList via GTST_String übergeben werden. Er wird dann auch kopiert. Dass der in der NewGadget Struktur enthaltene Text sporadisch zu sehen ist, statt ignoriert zu werden, scheint mir ein Bug in gadtools zu sein. Der ist mir nicht aufgefallen, weil es bei mir erst heute mal passiert ist. Da dieser Text aber nur über das Gadget drübergezeichnet wird, und nicht im StringGadget enthalten ist, bekommst Du ihn auch nicht beim Auslesen zurück. Du solltest den ng_GadgetText Eintrag der NewGadget-Struktur am Besten auf NULL setzen, wenn Du ein String-Gadget anlegst. Zitat: Was meinst Du? Die Gadget-ID ist 16 Bit breit. Du benutzt in Deinem eigenen Programm ja auch POKEW/PEEKW. Wenn Du mehr willst, musst Du den UserData Pointer benutzen. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
31.12.2006, 17:49 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat:Oh, hm, danke. Das hab ich dann total vergessen. Ich dachte der GadgetText wäre der Text. Werd ich gleich mal umsetzen. Zitat:Beim ersten Programmstart wurde dieser Text ausgegeben (wohl auch bei MaikG) und ich dachte das ich was falsch gemacht habe. Aber das ich was vergessen habe... Ist für mich mal was neues das ein Bug mal nicht in meinem Programm sondern extern vorliegt. Zitat:Werd ich dann wohl auch am besten machen. Zitat:Da hast du natürlich recht, ein Fehler von mir. Es gibt aber auch andere Einträge in dieser Struktur die nicht 16Bit breit sind. Wie z.b. der Eintrag des Textes, der ein Zeiger a la 32Bit ist. Deswegen wohl auch im MaxonBasic-Demo die seltsame Umsetzung. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
31.12.2006, 18:13 Uhr Ralf27 Posts: 2779 Nutzer |
Ja, jetzt läuft es so wie es soll. Danke. Woher kann man denn eigentlich noch mehr Infos über gadtools(wenn möglich bitte auf deutsch ) bekommen? Die ganze GadTools-Gadgetstory soll übrigens später mal die ID und Port abfragen. Zur Zeit frag ich diese in der aktuellen Netzwerkversion von Sudoku behelfsmäßig mit Basicmitteln ab. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
-1- 2 | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > GadGets | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |