home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Exec 3 / CD_Magazyn_EXEC_nr_3.iso / Recent / biz / swood / FW_AllInOne.lha / Makros / MEinfügen < prev    next >
Text File  |  1998-01-18  |  8KB  |  349 lines

  1. /* Optimized with RexxOpt 1.7 */
  2.  
  3. Parse ARG FW
  4. if ~show('L',"rexxreqtools.library") then
  5. if ~addlib('rexxreqtools.library',0,-30,0) then;do
  6. 'ShowMessage 1 1 "Fehler...." "Benötige Libs:rexxreqtools.library" " A B B R U C H ! !" "Okay" "" ""'
  7. exit
  8. end
  9. IF ~show('L','tritonrexx.library') then
  10. IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN;DO
  11. 'ShowMessage 2 1 "Fehler...." "Benötige Libs:tritonrexx.library" "" "Abbruch" "" ""'
  12. exit
  13. END
  14. R='0A'X
  15. SIGNAL ON SYNTAX
  16. If open('Hilfe',"S:FW_Paket.prefs","R") then;do
  17. HilfeVerz=readln('Hilfe')
  18. Call Close('Hilfe')
  19. End
  20. else HilfeVerz=''
  21. If FW='' then;do
  22. Address='FinalW'
  23. Options results
  24. STATUS PORTNAME
  25. FW=result
  26. End
  27. address(FW)
  28. mxlist.0=2
  29. mxlist.1='normal'
  30. mxlist.2='schnell'
  31. Undo.0=0
  32. apptags='TRCA_Name     MEinfügen',
  33. 'TRCA_LongName "Mehrfach Einfügen"',
  34. 'TRCA_Info     "Makro für Finalwriter"',
  35. 'TRCA_Version  "3.1 registered"',
  36. 'TRCA_Release  "3"',
  37. 'TRCA_Date     "09.01.98"',
  38. 'TAG_END'
  39. windowtags=WindowID(1),
  40. WindowPosition('TRWP_CENTERDISPLAY'),
  41. WindowFlags('TRWF_NOSIZEGADGET|TRWF_NOMINTEXTWIDTH|TRWF_ACTIVATESTRGAD'),
  42. PubScreenName('FinalWriterPubScreen'),
  43. WindowTitle('Mehrfach Einfügen'),
  44. BeginMenu('Projekt'),
  45. MenuItem('Q_Verlassen...',104),
  46. BeginMenu('?'),
  47. MenuItem('?_Info',101),
  48. MenuItem('H_Hilfe',103),
  49. 'HorizGroupAC',
  50. 'SpaceS',
  51. 'VertGroupAC',
  52. 'SpaceS',
  53. 'HorizGroupEC SpaceS',
  54. TextID('_Geschwindigkeit: ',1),
  55. 'SpaceS',
  56. MXGadget('mxlist',0,1) 'TRAT_Flags TRCY_RIGHTLABELS',
  57. 'SpaceS EndGroup',
  58. 'SpaceS',
  59. 'HorizSeparator',
  60. 'SpaceS',
  61. 'HorizGroupEC SpaceS',
  62. 'LineArray',
  63. 'BeginLine',
  64. StringGadget('',20),
  65. 'SpaceS',
  66. TextID('_Kopien ',20),
  67. TextID('auf _Seite',60),
  68. 'SpaceS',
  69. StringGadget('',60),
  70. 'EndLine',
  71. 'EndArray',
  72. 'SpaceS EndGroup',
  73. 'SpaceS',
  74. TextH('Verschiebung'),
  75. 'SpaceS',
  76. 'HorizGroupEC SpaceS',
  77. 'LineArray',
  78. 'BeginLine',
  79. TextID('_horizontal',30),
  80. 'SpaceS',
  81. StringGadget('',30),
  82. TextN(' cm'),
  83. 'EndLine',
  84. 'BeginLine',
  85. TextID('_vertikal',40),
  86. 'SpaceS',
  87. StringGadget('',40),
  88. TextN(' cm'),
  89. 'EndLine',
  90. 'BeginLine',
  91. TextID('_Drehung',50),
  92. 'SpaceS',
  93. StringGadget('',50),
  94. TextN('  °'),
  95. 'EndLine',
  96. 'EndArray',
  97. 'SpaceS EndGroup',
  98. 'SpaceS',
  99. 'HorizSeparator',
  100. 'SpaceS',
  101. Progress(100,0,7),
  102. 'SpaceS',
  103. 'HorizGroupSA',
  104. TextN("0"),
  105. 'SpaceB',
  106. TextN("25"),
  107. 'SpaceB',
  108. TextN("50"),
  109. 'SpaceB',
  110. TextN("75"),
  111. 'SpaceB',
  112. TextN("100"),
  113. 'EndGroup',
  114. 'SpaceS',
  115. 'HorizgroupEC',
  116. Button('_Anwenden',7),
  117. 'SpaceS',
  118. Button('_Undo',9) 'TRAT_DISABLED 1',
  119. 'SpaceS',
  120. Button('Ab_bruch',8),
  121. 'EndGroup',
  122. 'SpaceS',
  123. 'EndGroup',
  124. 'SpaceS',
  125. 'EndGroup',
  126. 'EndProject'
  127. app=TR_CREATEAPP('TRCA_Name MEinfügen')
  128. ba=1
  129. IF app ~='00000000'x THEN;DO
  130. window1=TR_OPENPROJECT(app,windowtags)
  131. IF window1 ~='00000000'x THEN;DO
  132. ende=0
  133. DO WHILE ende ~=1
  134. CALL TR_WAIT(app,'')
  135. DO WHILE TR_HANDLEMSG(app,'event')
  136. IF event.trm_class='TRMS_NEWVALUE' THEN;DO
  137. SELECT
  138. WHEN event.trm_id=1 THEN ba=event.trm_data+1
  139. OTHERWISE NOP
  140. END
  141. END
  142. IF event.trm_class='TRMS_ACTION' THEN;DO
  143. SELECT
  144. WHEN event.trm_id=7 THEN;Do
  145. Call program
  146. Call TR_SETATTRIBUTE(window1,9,'TRAT_DISABLED',0)
  147. END
  148. WHEN event.trm_id=9 THEN;Do
  149. Call programUndo
  150. Call TR_SETATTRIBUTE(window1,9,'TRAT_DISABLED',1)
  151. END
  152. WHEN event.trm_id=101 THEN Call rtezrequest("Aus dem Makro-Paket:"||R||R||"Mehrfach Einfügen V3.1 für FW"||R||"© 1998 Heiko Schröder","Danke für Ihre Registrierung.","Info","rt_pubscrname=FinalWriterPubScreen")
  153. WHEN event.trm_id=103 THEN address command "run Multiview PUBSCREEN=FinalWriterPubScreen "||d2c(34)||HilfeVerz||"MEinfügen.guide"||d2c(34)
  154. WHEN event.trm_id=104 THEN ende=1
  155. WHEN event.trm_id=8 THEN;Do
  156. ende=1
  157. no=1
  158. END
  159. OTHERWISE NOP
  160. END
  161. END
  162. IF event.trm_class='TRMS_CLOSEWINDOW' THEN;DO
  163. ende=1
  164. no=1
  165. END
  166. END
  167. END
  168. CALL TR_CLOSEPROJECT(window1)
  169. END
  170. CALL TR_DELETEAPP(app)
  171. END
  172. ELSE
  173. CALL quit('Kann das Fenster nicht öffnen',10)
  174. Exit
  175. program:
  176. Call time('R')
  177. Fertig=0
  178. Anzahl=TR_GETATTRIBUTE(window1,20,'TROB_String')
  179. If Datatype(Anzahl,'W')=0 then;do
  180. x=rtezrequest("Bei KOPIEN bitte ganzzahligen Wert","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
  181. Call TR_SendMessage(window1,20,'TROM_ACTIVATE',0)
  182. return
  183. end
  184. Hor=TR_GETATTRIBUTE(window1,30,'TROB_String')
  185. If Hor="" then Hor=0
  186. If Datatype(Hor,'N')=0 then;do
  187. x=rtezrequest("Bei HORIZONTAL bitte  numerische Angabe mit (.)","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
  188. Call TR_SendMessage(window1,30,'TROM_ACTIVATE',0)
  189. return
  190. end
  191. Ver=TR_GETATTRIBUTE(window1,40,'TROB_String')
  192. If Ver="" then Ver=0
  193. If Datatype(Ver,'N')=0 then;do
  194. x=rtezrequest("Bei VERTIKAL bitte  numerische Angabe mit (.)","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
  195. Call TR_SendMessage(window1,40,'TROM_ACTIVATE',0)
  196. return
  197. end
  198. Dre=TR_GETATTRIBUTE(window1,50,'TROB_String')
  199. If Dre="" then Dre=0
  200. If Datatype(Dre,'W')=0 then;do
  201. x=rtezrequest("Bei DREHUNG bitte ganzzahligen Wert","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
  202. Call TR_SendMessage(window1,50,'TROM_ACTIVATE',0)
  203. return
  204. end
  205. Seise=TR_GETATTRIBUTE(window1,60,'TROB_String')
  206. If Seise="" then Seise=0
  207. If Datatype(Seise,'W')=0 then;do
  208. x=rtezrequest("Bei SEITE bitte ganzzahligen Wert","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
  209. Call TR_SendMessage(window1,60,'TROM_ACTIVATE',0)
  210. return
  211. end
  212. CALL TR_SETATTRIBUTE(window1,7,'TRAT_Value',0)
  213. address=FW
  214. nr=1
  215. CurrentObject
  216. ObjectId=Result
  217. IF ObjectId=0 THEN;do
  218. ret=rtezrequest("Kein Grafikobjekt ausgewählt...",,"Mehrfach Einfügen - Fehler...","rt_pubscrname=FinalWriterPubScreen")
  219. return
  220. End
  221. Objekt.0=nr;Objekt.nr=ObjectID
  222. If Anzahl=""|Anzahl=0 then;do
  223. ret=rtezrequest("Falsche Anzahl an Kopien!",,"Mehrfach Einfügen - Fehler...","rt_pubscrname=FinalWriterPubScreen")
  224. return
  225. End
  226. FirstObject Selected
  227. ID=result
  228. Call Zaehlen
  229. Do While 1
  230. NextObject ID Selected
  231. ID=result
  232. If ID=0 then Leave
  233. Call Zaehlen
  234. End
  235. If Objekt.0=1 then;do
  236. gruppe=false
  237. end
  238. else gruppe=true
  239. Do a=2 to Objekt.0
  240. SelectObject Objekt.a MULTIPLE
  241. End
  242. SelectObject Objekt.1 MULTIPLE
  243. address=FW
  244. GetDocItemPrefs Decimal
  245. Punkt=Result
  246. If Punkt="Comma" then DocItemPrefs Decimal Period
  247. STATUS View
  248. Zoom=result
  249. STATUS Pages
  250. Seiten=result
  251. STATUS Page
  252. Seide=result
  253. GraphicTool
  254. If Gruppe=true then Group
  255. CurrentObject
  256. ObjectId=Result
  257. GetObjectCoords
  258. Parse var result Seite x y w h
  259. Copy
  260. IF RC=0 THEN;do
  261. If Seise=0 then Seise=Seite
  262. Sei=Seise
  263. wl=w
  264. hl=h
  265. GetObjectRotation
  266. Dreh=result
  267. GetObjectType
  268. Typ=result
  269. If Gruppe=true then Ungroup
  270. s=Sei-Seiten
  271. Do a=1 to s
  272. InsertPageBreak
  273. End
  274. If ba=2 then View 400
  275. Do i=1 TO Anzahl
  276. Paste
  277. CurrentObject
  278. ObjectID=Result
  279. Undo.0=i
  280. Undo.i=ObjectID
  281. a=x+(Hor*i)
  282. b=y+(Ver*i)
  283. Winkel=Dreh+Dre*i
  284. If Typ=2|Typ=3 then;do
  285. GetPageSetup HEIGHT
  286. PageHoehe=result
  287. w=wl+(Hor*i)
  288. h=hl+(Ver*i)
  289. If Sei~=1 then h=h+(sei-1)*Pagehoehe
  290. End
  291. SetObjectCoords 0 Sei a b w h
  292. SetObjectRotation 0 Winkel
  293. If Gruppe=true then Ungroup
  294. Fertig=Fertig+1
  295. prozent=Trunc(Fertig/Anzahl*100)
  296. CALL TR_SETATTRIBUTE(window1,7,'TRAT_Value',prozent)
  297. END
  298. End
  299. If Seise~=Seite then GotoPage Seise
  300. Call WH
  301. Redraw
  302. say time('E')
  303. Return
  304. programUndo:
  305. TextTool
  306. GraphicTool
  307. Do i=1 to Undo.0
  308. SelectObject Undo.i MULTIPLE
  309. end
  310. DeleteObject
  311. Undo.0=0
  312. Return
  313. WH:
  314. If ba=2 then;do
  315. View Zoom
  316. If Seise~=Seite then;do
  317. GotoPage Seise
  318. End
  319. Else;do
  320. GoToPage Seite
  321. End
  322. End
  323. If Punkt="Comma" then DocItemPrefs DECIMAL Comma
  324. Return
  325. Zaehlen:
  326. If ID~=Objekt.1 then;do
  327. nr=nr+1
  328. Objekt.0=nr;Objekt.nr=ID
  329. End
  330. Return
  331. SYNTAX:
  332. CALL quit('Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)||R||SOURCELINE(sigl)||R||'Bitte informieren Sie den Autor...',20)
  333. quit:
  334. PARSE ARG message,rcode
  335. IF app ~='00000000'x THEN;DO
  336. IF message ~='' THEN
  337. ret=rtezrequest(message,"_Okay","ACHTUNG!","rt_pubscrname=FinalWriterPubScreen")
  338. CALL TR_DELETEAPP(app)
  339. END
  340. ELSE;DO
  341. IF message ~='' THEN;DO
  342. SAY message
  343. SAY
  344. OPTIONS PROMPT 'Bitte <RETURN> drücken'
  345. PULL taste
  346. END
  347. END
  348. address command "flushtrx all"
  349. EXIT(rcode)