Oznámení

Sbalit
Aktuálně žádná oznámení.

AmiBlitz 3

Sbalit
X
 
  • Filtr
  • Čas
  • Zobrazit
Vymazat vše
new posts

    AmiBlitz 3

    Zkouším teď různé verze Amiblitz 3 a je to občas na:

    Závěr je prozatím ten, že verzi 3.9.9 určitě ne a verze 3.9.7 a 3.9.6 je uspokojivá. Ještě nižší verze je možné mít, ale je to škoda kvůli pokrokům a opravám


    Společné chyby všech verzí 3.7.4 až 3.9.9
    - Aby šlo skákat po slovech přes ctrl+šipka tak se musí nejdříve zmákčnout ctrl+amiga a pak teprve program správně odchytává ctrl+šipku vlevo, vpravo
    - V sekci IDE Preferences​ v tabu pro nastavení barev většinou nefunguje barevné kolo pro výběr barev. Ohlasí se chyba a nenačte se.

    Verze 3.9.9
    Zatím nejhorší verze
    - Intelli sense funguje, ale po uložení nastavení a opětovném startu Amigy už nefunguje
    - Psaní je extrémně pomalé. Trvá než se kurzor posune.
    - Fonty o něco větší. Je tam tuším Topaz 9 a vejde se toho na obrazovku v případě mého 704x540 dost málo.
    - Připokusu kliknout na jiný font se v requestru zobrazí busy hodinky a zasekne se celá Amiga. Nespecificky a typu fontu. Zdá se, že to má něco spolčeného s renderingem fontu v ukázce písma
    Stalo se mi to samé když jsem to pro jistotu zkusil i v mém OS 3.1.2 v Prefs/Fonts. Pomohlo odstranit "Native" z Devs/Monitors
    Poznámka z discordu k AmiBlitz: "Yeah, the native driver only works with v3.3.3 or above"
    - při smazání řádku uprostřed kódu se občas stává že zmizí všechen kód, ale zjistil jsem že po pár odentrováních se objeví zpět


    Verze 3.9.8

    - problem po opětovném otevření uloženého kódu po spuštění AmiBlitz pokud je uložen jako plain text (tedy nikoliv s ručne dopsanou příponou .ab3). Nerozpozná to dříve akceptované příkazy, které se při rozpoznání zbarvují modře, když IDE zkontroluje syntaxi. Namísto toho zobrazí při pokusu o kompilaci Garbage at end of line a je nutno najet kurzorem znovu na klíčové slovo aby si ho zparsoval a akceptoval syntaxi. K tomu se děje ještě to, že mi přidal slova která tam nebyla u původního textu kódu

    příklad původního kódu:
    Code:
    Optimize 1
    WbToScreen 0
    ShowScreen 0
    po opětovném načtení:
    Code:
    Optimize 1
    WbToScreen 0Screen
    ShowScreen 0Screen

    - při zpětné editaci textu se při backspacu posouvaji části textu vlevo od kurzoru nebo mizí, ale ve skutečnosti tam ty znaky nejsou na pozici, kde je vidíte. Zmatek
    - pokud napíšete na novém řádku jeden znak nebo chcete přes delete umazat řádek tak se které klíčová slova v celém textu posunou v ascii tabulce nahoru. Přepíná se to podle toho zda mažete znak konce řádku

    Verze 3.9.7
    - dle mně zatím nejlepší verze. Lze s ní již dobře pracovat
    - tady kupodivu text při editaci nedělá skoro žádné problémy.
    - dokumentace tu funguje. Pokud ale máte zapnuté v IDE Prefrences Clone WB a není zapnutý public screen, tak se dokumentace nezobrazí

    Verze 3.9.6
    - dokumentace tu funguje. Pokud ale máte zapnuté v IDE Prefrences Clone WB a není zapnutý public screen, tak se dokumentace nezobrazí

    Verze 3.9.2
    - Tu se chystám teprve projít

    Verze 3.7.4
    nejsou funční linky na dokumentaci, musí se otevírat ručně.
    Naposledy upravil Cyberian; 29.08.2023, 16:54:01.
    Amiga 1200 Infinitiv tower, TF1260@50MHz, OS 3.1.4, PPaint7.3, RoadShow
    Projects: The Lost Forest, still in progress

    #2
    O promazávání kódu u ASM-Pro (assembler):

    Jen pro zajímavost, nevím jak to mají ostatní vývojové prostředí pro assembler, nicméně ASM-Pro dokáže taky mazat z kódu. Je to ale podmíněno chybou v kódu, kde chyba není absolutní, program se spustí, ale nepracuje správně. Ztráta instrukcí z kódu nastane po spuštění programu z ASM-Pro. Tohle smazání instrukcí se ale zjistí velice rychle při nejbližší kompilaci do paměti, protože se smazala jen instrukce a zůstali její parametry, co končí při nejbližší kompilaci do paměti chybou. Domnívám se a zní mi to i logicky, že to má něco společného s používáním Copperu, protože když jsem pracoval bez něj pouze se zvukem, takové chování u ASM-Pro jsem nezaznamenal.​
    Amiga - PMD 85

    Komentovat


      #3
      Intelli sense funguje, ale po uložení nastavení a opětovném startu Amigy už nefunguje
      Tak to je asi v pořádku. On už 20 let blbě funguje i ten originál od Microsoftu
      Říkáme mu IntelliNonSense.

      Komentovat


        #4
        Zůstal jsem na verzi 3.9.7, která už funguje uspokojivě. Vyzkoušel jsem i přizpůsobení IDE k práci v noci:
        Klikni pro plné zobrazení obrázku

