Programa para compilar QuickBasic programas de área de trabalho do Macintosh

Traduções deste artigo Traduções deste artigo
ID do artigo: 36644 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Sumário

O programa abaixo permite que você ignorar a etapa de carga do QuickBasic e compilar um programa QuickBasic diretamente da área de trabalho Macintosh ou de outro editor de texto. Isso torna o processo de compilação um programa grande com mais rapidez.

Essas informações se aplica ao Microsoft QuickBasic versões 1.0, 1.0a e 1.0b para sistemas do Apple Macintosh.

Mais Informações

Alguns editores, como QUED F/M de Paragon Courseware são capazes de passar o nome de um arquivo para outro aplicativo quando ele transfere a esse aplicativo. Se isso é feito com QuickBasic, QuickBasic irá executar o programa. Você pode transferir para o programa abaixo em vez disso. Este programa, em seguida, iniciará QuickBasic, passando a ele uma mensagem para compilar o arquivo em vez de executar a ele.

Na área de trabalho, se você selecionar este programa e a fonte do programa desejado e escolha abrir no menu de arquivo do localizador, este programa irá iniciar QuickBasic e passe a ele o nome do arquivo e uma mensagem para compilar o arquivo.

Se você iniciar este programa apenas da área de trabalho ou transferência-lo de outro aplicativo, ele solicitará o nome do arquivo para compilar.

Você precisará ter carregado o arquivo QuickBasic uma vez antes, definir as opções de compilador desejado. Se você nunca tiver definido as opções, QuickBasic usará os padrões.
'----------------------------------------------------------------
'    Quick Compile
'    Copyright 1988 Microsoft Corp.
'    Written in Microsoft QuickBasic 1.0 for Apple Macintosh
'
'    Microsoft does not make any warranty or claims for the
'    performance of this program.
'
'----------------------------------------------------------------
'
'    Quick Compile is a utility for Macintosh QuickBasic. It enables
'    you to compile a file directly from the desktop (or another
'    application), bypassing QuickBasic's loading step. The source
'    file must be saved as TEXT.
'
'    Some text-editing applications are able to transfer to another
'    program, telling it to open a file. If you transfer to QuickBasic
'    this way, then QuickBasic will RUN the program, not compile it.
'    You can transfer to Quick Compile instead, and it will take care
'    of telling QuickBasic to compile the file.
'
'    When started from the desktop, Quick Compile asks for the file
'    name, then launches QuickBasic to compile the file.
'
'    When you shift-click to select a file and Quick Compile, then
'    select Open from the Finder's File menu, Quick Compile will
'    compile that file.
'
'    After compiling Quick Compile, you should run it once to
'    initialize it's resources.
'
'    You should compile with Options:
'        OFF: Checking, Default Window, Runtime Events
'        ON : Static Arrays, MBLCs & MBPCs, Save Before Compile
'
'----------------------------------------------------------------

WINDOW 1,"",(0,0)-(1,1),3   'invisible window
DIM SHARED r%(3)    'scratch rectangle

'   If QuickBasic is in another folder or you've changed the name,
'   then change this assignment so you won't always have to go
'   looking for QuickBasic.
QB$ = "Microsoft QuickBasic (b)"
h& = 0
me% = SYSTEM(7)

GetRes me%,"QBLI",0,h&
IF h& = 0 THEN    'missing QB Launch Info
    NewHandle 2, h&    'allocate a 2-byte handle
    returning% = -1
    POKEW PEEKL(h&),returning%
    AddRes me%,h&,"QBLI",0,"QB Launch Info"
ELSE
    returning% = PEEKW(PEEKL(h&))
END IF

IF returning% THEN
    POKEW PEEKL(h&),0   'FALSE -> returning flag
    SetResAtt h&,2    'set dirty flag on resource
    UpdateResFile me%
    END
END IF

type$ = "" : f$ = "" : m% = -1
'   look for message to Open file
IF PEEKW(PEEKL(PEEKL(&HAEC))+2 ) > 0 THEN
    '    get finder message: 0 = Open, 1 = Print
    m% = PEEKW(PEEKL(PEEKL(&HAEC)))
    '    get file name
    l& = PEEK(PEEKL(PEEKL(&HAEC))+12 )
    f$ = STRING$(l&," ")
    BlockMove PEEKL(PEEKL(&HAEC))+13,SADD(f$),l&
    '    get file type
    type$ = MKL$(PEEKL(PEEKL(PEEKL(&HAEC))+6))
    '    get full path name of file
    Folder$ = ""
    VolRefNum% = PEEKW( PEEKL(PEEKL(&HAEC))+4)
    GetDirName VolRefNum%, Folder$
    f$ = Folder$ + ":" + f$
