fb:porticula NoPaste
objekte.bi
Uploader: | Braesident |
Datum/Zeit: | 07.04.2013 00:26:34 |
' Funktion zur Objektverwaltung
' (anzeigen und zb Mausverhalten auf diese)
'
' BMPs - Buttons - Textfelder
' CreOb (,,,,,,,,,,)
' CreOb (ObjName(0/1/>999), pos_W, pos_H, groesse_W, groesse_H, BG_farbe,
' BG_Grafik_bmp(mussgleiche groesse wie Txtfeld), Text, Textfarbe,
' Textart(0/1), Serie(1-10), Move(0/1))
'
' ObjName ist ehr eine Nummer
' ObjName = 0 - Nummer wird beibehalten und mit selben verknuepft wobei SERIE
' die Reihenfolge festlegt
' ObjName = 1 - Nummer wird neu erstellt - MUSS gewaehlt werden werden das erste mal
' ein Objekt angelegt wird (mit automatischer
' Nummerrierung)
' ObjName > 999 selbstfesgelegter Name
'
' Serie 1-10 ist nur bei selbst festgelegtem ObjNamen anzugeben, sonst 0 angeben
'
' Pos.. = 0 so wird diese per RANDOMIZE TIMER festgelegt
'
' BG_farbe > 0 dann wird Grafik ignoriert
'
' wird ein BG oder eine Graphik angegeben UND auch TEXT so wird dieser mittig
' des BGs angezeigt
'
' Textart = 0 - normaler FB String
' Textart = 1 - kleiner String per autowrite
'
' Move = 1 - Objekt ist mit Maus verschiebbar
'
' weitere Idee:
'
' Aufruf zum loeschen des Objektes
' Rückgabefunktionen zB der Pos zum neu setzen der Pos durch verschieben mit
' der Maus
' ##############################################################################
#Include Once "autowrite.bi"
#Include Once "openBildPSET.bi"
TYPE Objektblock
Nummer AS Integer
pwide AS INTEGER
phigh AS INTEGER
owide AS INTEGER
ohigh AS INTEGER
farbe AS Double
Grafik AS String
Text AS String
TextF AS Double
Textart AS Integer
Serie AS Integer
Move AS Integer
visibility AS String
END TYPE
DIM SHARED Objekt() AS Objektblock
TYPE Objektblock2
Nummer AS Integer
pwide AS INTEGER
phigh AS INTEGER
owide AS INTEGER
ohigh AS INTEGER
farbe AS Double
Grafik AS String
Text AS String
TextF AS Double
Textart AS Integer
Serie AS Integer
Move AS Integer
visibility AS String
END TYPE
DIM SHARED Ob_tmp(10) AS Objektblock2
TYPE Objektblock3
pw_a AS INTEGER
ph_a AS INTEGER
END TYPE
DIM SHARED Ob_koor(2 TO 10) AS Objektblock3
DIM SHARED AS Integer TALAS1 ' (This Arraynumber is the Last Arraynumber with Seriesnumber 1)
DIM SHARED AS Integer i_array, i_counter, i_objekt, info_W, info_H, text_spalte, text_zeile, _
Obj_maus_W, Obj_maus_H, Obj_maus_B, Obj_in_Move, Obj_TO_Move, markiert, _
Obj_maus_Wa, Obj_maus_Ha, Obj_wide_a, Obj_high_a, New_Dim, Kill_num, _
focus_number, Obj_maus_Wext, Obj_maus_Hext
DIM SHARED AS Integer i_serie = 1
DIM Shared AS Integer ObjektName = 0
Randomize Timer
DIM SHARED AS Integer i_test ' fuer testzwecke
' ################################## DECLAREs ##################################
Declare SUB CreOb(Obj_Name AS Integer, Obj_pos_W AS Integer, Obj_pos_H AS Integer, _
Obj_gr_W AS Integer, Obj_gr_H AS Integer, Obj_BG_farbe AS Double, Obj_Grafik AS String, _
Obj_Text AS String, Obj_Textfarbe AS Double, Obj_Textart AS Integer, Obj_Serie AS Integer, Obj_Move AS Integer)
Declare SUB ShowOb(von_num AS Integer, bis_num AS Integer)
Declare SUB ObjMove
Declare SUB Kill_Obj(Obj_num AS Integer)
Declare SUB SetPos(Obj_num AS Integer, new_W AS Integer, new_H AS Integer)
Declare SUB SetText(Obj_num AS Integer, Obj_Serie AS Integer, new_T AS String)
Declare SUB SetMouseFrame(Obj_S AS Integer, framecolor AS Double)
Declare SUB Hide_Obj(Obj_num AS Integer)
Declare SUB Unhide_Obj(Obj_num AS Integer)
Declare SUB testi
Declare Function in_Focus AS Integer
Declare Function click_on_series(obj_num AS Integer, Obj_S AS Integer) AS Integer
Declare Function Objekt_APP AS Integer
Declare Function GetText(obj_num AS Integer, obj_Serie AS Integer) AS String
' Declare Function click_on(Obj_number AS Integer) AS Integer
' ##################################### SUBs ###################################
SUB CreOb(Obj_Name AS Integer, Obj_pos_W AS Integer, Obj_pos_H AS Integer, _
Obj_gr_W AS Integer, Obj_gr_H AS Integer, Obj_BG_farbe AS Double, Obj_Grafik AS String, _
Obj_Text AS String, Obj_Textfarbe AS Double, Obj_Textart AS Integer, Obj_Serie AS Integer, Obj_Move AS Integer)
REDIM PRESERVE Objekt(UBound(Objekt) + 1)
ScreenInfo info_W, info_H
IF Obj_Name = 0 THEN ' Erkennungsnummer beibehalten
Objekt(UBound(objekt)).Nummer = ObjektName
i_serie += 1 ' -hierbei wird Serie autom. erhoeht
Objekt(UBound(objekt)).Serie = i_serie
ELSEIF Obj_Name = 1 THEN ' NEUE Erkennungsnumer
FOR i_objekt = 1 TO 99
ObjektName = i_objekt
FOR i_array = 1 TO UBound(objekt)
IF objekt(i_array).Nummer = i_objekt THEN ObjektName = 0
NEXT i_array
IF ObjektName > 0 THEN EXIT FOR
NEXT i_objekt
Objekt(UBound(objekt)).Nummer = ObjektName
i_serie = 1 ' -Serie ist hierbei 1
Objekt(UBound(objekt)).Serie = i_serie
TALAS1 = UBound(objekt)
ELSEIF Obj_Name > 99 THEN ' Erkennungsnummer wurde selbst definiert
Objekt(UBound(objekt)).Nummer = Obj_Name
Objekt(UBound(objekt)).Serie = Obj_Serie ' -hier wird selbstdefinierte Seriennummer gebraucht
IF Obj_Serie = 1 THEN TALAS1 = UBound(objekt)
ELSE
EXIT SUB
END IF
IF objekt(UBound(objekt)).Serie > 1 THEN
FOR i_array = 1 TO UBound(objekt)
IF objekt(i_array).Nummer = Objekt(UBound(objekt)).Nummer AND objekt(i_array).Serie = 1 THEN
objekt(UBound(objekt)).pwide = objekt(i_array).pwide + Obj_pos_W
objekt(UBound(objekt)).phigh = objekt(i_array).phigh + Obj_pos_H
EXIT FOR
END IF
NEXT i_array
ELSE
IF Obj_pos_W = 0 THEN
objekt(UBound(objekt)).pwide = int(rnd * (info_W - Obj_gr_W)) + 1
ELSE
objekt(UBound(objekt)).pwide = Obj_pos_W
END IF
IF Obj_pos_H = 0 THEN
objekt(UBound(objekt)).phigh = int(rnd * (info_H - Obj_gr_H)) + 1
ELSE
objekt(UBound(objekt)).phigh = Obj_pos_H
END IF
END IF
Objekt(UBound(objekt)).owide = Obj_gr_W
Objekt(UBound(objekt)).ohigh = Obj_gr_H
Objekt(UBound(objekt)).farbe = Obj_BG_farbe
Objekt(UBound(objekt)).Grafik = Obj_Grafik
Objekt(UBound(objekt)).Text = Obj_Text
Objekt(UBound(objekt)).TextF = Obj_Textfarbe
Objekt(UBound(objekt)).Textart = Obj_Textart
Objekt(UBound(objekt)).Move = Obj_Move
Objekt(UBound(objekt)).visibility = "unhide"
End Sub
SUB ShowOb(von_num AS Integer, bis_num AS Integer)
IF von_num < 1 THEN EXIT SUB
IF bis_num < 1 THEN bis_num = von_num
FOR i_array = 1 TO UBound(objekt)
FOR i_objekt = von_num TO bis_num
IF i_objekt = objekt(i_array).Nummer AND Objekt(i_array).visibility = "unhide" THEN
IF objekt(i_array).farbe <> 0 THEN
Line(objekt(i_array).pwide, objekt(i_array).phigh) - _
STEP(objekt(i_array).owide, objekt(i_array).ohigh), objekt(i_array).farbe, BF
ELSEIF objekt(i_array).farbe = 0 AND objekt(i_array).Grafik <> "" THEN
openbildPSET(objekt(i_array).Grafik, objekt(i_array).owide, objekt(i_array).ohigh, objekt(i_array).pwide, objekt(i_array).phigh)
END IF
IF (objekt(i_array).farbe <> 0 OR objekt(i_array).Grafik <> "") AND _
objekt(i_array).Text <> "" AND objekt(i_array).Textart = 0 THEN
Color objekt(i_array).TextF
Draw String ((objekt(i_array).pwide + (objekt(i_array).owide / 2)) - (LEN(objekt(i_array).Text) * 4), _
(objekt(i_array).phigh + (objekt(i_array).ohigh / 2)) - 4), objekt(i_array).Text
ELSEIF (objekt(i_array).farbe <> 0 OR objekt(i_array).Grafik <> "") AND _
objekt(i_array).Text <> "" AND objekt(i_array).Textart = 1 THEN
autowrite(objekt(i_array).TextF, (objekt(i_array).pwide + (objekt(i_array).owide / 2)) - (LEN(objekt(i_array).Text) * 3) + 1, _
(objekt(i_array).phigh + (objekt(i_array).ohigh / 2)) - 3, objekt(i_array).Text, 0)
ELSEIF objekt(i_array).farbe = 0 AND objekt(i_array).Grafik = "" AND _
objekt(i_array).Text <> "" AND objekt(i_array).Textart = 0 THEN
text_spalte = 0: text_zeile = 0: Color objekt(i_array).TextF
FOR i_counter = 1 TO LEN(objekt(i_array).Text)
Draw String (objekt(i_array).pwide + text_spalte, objekt(i_array).phigh + text_zeile), _
MID(objekt(i_array).Text, i_counter, 1)
text_spalte += 8
IF text_spalte + 8 > objekt(i_array).owide THEN text_spalte = 0: text_zeile += 11
IF text_zeile + 11 > objekt(i_array).ohigh THEN EXIT FOR
NEXT i_counter
ELSEIF objekt(i_array).farbe = 0 AND objekt(i_array).Grafik = "" AND _
objekt(i_array).Text <> "" AND objekt(i_array).Textart = 1 THEN
text_spalte = 0: text_zeile = 0
FOR i_counter = 1 TO LEN(objekt(i_array).Text)
autowrite(objekt(i_array).TextF, objekt(i_array).pwide + text_spalte, objekt(i_array).phigh + text_zeile, _
MID(objekt(i_array).Text, i_counter, 1), 0)
text_spalte += 6
IF text_spalte + 6 > objekt(i_array).owide THEN text_spalte = 0: text_zeile += 9
IF text_zeile + 9 > objekt(i_array).ohigh THEN EXIT FOR
NEXT i_counter
END IF
END IF
NEXT i_objekt
NEXT i_array
END SUB
SUB ObjMove
DIM AS Integer dif_W, dif_H
GetMouse (Obj_maus_W, Obj_maus_H, , Obj_maus_B)
IF Obj_maus_B = 0 THEN
Obj_in_Move = 0: EXIT SUB
ELSEIF (Obj_maus_B = 1) AND (objekt(TALAS1).Move) AND (Objekt(TALAS1).visibility = "unhide") THEN
IF Obj_in_Move = 0 THEN
IF in_Focus = 0 THEN EXIT SUB
Obj_maus_Wa = Obj_maus_Wext
Obj_maus_Ha = Obj_maus_Hext
Obj_wide_a = objekt(TALAS1).pwide
Obj_high_a = objekt(TALAS1).phigh
IF TALAS1 < UBound(objekt) THEN
FOR i_objekt = (TALAS1 + 1) TO UBound(objekt)
ob_koor(objekt(i_objekt).Serie).pw_a = objekt(i_objekt).pwide - objekt(TALAS1).pwide
ob_koor(objekt(i_objekt).Serie).ph_a = objekt(i_objekt).phigh - objekt(TALAS1).phigh
NEXT i_objekt
END IF
Obj_in_Move = 1
END IF
dif_W = Obj_maus_W - Obj_maus_Wa
dif_H = Obj_maus_H - Obj_maus_Ha
IF Obj_wide_a + dif_W < 1 THEN
objekt(TALAS1).pwide = 1
ELSEIF (Obj_wide_a + dif_W) + objekt(TALAS1).owide > info_W THEN
objekt(TALAS1).pwide = info_W - objekt(TALAS1).owide
ELSE
objekt(TALAS1).pwide = Obj_wide_a + dif_W
END IF
IF Obj_high_a + dif_H < 1 THEN
objekt(TALAS1).phigh = 1
ELSEIF (Obj_high_a + dif_H) + objekt(TALAS1).ohigh > info_H THEN
objekt(TALAS1).phigh = info_H - objekt(TALAS1).ohigh
ELSE
objekt(TALAS1).phigh = Obj_high_a + dif_H
END IF
IF TALAS1 < UBound(objekt) THEN
FOR i_objekt = (TALAS1 + 1) TO UBound(objekt)
objekt(i_objekt).pwide = objekt(TALAS1).pwide + ob_koor(objekt(i_objekt).Serie).pw_a
objekt(i_objekt).phigh = objekt(TALAS1).phigh + ob_koor(objekt(i_objekt).Serie).ph_a
NEXT i_objekt
END IF
END IF
END SUB
SUB Kill_Obj(obj_num AS Integer)
IF Obj_num < 1 THEN EXIT SUB
Obj_TO_Move = 0
FOR i_array = 1 TO UBound(objekt)
IF objekt(i_array).Nummer = Obj_num THEN
Obj_TO_Move += 1
objekt(i_array).Nummer = 0
END IF
NEXT i_array
' Lueckenaufschluss
FOR i_objekt = 1 TO Obj_TO_Move
FOR i_counter = 1 TO (UBound(objekt) - 1)
IF objekt(i_counter).Nummer = 0 THEN
objekt(i_counter).Nummer = objekt(i_counter + 1).Nummer
objekt(i_counter + 1).Nummer = 0
objekt(i_counter).pwide = objekt(i_counter + 1).pwide
objekt(i_counter).phigh = objekt(i_counter + 1).phigh
objekt(i_counter).owide = objekt(i_counter + 1).owide
objekt(i_counter).ohigh = objekt(i_counter + 1).ohigh
objekt(i_counter).farbe = objekt(i_counter + 1).farbe
objekt(i_counter).Grafik = objekt(i_counter + 1).Grafik
objekt(i_counter).Text = objekt(i_counter + 1).Text
objekt(i_counter).Textf = objekt(i_counter + 1).TextF
objekt(i_counter).Textart = objekt(i_counter + 1).Textart
objekt(i_counter).Serie = objekt(i_counter + 1).Serie
objekt(i_counter).Move = objekt(i_counter + 1).Move
Objekt(i_counter).visibility = Objekt(i_counter + 1).visibility
END IF
NEXT i_counter
NEXT i_objekt
New_Dim = UBound(objekt) - Obj_TO_Move
Redim Preserve objekt(New_Dim)
i_array = UBound(objekt)
DO
SLEEP 1
IF objekt(i_array).Serie = 1 THEN TALAS1 = i_array: EXIT DO
i_array -= 1
LOOP Until i_array < 1
END SUB
SUB SetPos(Obj_num AS Integer, new_W AS Integer, new_H AS Integer)
DIM AS Integer dif_W, dif_H
ScreenInfo info_W, info_H
FOR i_array = 1 TO UBound(objekt)
IF objekt(i_array).Nummer = obj_num THEN
IF objekt(i_array).Serie = 1 THEN
IF new_W < 1 THEN
dif_W = objekt(i_array).pwide - 1
objekt(i_array).pwide = 1
ELSEIF new_W + objekt(i_array).owide > info_W THEN
dif_W = objekt(i_array).pwide - (info_W - objekt(i_array).owide)
objekt(i_array).pwide = info_W - objekt(i_array).owide
ELSE
dif_W = objekt(i_array).pwide - new_W
objekt(i_array).pwide = new_W
END IF
IF new_H < 1 THEN
dif_H = objekt(i_array).phigh - 1
objekt(i_array).phigh = 1
ELSEIF new_H + objekt(i_array).ohigh > info_H THEN
dif_H = objekt(i_array).phigh - (info_H - objekt(i_array).ohigh)
objekt(i_array).phigh = info_H - objekt(i_array).ohigh
ELSE
dif_H = objekt(i_array).phigh - new_H
objekt(i_array).phigh = new_H
END IF
ELSE
objekt(i_array).pwide -= dif_W
objekt(i_array).phigh -= dif_H
END IF
END IF
NEXT i_array
END SUB
SUB SetText(Obj_num AS Integer, Obj_Serie AS Integer, new_T AS String)
FOR i_array = 1 TO UBound(objekt)
IF objekt(i_array).Nummer = Obj_num AND objekt(i_array).Serie = Obj_Serie THEN
objekt(i_array).Text = new_T
EXIT FOR
END IF
NEXT i_array
END SUB
SUB SetMouseFrame(Obj_S AS Integer, framecolor AS Double)
FOR i_array = 1 TO UBound(objekt)
IF (objekt(i_array).Serie = Obj_S) AND (Objekt(i_array).visibility = "unhide") AND _
(Obj_maus_W >= objekt(i_array).pwide) AND _
(Obj_maus_W <= (Objekt(i_array).pwide + objekt(i_array).owide)) AND _
(Obj_maus_H >= objekt(i_array).phigh) AND _
(Obj_maus_H <= (objekt(i_array).phigh + objekt(i_array).ohigh)) THEN
Line (Objekt(i_array).pwide, objekt(i_array).phigh) - STEP(objekt(i_array).owide, objekt(i_array).ohigh), framecolor, B
EXIT FOR
END IF
NEXT i_array
END SUB
SUB Hide_Obj(Obj_num AS Integer)
FOR i_array = 1 TO UBound(objekt)
IF Objekt(i_array).Nummer = Obj_Num THEN
Objekt(i_array).visibility = "hide"
END IF
NEXT i_array
END SUB
SUB Unhide_Obj(Obj_num AS Integer)
FOR i_array = 1 TO UBound(objekt)
IF Objekt(i_array).Nummer = Obj_Num THEN
Objekt(i_array).visibility = "unhide"
END IF
NEXT i_array
END SUB
SUB testi
Color &h00aa00
locate 1
FOR i_test = 1 TO UBound(objekt)
? "N " & objekt(i_test).Nummer & " S " & objekt(i_test).Serie
NEXT i_test
Locate 1
FOR i_test = 1 TO 10
Locate , 15: ? "N " & ob_tmp(i_test).Nummer & " S " & ob_tmp(i_test).Serie
NEXT i_test
? "TALAS1 " & TALAS1
END SUB
' ################################## FUNCTIONs #################################
Function in_Focus AS Integer
GetMouse (Obj_maus_W, Obj_maus_H, , Obj_maus_B)
IF (Objekt(TALAS1).visibility = "unhide") AND (Obj_maus_W >= objekt(TALAS1).pwide) AND _
(Obj_maus_W <= (Objekt(TALAS1).pwide + objekt(TALAS1).owide)) AND _
(Obj_maus_H >= objekt(TALAS1).phigh) AND _
(Obj_maus_H <= (objekt(TALAS1).phigh + objekt(TALAS1).ohigh)) THEN
focus_number = objekt(TALAS1).Nummer
in_Focus = 1
ELSE
in_Focus = 0
END IF
END Function
Function click_on_series(obj_num AS Integer, Obj_S AS Integer) AS Integer
FOR i_array = 1 TO UBound(objekt)
IF objekt(i_array).Nummer = obj_num AND objekt(i_array).Serie = obj_S THEN
IF (Obj_maus_W >= objekt(i_array).pwide) AND _
(Obj_maus_W <= (Objekt(i_array).pwide + objekt(i_array).owide)) AND _
(Obj_maus_H >= objekt(i_array).phigh) AND _
(Obj_maus_H <= (objekt(i_array).phigh + objekt(i_array).ohigh)) THEN
click_on_series = 1: EXIT Function
ELSE
click_on_series = 0: EXIT Function
END IF
END IF
NEXT i_array
END Function
Function Objekt_APP AS Integer
' Maus bewegt ein Objekt dann kein Klick
IF Obj_in_Move THEN ObjMove: EXIT Function
GetMouse (Obj_maus_W, Obj_maus_H, , Obj_maus_B)
' uebernehme mauskoor. fuer bewegung
Obj_maus_Wext = Obj_maus_W: Obj_maus_Hext = Obj_maus_H
' Pruefe ob Obj. unter Mausz. das oberste Obj.
' und ob die LINKE Maustaste gedrückt wurde
IF (in_Focus) AND (Obj_maus_B = 1) THEN
SLeep 150
GetMouse (Obj_maus_W, Obj_maus_H, , Obj_maus_B)
IF Obj_maus_B = 0 THEN
Objekt_APP = objekt(TALAS1).Nummer: EXIT Function
ELSE
ObjMove: EXIT Function
END IF
ELSEIF (Obj_maus_B = 1) AND (in_Focus = 0) THEN
i_array = (TALAS1 - 1)
DO
Sleep 1
' geklicktes Objekt in tmp-array verschieben
IF (Obj_maus_W >= objekt(i_array).pwide) AND _
(Obj_maus_W <= (Objekt(i_array).pwide + objekt(i_array).owide)) AND _
(Obj_maus_H >= objekt(i_array).phigh) AND _
(Obj_maus_H <= (objekt(i_array).phigh + objekt(i_array).ohigh)) AND _
objekt(i_array).Serie = 1 THEN
markiert = objekt(i_array).Nummer
Obj_TO_Move = 0
FOR i_counter = 1 TO UBound(objekt)
IF objekt(i_counter).Nummer = markiert THEN
Obj_TO_Move += 1
Ob_tmp(objekt(i_counter).Serie).Nummer = objekt(i_counter).Nummer
objekt(i_counter).Nummer = 0
Ob_tmp(objekt(i_counter).Serie).pwide = objekt(i_counter).pwide
Ob_tmp(objekt(i_counter).Serie).phigh = objekt(i_counter).phigh
Ob_tmp(objekt(i_counter).Serie).owide = objekt(i_counter).owide
Ob_tmp(objekt(i_counter).Serie).ohigh = objekt(i_counter).ohigh
Ob_tmp(objekt(i_counter).Serie).farbe = objekt(i_counter).farbe
Ob_tmp(objekt(i_counter).Serie).Grafik = objekt(i_counter).Grafik
Ob_tmp(objekt(i_counter).Serie).Text = objekt(i_counter).Text
Ob_tmp(objekt(i_counter).Serie).Textf = objekt(i_counter).TextF
Ob_tmp(objekt(i_counter).Serie).Textart = objekt(i_counter).Textart
Ob_tmp(objekt(i_counter).Serie).Serie = objekt(i_counter).Serie
Ob_tmp(objekt(i_counter).Serie).Move = objekt(i_counter).Move
Ob_tmp(objekt(i_counter).Serie).visibility = Objekt(i_counter).visibility
END IF
NEXT i_counter
' Lueckenaufschluss
FOR i_objekt = 1 TO Obj_TO_Move
FOR i_counter = 1 TO (UBound(objekt) - 1)
IF objekt(i_counter).Nummer = 0 THEN
objekt(i_counter).Nummer = objekt(i_counter + 1).Nummer
objekt(i_counter + 1).Nummer = 0
objekt(i_counter).pwide = objekt(i_counter + 1).pwide
objekt(i_counter).phigh = objekt(i_counter + 1).phigh
objekt(i_counter).owide = objekt(i_counter + 1).owide
objekt(i_counter).ohigh = objekt(i_counter + 1).ohigh
objekt(i_counter).farbe = objekt(i_counter + 1).farbe
objekt(i_counter).Grafik = objekt(i_counter + 1).Grafik
objekt(i_counter).Text = objekt(i_counter + 1).Text
objekt(i_counter).Textf = objekt(i_counter + 1).TextF
objekt(i_counter).Textart = objekt(i_counter + 1).Textart
objekt(i_counter).Serie = objekt(i_counter + 1).Serie
objekt(i_counter).Move = objekt(i_counter + 1).Move
Objekt(i_counter).visibility = Objekt(i_counter + 1).visibility
END IF
NEXT i_counter
NEXT i_objekt
' tmp wieder zurueck (ans Ende) 8 + 3 = 11 - 10 = 1
FOR i_objekt = (UBound(objekt) - Obj_TO_Move) + 1 TO UBound(objekt)
objekt(i_objekt).Nummer = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).Nummer
objekt(i_objekt).pwide = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).pwide
objekt(i_objekt).phigh = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).phigh
objekt(i_objekt).owide = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).owide
objekt(i_objekt).ohigh = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).ohigh
objekt(i_objekt).farbe = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).farbe
objekt(i_objekt).Grafik = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).Grafik
objekt(i_objekt).Text = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).Text
objekt(i_objekt).Textf = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).TextF
objekt(i_objekt).Textart = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).Textart
objekt(i_objekt).Serie = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).Serie
objekt(i_objekt).Move = ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).Move
Objekt(i_objekt).visibility = Ob_tmp((i_objekt + Obj_TO_Move) - UBound(objekt)).visibility
IF (i_objekt + Obj_TO_Move) - UBound(objekt) = 1 THEN TALAS1 = i_objekt
NEXT i_objekt
IF objekt(UBound(objekt)).Nummer < 100 THEN
Objekt_APP = 0: EXIT Function
ELSE
Objekt_APP = objekt(TALAS1).Nummer: EXIT Function
END IF
END IF
i_array -= 1
LOOP Until i_array < 1
END IF
END Function
Function GetText(obj_num AS Integer, obj_Serie AS Integer) AS String
FOR i_array = 1 TO UBound(objekt)
IF objekt(i_array).Serie = obj_serie AND objekt(i_array).Nummer = obj_num THEN
GetText = objekt(i_array).Text
EXIT Function
END IF
NEXT i_array
GetText = ""
END Function