Path: utzoo!attcan!uunet!lll-winken!lll-tis!ames!mailrus!tut.cis.ohio-state.edu!rutgers!rochester!pt.cs.cmu.edu!zog.cs.cmu.edu!tgl
From: tgl@zog.cs.cmu.edu (Tom Lane)
Newsgroups: comp.sys.mac.hypercard
Subject: Fast way to create a button?
Message-ID: <3060@pt.cs.cmu.edu>
Date: 20 Sep 88 23:43:10 GMT
Sender: netnews@pt.cs.cmu.edu
Distribution: na
Organization: Carnegie-Mellon University, CS/RI
Lines: 35

I have a stack in which I would like to automatically create a card button
on each new card (and no, a background button is not a better solution;
details on request).  The best way I've found to do this is to include a
doMenu "New Button" in my newCard handler, thus:

on newCard
  lock screen
  doMenu "New Button"
  choose browse tool      -- deselect the button tool
  set the style of card button 1 to radioButton
  -- etc for about four other properties
  unlock screen
end newCard

Unfortunately, this is ridiculously slow.  While a vanilla "new card"
operation takes about 0.6 second on my Mac Plus, with this handler
installed it takes about 2.85 seconds to make a new card.  Setting the
button properties doesn't take much time; it's almost all going into the
"New Button" operation.  (although "choose browse tool" seems to take a
rather long time for an operation that doesn't really do anything...)

An only slightly less annoying aspect is that the cursor flickers
during this handler, even though the screen is locked.  (It doesn't
seem to change shape, but it does flicker.)  This could be a bug in
HyperCard -- I'm using version 1.2.

Anybody know a faster way to create a button?

Extra credit question: Why does creating a button take twice as long as
creating a card?

-- 
				tom lane
Internet: tgl@zog.cs.cmu.edu
UUCP: !zog.cs.cmu.edu!tgl
BITNET: tgl%zog.cs.cmu.edu@cmuccvma