Jméno: AB_DarkTheme.png
Počet zobrazení: 258
Velikost: 22,7 KB
ID: 164423
        Amiga 1200 Infinitiv tower, TF1260@50MHz, OS 3.1.4, PPaint7.3, RoadShow
        Projects: The Lost Forest, still in progress

        Komentovat


          #5
          Dostal jsem se konečně i k tutorialu s GadTools library. Zde je kód pro jednoduché okno s edit polem, titulkem a dvěmi tlačítky s automatickým přizpůsobením prvků při různé počáteční velikosti okna. Je to dělané podle https://youtu.be/xpSweGm0oBI?si=1BqvPVkWYR1hbjwM
          Na discordu blitzbasic.dev ho najdete pod nickem Daedalus a na TwitchTV občas dělá programovací streamy , takže je možné se ho při tom v chatu, který mu tam ve videu běží i na leccos zeptat.

          V nastavení kompileru musí být v editpoli residents případně vymazáno "all" pokud tam je a přidáno amigalibs.res.
          Aby se vám lépe pochopily příkazy, tak stačí mít na příkazu kurzor a zmáčknou SHIFT+HELP. Existuje i diagnostický help, který umožňuje vyplnit parametry k danému příkazu a spouští se přes CTRL+HELP, ale pozor. Je tam malý bug , když je parametrů přes obrazovku tak jich to vloží jen část
          Pak by vás mohlo zajímat Amiga+D na smazání celého řádku a CTRL+C nebo X a V jako na PC pro vystřížení, kopírování a vložení textu.
          Opět, je tu jistý bug při vystřižení většiho textu to nereaguje a musí se to vybrat z EDIT menu. A stává se, že pokud to děláte podruhé s nějakým dalším textem tak to vystřihne kód, ale ten se někde ztratí v paměti a nevloží, takže přijdete o kus kódu a to je na facku co?

          PHP Code:
          OPTIMIZE 1


          WbToScreen 0
          ShowScreen 0

          #gtlist = 0 ; cislo seznamu gadget prvku

          #button1 = 0; cislo tl. read
          #button2 = 1; cislo tl. reset
          #string = 2 ; cislo edit pole

          NEWTYPE .gad novy datovy typ pro ulozeni x,y,w,gadget prvku
            x
          .y
            width
          .w
            height
          .w

          End NEWTYPE

          Dim gadgets
          .gad(5) ; pole peti gad typu

          flags
          .#WFLG_CLOSEGADGET|#WFLG_DRAGBAR|#WFLG_ACTIVATE
          flags.|#WFLG_HASZOOM|#WFLG_SIZEGADGET


          posledni hodnoty DpenBpen jsou zkratky detail pen a block pen
          Dpen barva titulku okna
          Bpen okraj okna
          ;Window#,x,y,w,h,flags,titulek,Dpen,Bpen
          Window 0100,50,200,300flags"GadTools Test",1,2

          iw
          .InnerWidth ;zjistime sirku okna
          ih
          .InnerHeightzjistime vysku okna

          ;edit poleAutokraje
          gadgets
          (#string)\width = iw - 20;sirka edit pole
          gadgets(#string)\x = 10;px od okraje
          gadgets(#string)\height = 15
          gadgets(#string)\y = 20

          ;tlRead
          gadgets
          (#button1)\x = 10
          gadgets(#button1)\width = iw / 2 - 15
          gadgets(#button1)\height = 15
          gadgets(#button1)\y = ih - 11 - gadgets(#button1)\height


          ;tlReset
          gadgets
          (#button2)\x = iw / 2 + 5
          gadgets(#button2)\width = iw / 2 - 15
          gadgets(#button2)\height = 15
          gadgets(#button2)\y = gadgets(#button1)\y


          ;GTButton GList#,id.w,x.w,y.w,w.w,h.w,Text$,flags.l
          GTButton #gtlist,#button1,gadgets(#button1)\x,gadgets(#button1)\y,gadgets(#button1)\width,gadgets(#button1)\height, "Read",#PLACETEXT_IN
          GTButton #gtlist,#button2,gadgets(#button2)\x,gadgets(#button2)\y,gadgets(#button2)\width,gadgets(#button2)\height, "Reset",#PLACETEXT_IN
          GTString #gtlist, #string,gadgets(#string)\x,gadgets(#string)\y,gadgets(#string)\width,gadgets(#string)\height,"Message",#PLACETEXT_ABOVE, 20,"Test message"




          AttachGTList #gtlist,0
          DefaultOutput ;vystup konzole na Default, jinak se to bude e psat do ok aplikace




          quit
          .b=False

          Repeat
            evt
          .WaitEvent
            Select evt
             
          Case #IDCMP_CLOSEWINDOW
               
          quit True
             
          Case #IDCMP_GADGETUP
               
          gh.GadgetHit
               NPrint 
          "Gadget "gh" clicked"
               
          Select gh
                 
          Case #button1
                   
          NPrint GTGetString(#gtlist,#string)
                 
          Case #button2
                   
          GTSetString #gtlist,#string,"Text message"
                 
          Case #string
                   
          NPrint GTGetString(#gtlist,#string)
               
          End Select

            End Select

          Until quit

          End 

          Klikni pro plné zobrazení obrázku  Jméno: okno01.png Počet zobrazení: 0 Velikost: 4,4 KB ID: 164425
          Naposledy upravil Cyberian; 02.09.2023, 20:38:04.
          Amiga 1200 Infinitiv tower, TF1260@50MHz, OS 3.1.4, PPaint7.3, RoadShow
          Projects: The Lost Forest, still in progress

          Komentovat


            #6
            Hází mi to chybu Constant not found. Source line: 21. Mám 3.9.7.
            Jinak ten editor je teda za trest, furt mi mizi kurzor a vůbec se chová podivně.
            Amiga DraCo DaMi PegasosII G4 G5

            Komentovat


              #7
              Autorem citovaného textu je ghh Přejít na původní příspěvek
              Hází mi to chybu Constant not found. Source line: 21. Mám 3.9.7.
              Jinak ten editor je teda za trest, furt mi mizi kurzor a vůbec se chová podivně.
              Ty novější jsou násobně horší
              Často jen posunu kurzor rychle o jedno nahoru dolu a text se zpraví. Myslím, že by měl fungovat na rozdělení řádku backtick ` (né apostrof ale ten skloněný) a nebo dva zavináče za sebou bez mezery. Zkus je.Takhle by to mělo pomoci, aby kód beztrestně pokračoval na novém řádku. Doplnil jsem to do příspěvku spolu se šikovnými zkratkami na to, jak přijít o kus práce

              Ta konstanta je moje chyba. Zapomněl jsem napsat, že v nastavení kompileru musí být v okně Residents prázdno a pak dopsáno amigalibs.res
              Klikni pro plné zobrazení obrázku  Jméno: AmiBlitzCompilerSets.jpg Počet zobrazení: 0 Velikost: 164,3 KB ID: 164438
              Přiložené soubory
              Naposledy upravil Cyberian; 31.08.2023, 13:28:00.
              Amiga 1200 Infinitiv tower, TF1260@50MHz, OS 3.1.4, PPaint7.3, RoadShow
              Projects: The Lost Forest, still in progress

              Komentovat


                #8
                Ahoj! Dneska tu mám pokročilejší práci s GadTools. Přebírá font použitý ve workbenchi. V hlavním okně je list se scrollerem a roletka. V menu lze přidávat a odebírat položky. Kód vypisuje věci, které se dějí do konzole, takže je vidět trochu více pod pokličku. Každá položka reaguje na uvolnění tlačítka myši po kliku a pamatuje si, jaký typ má v roletce přiřazený. To vše funguje při změně rozměru okna. Je tam i ochrana při pokusu smazat položku, když v listu žádná není, což by jinak způsobilo pád OS. Podle toho, kde jsem měl potíže kód plně pochopit, tak jsem přidal komentáře. Také je tam ochrana toho aby uživatel odebral položku, když není aktivní kurzor, což také pošle OS do rebootu Kód má teď kolem 300 řádků. Docela to bobtná. Cíl bude ve finále editor mapy ke hře s atlasem textur.

                PHP Code:
                OPTIMIZE 1

                WBStartup
                WbToScreen 0
                ShowScreen 0

                #gtlist = 0 ; cislo seznamu gadget prvku

                #button1 = 0; cislo tl. read
                #button2 = 1; cislo tl. reset
                #string = 2 ; cislo edit pole
                #list = 3
                #cycle = 4  ; cycle gadget


                ;Menu konstanty
                #menu1 = 0
                #load = 0
                #save = 1
                #spacer1 = 2
                #about = 3
                #spacer2 = 4
                #quit = 5
                #menu2 = 1
                #settings = 0
                #add = 1
                #remove = 2





                NEWTYPE .gad novy datovy typ pro ulozeni x,y,w,gadget prvku
                  x
                .y
                  width
                .w
                  height
                .w

                End NEWTYPE

                Dim gadgets
                .gad(5) ; pole peti gad typu


                NEWTYPE 
                .listentry
                  dummy
                .w
                  itemname
                .s
                  itemtype
                .w

                End NEWTYPE

                Dim 
                List listitems.listentry(0)
                itemcount.0;pocitadlo polozek list gadgetu
                currentitem
                .= -1
                currenttype
                .0

                msg
                ."Text Message"
                fontPt 13


                *scr.Screen Peek.l(Addr Screen(0))
                If * 
                scr 0 Then End
                *fon.TextAttr = *scr\Font
                If * fon 0 Then End
                font
                .Peek.s( * fon\ta_Name)
                fontPt = *fon\ta_YSize

                wbortop
                .= *scr\WBorTop
                wborleft
                .= *scr\WBorLeft

                woffsetx
                .wborleft
                woffsety
                .wbortop fontPt 1




                NPrint 
                "Screen width: ", * scr\Width
                NPrint 
                "Screen height: ", * scr\Height
                NPrint 
                "Screen title: "Peek.s( * scr\Title)
                NPrint "Screen Font: "font.s
                NPrint 
                "Offset: ",wborleft," x "wbortop

                LoadFont 0
                ,font.s,fontPt

                Statement calcGadgets
                {}
                  
                SHARED gadgets(),msg.s,fontPt,woffsetx,woffsety,wbortop,listitems(), currenttype

                  iw
                .InnerWidth ;zjistime sirku okna
                  ih
                .InnerHeightzjistime vysku okna
                  
                ;edit poleAutokraje
                  gadgets
                (#string)\width = iw - 20;sirka edit pole
                  
                gadgets(#string)\x = 10 - woffsetx ;px od okraje
                  
                gadgets(#string)\height = fontPt + 7
                  
                gadgets(#string)\y = fontPt + wbortop + 2

                  
                ;tlRead
                  gadgets
                (#button1)\x = 10 - woffsetx
                  
                gadgets(#button1)\width = iw / 2 - 15
                  
                gadgets(#button1)\height = fontPt + 7
                  
                gadgets(#button1)\y = ih - 11 - gadgets(#button1)\height - woffsety


                  
                ;tlReset
                  gadgets
                (#button2)\x = iw / 2 + 5  - woffsetx
                  
                gadgets(#button2)\width = iw / 2 - 15
                  
                gadgets(#button2)\height = fontPt + 7
                  
                gadgets(#button2)\y = gadgets(#button1)\y


                  
                ;ListView
                  gadgets
                (#list)\x = 10 - woffsetx
                  
                gadgets(#list)\y = gadgets(#string)\y + fontPt + 10
                  
                gadgets(#list)\width = iw - 20
                  
                gadgets(#list)\height = gadgets(#button1)\y - gadgets(#list)\y - fontPt * 3 - 19


                  
                ;Cycle
                  gadgets
                (#cycle)\width = iw - 20;sirka edit pole
                  
                gadgets(#cycle)\x = 10 - woffsetx ;px od okraje
                  
                gadgets(#cycle)\height = fontPt + 10
                  
                gadgets(#cycle)\y = gadgets(#button1)\y - fontPt - 12



                  
                GTNewLookProp On zapne novy vzhled scroll baru


                  
                ;GTButton GList#,id.w,x.w,y.w,w.w,h.w,Text$,flags.l
                  
                GTButton #gtlist,#button1,gadgets(#button1)\x,gadgets(#button1)\y,gadgets(#button1)\width,gadgets(#button1)\height, "Read",#PLACETEXT_IN
                  
                GTButton #gtlist,#button2,gadgets(#button2)\x,gadgets(#button2)\y,gadgets(#button2)\width,gadgets(#button2)\height, "Reset",#PLACETEXT_IN
                  
                GTString #gtlist, #string,gadgets(#string)\x,gadgets(#string)\y,gadgets(#string)\width,gadgets(#string)\height,"Message",#PLACETEXT_ABOVE, 20,msg.s


                  
                GTTags #GTLV_ShowSelected, 0 ;tohle zpusobi ze zustane vybrana polozka
                  
                GTListView #gtlist,#list,gadgets(#list)\x,gadgets(#list)\y,gadgets(#list)\width,gadgets(#list)\height, "Items",#PLACETEXT_BELOW,listitems()

                  
                GTCycle #gtlist, #cycle,gadgets(#cycle)\x,gadgets(#cycle)\y,gadgets(#cycle)\width,gadgets(#cycle)\height,"Type",#PLACETEXT_ABOVE,"Disk|Adresar|Nastroj|Projekt|Kos", currenttype


                  
                AttachGTList #gtlist,0
                End Statement

                Statement movetoitem
                {item.w} ;posune ukazatel na aktualni prvek listu na n-ty
                  SHARED listitems
                ()

                  
                ResetList listitems()

                  For 
                i.0 To item
                    x
                .NextItem(listitems())
                  
                Next i


                End Statement


                GTMenuTitle 0
                #menu1,"Projekt"
                GTMenuItem 0,0,#menu1,#load,"Otevrit","L"
                GTMenuItem 0,0,#menu1,#save,"Ulozit","S"
                GTMenuItem 0,0,#menu1,#spacer1
                GTMenuItem 0,0,#menu1,#about,"O aplikaci","?"
                GTMenuItem 0,0,#menu1,#spacer2
                GTMenuItem 0,0,#menu1,#quit,"Ukoncit","Q"

                GTMenuTitle 0#menu2,"Nastaveneni"
                GTMenuItem 0,0,#menu2,#settings,"Nastaveni",""
                GTMenuItem 0,0,#menu2,#add,"Pridat polozku","P"
                GTMenuItem 0,0,#menu2,#remove,"Odstran polozku","O"



                flags.#WFLG_CLOSEGADGET|#WFLG_DRAGBAR|#WFLG_ACTIVATE
                flags.#WFLG_HASZOOM | #WFLG_SIZEGADGET | #WFLG_GIMMEZEROZERO


                SizeLimits 150,fontPt 120,640,512
                posledni hodnoty DpenBpen jsou zkratky detail pen a block pen
                Dpen barva titulku okna
                Bpen okraj okna
                ;Window#,x,y,w,h,flags,titulek,Dpen,Bpen
                Window 0100,50,200,300flags"GadTools Test",1,2
                WindowFont 0
                GTSetMenu 0

                calcGadgets
                {}




                DefaultOutput ;vystup konzole na Default, jinak se to bude e psat do ok aplikace
                quit
                .b=False

                Repeat
                  evt
                .WaitEvent
                  Select evt
                   
                Case #IDCMP_CLOSEWINDOW
                     
                quit True
                   
                Case #IDCMP_GADGETUP ;kdyz pusteno tlacitko mysi nad gadgetem
                     
                gh.GadgetHit
                     NPrint 
                "Gadget "gh" clicked"
                     
                Select gh
                       
                Case #button1
                         
                NPrint GTGetString(#gtlist,#string)
                       
                Case #button2
                         
                GTSetString #gtlist,#string,"Text Message"
                       
                Case #string
                         
                NPrint GTGetString(#gtlist,#string)
                       
                Case #list ;zjistujeme pri udalosti  #list ktera polozka byla kliknuta
                         
                ec.EventCode ;vraci cislo polozkykde se kliklo
                         NPrint 
                "Vybrana polozka listu: ",ec
                         movetoitem
                {ec} ;aby jsme zjistili obsah polozky posuneme tam ukazatel
                         
                ;zde si do stringu itemname ulozime jmeno kliknute polozky ze seznamu
                         
                ;listitems je pole typu list, ktere je nezavisle na gadgetu listview
                         currentitem 
                ec ;doposavad byl currentitem -1tzn. list nema zadne polozky
                         GTSetString 
                #gtlist,#string,listitems()\itemname
                         
                ;nastav atribut v #cycle na ten co le v aktualnim prvku listitems
                         
                GTSetAttrs #gtlist,#cycle, #GTCY_Active,listitems()\itemtype
                         
                NPrint "Type: "listitems()\itemtype
                       
                Case #cycle
                         
                ec.EventCode

                         NPrint 
                "Vybrany typ: ",ec
                         
                ;diky currenitem ec v case #list vime ze pripadne listitems ma jiz polozky
                         
                If currentitem <> - 1
                           listitems
                ()\itemtype ec ;pokud bz listitems byl bez polozek byl by crash
                         End 
                If

                     
                End Select
                     
                Case #IDCMP_NEWSIZE
                       
                NPrint "Okno zmenilo velikost"
                       
                msg.GTGetString(#gtlist,#string)
                       
                currentitem.GTGetAttrs(#gtlist, #list, #GTLV_Selected)
                       
                currenttype.GTGetAttrs(#gtlist, #cycle, #GTCY_Active)
                       
                DetachGTList #gtlist
                       
                Free GTList #gtlist
                       
                InnerCls
                       calcGadgets
                {}
                       
                GTSetAttrs #gtlist,#list, #GTLV_Selected, currentitem
                   
                Case #IDCMP_MENUPICK
                     
                NPrint "Vybrano menu"
                     
                mth.MenuHit
                     mih
                .ItemHit
                     NPrint 
                "Menu: "mth","mih
                     Select mth
                       
                Case #menu1
                         
                Select mih
                           
                Case #about
                             
                x.Request("GadTools Test","Toto je test ""Super")

                           Case 
                #quit
                             
                quit True
                         End Select
                       
                Case #menu2
                         
                Select mih
                           
                Case #settings
                             
                NPrint "Settings"
                           
                Case #add
                             
                NPrint "Pridana polozka do listview"

                              
                If AddItem(listitems()) ;redraw listu
                                listitems
                ()\itemname "Toto je polozka " Str$(itemcount)
                                
                itemcount 1
                                NPrint 
                "itemcount listu: ",itemcount
                                GTChangeList 
                #gtlist, #list ;detach listu po pridani
                                
                GTChangeList #gtlist, #list,listitems() ;attach listu. Tim probehl refresh
                                
                Vpripade prvni polozky na ni umisti kurzor
                                
                Pokud by uzivatel smazal polozku bez vybranespadl by OS
                                
                If itemcount 1 Then GTSetAttrs #gtlist,#list, #GTLV_Selected,1
                              
                End If

                           Case 
                #remove  ;remove a redraw listu
                             
                ;nyni zustava jiz polozka po kliku vybrana a muzeme pouzit #GTLV_Selected
                             
                If itemcount pripad mazani polozky prazdneho listu kolaps OS
                               itemcount 
                1
                               NPrint 
                "itemcount listu: ",itemcount


                               currentitem
                .GTGetAttrs(#gtlist, #list, #GTLV_Selected)
                               
                NPrint currentitem
                               movetoitem
                {currentitem}
                               
                KillItem listitems()
                               
                GTChangeList #gtlist, #list ; dettach
                               
                GTChangeList #gtlist, #list,listitems() ; attach
                               
                ;chceme aby po smazani polozky presel kurzor na dalsi
                               GTSetAttrs 
                #gtlist,#list, #GTLV_Selected, currentitem
                             
                End If

                             
                GTChangeList #gtlist, #list
                             
                GTChangeList #gtlist, #list,listitems()
                             
                ;chceme aby po smazani polozky presel kurzor na dalsi
                             GTSetAttrs 
                #gtlist,#list, #GTLV_Selected, currentitem
                         
                End Select
                     End Select
                  End Select

                Until quit

                End 
                Klikni pro plné zobrazení obrázku  Jméno: GadToolMnListCycle.png Počet zobrazení: 0 Velikost: 9,4 KB ID: 164463
                Přiložené soubory
                Naposledy upravil Cyberian; 02.09.2023, 21:07:03.
                Amiga 1200 Infinitiv tower, TF1260@50MHz, OS 3.1.4, PPaint7.3, RoadShow
                Projects: The Lost Forest, still in progress

                Komentovat


                  #9
                  Celkem na pohodu syntaxe až na ty "End Select-y" pod sebou. To asi nejde napsat po ukončení pouze jednoho "Select-u"? Ono to je vlastně stylově místo nějakých závorek, jen to je na mně zbytečně moc nezvykle dlouhé a takhle pod sebou mi to přijde pro mně nezvyklý
                  Amiga - PMD 85

                  Komentovat


                    #10
                    Autorem citovaného textu je Lisiak Přejít na původní příspěvek
                    Celkem na pohodu syntaxe až na ty "End Select-y" pod sebou. To asi nejde napsat po ukončení pouze jednoho "Select-u"? Ono to je vlastně stylově místo nějakých závorek, jen to je na mně zbytečně moc nezvykle dlouhé a takhle pod sebou mi to přijde pro mně nezvyklý
                    Už jsem přišel nato, jak to přechytračit. Refreshni si stránku. End Select by teď měli vůči sobě lícovat se Selecty. Bez Select case by tam bylo nepřehledné množství if/end if. Dal jsem tam PHP tag, takže je kód formátovaný
                    Naposledy upravil Cyberian; 02.09.2023, 21:04:36.
                    Amiga 1200 Infinitiv tower, TF1260@50MHz, OS 3.1.4, PPaint7.3, RoadShow
                    Projects: The Lost Forest, still in progress

                    Komentovat


                      #11
                      Jo, tohle je z mého pohledu lepší. Škoda, že to ty jednotlivý Select-y a End Select-y neslučuje k sobě ve stejných barvách, kdy další Select-y a End Select-y mají pak barvy jiné dle úrovně zanoření v kódu Tohle je fajn věc například u Visual Studio Code na PC. kdy ti to takhle dělá se závorkami.
                      Amiga - PMD 85

                      Komentovat


                        #12
                        Tak teď jsem zaseklý v AmiBlitzu asi už 4 den na jednom problému. Nedokážu otevřít screen s rozlišením 1024x768, který například používám ve Workbenchi.
                        Když zavolám:
                        PHP Code:
                        Screen 0001024768,4,$8004,"Title",1,
                        Tak dostanu podle Indivisionu na místo toho 640x512 DblPAL.

                        Zkoušel jsem na to jít od lesa, jako správný trpaslík a pročetl jsem si AutoDocs k Intuition.library. Jenomže tam se používá struktura NewScreen. Příkaz zní OpenScreen_ (NewScreen)
                        A tam je kámen úrazu.

                        PHP Code:
                        DEFTYPE .NewScreen ns
                        ns\LeftEdge
                        =0
                        ns\TopEdge
                        =0
                        ns\Width
                        =1024
                        ns\Height
                        =768
                        ns\Depth
                        =6
                        ns\DetailPen
                        =1
                        ns\BlockPen
                        =0
                        ns\ViewModes
                        #HIRESLACE_KEY 
                        Jsem zaseknutý u ViewModes, kde mi to píše owerflow error. V nápovědě pro struct NewScreen je ViewModes typu word.
                        DOčetl jsem se ale že od Intuition verze 36 se používají tagy, ale nechápu jak je použít. Vypadá to jak kdyby to byl datový typ kde je pole ukazatelů na pole s 2 položkami. Jenomže je to psané jazyku C a mě jde jakž takž jen C++:

                        PHP Code:
                        typedef ULONG Tag;

                        struct TagItem {
                        Tag ti_Tag;
                        ULONG ti_Data;
                        }; 
                        Lisiak Ty to určitě používáš v assembleru, jak se tam k tomu chováš?

                        To vypadá, že jsem teď na něco kápnul


                        Jen nevím, proč to ostatním vždy tak jednoduše jde a já se s tím musím takhle dřít
                        Naposledy upravil Cyberian; 07.09.2023, 22:38:32.
                        Amiga 1200 Infinitiv tower, TF1260@50MHz, OS 3.1.4, PPaint7.3, RoadShow
                        Projects: The Lost Forest, still in progress

                        Komentovat


                          #13
                          V céčku mi to funguje takhle:
                          Code:
                          screen = OpenScreenTags(NULL,SA_Width,1024,
                                                       SA_Height,768,
                                                       SA_Depth,24,  
                                                       TAG_DONE);    
                          ​
                          Amiga DraCo DaMi PegasosII G4 G5

                          Komentovat


                            #14
                            Tak už má múspěch. Povedlo se to otevřít, ale nejde mi uložit pointer do scr a to i když dám scr.l (long integer). Ten potřebuji,abych mohl tu obrazovku uzavřít
                            Klikni pro plné zobrazení obrázku  Jméno: OpenScreen.png Počet zobrazení: 0 Velikost: 748,4 KB ID: 164563
                            Naposledy upravil Cyberian; 08.09.2023, 01:17:10.
                            Amiga 1200 Infinitiv tower, TF1260@50MHz, OS 3.1.4, PPaint7.3, RoadShow
                            Projects: The Lost Forest, still in progress

                            Komentovat


                              #15
                              Autorem citovaného textu je Cyberian Přejít na původní příspěvek
                              Vypadá to jak kdyby to byl datový typ kde je pole ukazatelů na pole s 2 položkami. Jenomže je to psané jazyku C a mě jde jakž takž jen C++:

                              PHP Code:
                              typedef ULONG Tag;

                              struct TagItem {
                              Tag ti_Tag;
                              ULONG ti_Data;
                              }; 
                              Lisiak Ty to určitě používáš v assembleru, jak se tam k tomu chováš?
                              Tak​ v asm snad ani ne, ale data z pole se indexují většinou pomocí hranaté závorky (Python, C#), nicméně tohle asi víš
                              Naposledy upravil Lisiak; 11.09.2023, 08:53:02.
                              Amiga - PMD 85

                              Komentovat

                              Zpracovávám...
                              X