home *** CD-ROM | disk | FTP | other *** search
/ Programming Tool Box / SIMS_2.iso / bp_6_93 / vbdos / formdes / fdmod.bas < prev   
BASIC Source File  |  1993-01-05  |  2KB  |  71 lines

  1. DECLARE FUNCTION NoTab (Text AS STRING) AS STRING
  2. OPTION EXPLICIT
  3. CONST False = 0, True = NOT False, TempFile = "FDMOD.TMP"
  4.  
  5. DIM Zeile AS STRING, Text AS STRING, Indent AS STRING
  6. DIM Einheitsfarbe AS STRING, Level AS INTEGER
  7.  
  8. ON ERROR RESUME NEXT: KILL TempFile: ON ERROR GOTO 0
  9.  
  10. NAME COMMAND$ AS TempFile: OPEN TempFile FOR INPUT AS #1
  11. OPEN COMMAND$ FOR OUTPUT AS #2
  12. LINE INPUT #1, Zeile: PRINT #2, Zeile
  13. IF Zeile <> "Version 1.00" THEN
  14.    PRINT "Form "; COMMAND$; " wurde binär gespeichert!"
  15.    PRINT "Drücken sie eine Taste zum Fortfahren."; INPUT$(1)
  16.    CLOSE : KILL COMMAND$: NAME TempFile AS COMMAND$
  17.    SYSTEM
  18. END IF
  19.  
  20. DO UNTIL EOF(1)
  21.    LINE INPUT #1, Zeile
  22.    Text = LTRIM$(NoTab$(Zeile))
  23.    Indent = LEFT$(Zeile, LEN(Zeile) - LEN(Text))
  24.    IF LEFT$(Text, 6) = "BEGIN " THEN
  25.       Level = Level + 1
  26.    ELSEIF LEFT$(Text, 4) = "END " THEN
  27.       Level = Level - 1
  28.       IF Level = 0 THEN PRINT #2, Indent; Text: EXIT DO
  29.    ELSE
  30.       ' *** hier Modifikationen für Code programmieren ***
  31.       ' Beispiel: einheitliche Hintergrundfarbe für alle Elemente
  32.  
  33.       IF INSTR(Text, "BackColor") THEN
  34.          IF Level = 1 THEN ' wir sind auf Form-Ebene
  35.             ' Gesamte Zeile wird einfach zwischengespeichert
  36.             ' (Ästheten können auch mühsam den Teil hinter dem
  37.             ' = abspalten...)
  38.             Einheitsfarbe = Text
  39.          ELSE
  40.             ' Gespeicherte Einheitsfarbe wird dem Steuerelement
  41.             ' zugewiesen:
  42.             Text = Einheitsfarbe
  43.          END IF
  44.       END IF
  45.                             
  46.    END IF
  47.    PRINT #2, Indent; Text
  48. LOOP
  49.  
  50. IF NOT EOF(1) THEN
  51.    ' Hierhin wird verzweigt, wenn nach dem Form-Bereich
  52.    ' in der FRM-Datei noch Programmcode folgt. Dieser wird
  53.    ' einfach kopiert:
  54.    DO UNTIL EOF(1)
  55.       LINE INPUT #1, Zeile: PRINT #2, Zeile
  56.    LOOP
  57. END IF
  58.  
  59. CLOSE: KILL TempFile
  60. FUNCTION NoTab (Text AS STRING) AS STRING
  61.  
  62.    DIM Result AS STRING, TabPos AS INTEGER
  63.    Result = Text
  64.    DO
  65.       TabPos = INSTR(Result, CHR$(9)): IF TabPos = 0 THEN EXIT DO
  66.       MID$(Result, TabPos, 1) = " "
  67.    LOOP
  68.    NoTab = Result
  69.  
  70. END FUNCTION
  71.