END IF

'    second chance for bad or no arguments
IF type$ <> "TEXT" OR m% <> 0 THEN
    GetFile f$,"TEXT","What source file to compile?"
END IF

IF f$ = "" THEN END 'no file to compile so quit

e% = 0
Exists QB$,e%   'can we find QB?
IF e%= 0 THEN
    GetFile QB$,"APPL","Please find "+QB$+" for me"
    IF QB$ = "" THEN END    'quit if no QB
END IF

'    remember that we're returning from a
'    sublaunch the next time we start
GetRes me%,"QBLI",0,h&
POKEW(PEEKL(h&)),-1    'TRUE -> returning flag
SetResAtt h&,2    'set dirty flag
UpdateResFile me%

'    make sure there's a valid application name resource
CheckAplName f$, f$+" apl"

'    compile the file
SubLaunch QB$, f$, 256, "TEXT"

END    'here if SubLaunch failed


'----------------------------------------------------------------
'   CheckAplName
'   Make sure there is a valid MBAN resource in the source file.
'
'   If there is not a valid MBAN resource in the source file, then
'   bad things will happen when QuickBasic tries to compile.
'
'   If there is just 1 MBAN, then we're ok
'   If there is more than 1 MBAN, something is wrong with the file,
'   so delete them all and use the default.
'   If there are no MBANs then use the default name.
'
'   n$  = source file
'   cn$ = default file name
'
SUB CheckAplName( n$, cn$ ) STATIC
    c% = 0 : x% = 0 : fr% = 0 : h& = 0
    CountRes "MBAN",c%
    OpenResFile n$, fr% : UpdateResFile fr%
    CountRes "MBAN",x%
    x% = x% - c%
    IF x% <> 1 THEN
        IF x% >1 THEN    'bad file: extra MBANs
            FOR k% = 1 TO x%    'delete all
                GetIndRes "MBAN",k%,h&
                RemoveRes fr%,h&
                ReleaseRes h&
            NEXT
            UpdateResFile fr%
        END IF
        '    use default MBAN
        StringToHandle cn$,h&
        AddRes fr%, h&, "MBAN", 0
        CloseResFile fr%
        ReleaseRes h&
    END IF
END SUB

'----------------------------------------------------------------
'   StringToHandle
'   Create a Pascal string in a handle from a Basic string
'
SUB StringToHandle(a$,h&) STATIC
        x$ = ""
        ReleaseRes h& : h& = 0    'make sure handle is empty
        B2PStr a$,x$
        size& = ASC(x$) + 1    'string length + length byte
        NewHandle size&, h&
        BlockMove SADD(x$),PEEKL(h&),size&
        x$ = ""
END SUB

'----------------------------------------------------------------
'   GetFile
'   Prompt for a specific file to open
'
SUB GetFile(f$,t$,m$) STATIC
    WINDOW 10,"",(-20001,-20001)-(-20000,-20000),3
    TEXTFONT 0
    '    window width is w% or m$ width +10, whichever is larger
    w%=300 : x% = WIDTH(m$)
    IF x% > w%-10 THEN w% = x% + 10
    mBar%=PEEKW(&HBAA)
    l%=(SYSTEM(5)-w%)\2
    WINDOW 10,"",(l%,mBar%+11)-(l%+w%,mBar%+30),2
    SetRect r%(0),2,2,CINT(WINDOW(2)-2),CINT(WINDOW(3)-2)
    TEXTFONT 0 :TEXTSIZE 12
    textbox m$,r%(0),1
    f$=FILES$(1,t$)
    WINDOW CLOSE 10
END SUB
				

Propriedades

ID do artigo: 36644 - Última revisão: sexta-feira, 23 de agosto de 2013 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft QuickBasic Compiler para Macintosh 1.0
  • Microsoft QuickBasic Compiler para Macintosh 1.0
  • Microsoft QuickBasic Compiler para Macintosh 1.0
Palavras-chave: 
kbnosurvey kbarchive kbmt KB36644 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 36644

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com