ich habe folgendes Apply-Script für einen Button erstellt
'dieses skritp soll es ermöglichen per mausklick mit einem tool vorhandene luftbilder
'ein- bzw. auszublenden
'
'
theView=av.getActiveDoc
'***** 10.4.2002 *****
'***** die folgenden zeilen wurden aus dem script view.add übernommen
'***** weil beim einfügen des bildes die flächen rechts und unterhalb weiß erschienen
zoom = (theView.GetThemes.Count = 0)
useDD=TRUE
isOther=FALSE
theBox=Rect.makexy(-200,-100,200,100)
'*****
'es wird geprüft ob das aktive thema ein view ist
if (av.getActiveDoc.getClass.getclassName="View") then
'es wird nach dem thema rahmenkarte gesucht
theTheme=(av.GetActiveDoc.FindTheme("Cirkarte"))
if (theThemenil) then 'wenn das gesuchte thema existiert
theTheme.setActive(true)
found = false
p = av.getActiveDoc.GetDisplay.ReturnUserPoint
if (theTheme.HasAttributes) then 'wenn das thema attribute hat
recs = theTheme.FindByPoint(p)
for each rec in recs
'das feld welches die datenquelle beinhaltet wird festgelegt
theField = theTheme.getFTab.findField("Image")
found = true
'der wert des datenquellenfeldes wird übergeben
theVal = theTheme.ReturnValueString(theField.GetName, rec)
if (theVal.isNull) then
msgbox.error("Für den gewählten Breich liegen keine Daten vor!","")
else
'es wird geprüft ob das luftbild ein oder ausgeblendet werden soll
myThemeList=theView.getThemes
delTheme=0
for each theTheme in myThemeList
if (theTheme.getname=(theVal.right(12))) then
theView.deleteTheme(theTheme)
delTheme=1
break
end
end
if (delTheme1) then
if (File.Exists(theVal.AsFileName)) then
theITheme=Theme.Make(theVal.AsSrcName)
'***** 10.4.2002 *****
'***** die folgenden zeilen wurden aus dem script view.add übernommen
'***** weil beim einfügen des bildes die flächen rechts und unterhalb weiß erschienen
theleg=thetheme.getlegend.clone
if (TheBox.contains(theTheme.returnextent).NOT) then
useDD=FALSE
end
if (theTheme.Is(FTheme).Not) then
isOther=TRUE
end
'*****
theView.AddTheme(theITheme)
theView.GetThemes.Get(0).SetVisible(TRUE)
if (zoom) then
theThemes = theView.GetThemes
r = Rect.MakeEmpty
for each t in theThemes
r = r.UnionWith(t.ReturnExtent)
end
if (r.IsEmpty) then
return nil
elseif ((r.ReturnSize) = (0@0)) then
theView.GetDisplay.PanTo(r.ReturnOrigin)
else
theView.GetDisplay.SetExtent(r.Scale(1.1))
end
end
else
msgbox.error("Die Bilddatenquelle ist nicht vorhanden","Fehler beim anzeigen")
end
end
end
end
if (not found) then
System.Beep
end
end
else msgbox.error("Das Orientierungsthema für die Lufbilder ist nicht vorhanden!","Fehler beim Anzeigen")
end
end
Es treten Fehler bei der Anzeige der Bilder auf dem View auf.
Rechts neben dem Luftbild und unter dem Luftbild erschreint eine grosse weisse Fläche. Diese weisse Fläche überdeckt die eigentlich aktiven Themen.
Es sind sid Luftbilder !!!
Hat jemand eine Idee, woran das leigen könnte ?
'dieses skritp soll es ermöglichen per mausklick mit einem tool vorhandene luftbilder
'ein- bzw. auszublenden
'
'
theView=av.getActiveDoc
'***** 10.4.2002 *****
'***** die folgenden zeilen wurden aus dem script view.add übernommen
'***** weil beim einfügen des bildes die flächen rechts und unterhalb weiß erschienen
zoom = (theView.GetThemes.Count = 0)
useDD=TRUE
isOther=FALSE
theBox=Rect.makexy(-200,-100,200,100)
'*****
'es wird geprüft ob das aktive thema ein view ist
if (av.getActiveDoc.getClass.getclassName="View") then
'es wird nach dem thema rahmenkarte gesucht
theTheme=(av.GetActiveDoc.FindTheme("Cirkarte"))
if (theThemenil) then 'wenn das gesuchte thema existiert
theTheme.setActive(true)
found = false
p = av.getActiveDoc.GetDisplay.ReturnUserPoint
if (theTheme.HasAttributes) then 'wenn das thema attribute hat
recs = theTheme.FindByPoint(p)
for each rec in recs
'das feld welches die datenquelle beinhaltet wird festgelegt
theField = theTheme.getFTab.findField("Image")
found = true
'der wert des datenquellenfeldes wird übergeben
theVal = theTheme.ReturnValueString(theField.GetName, rec)
if (theVal.isNull) then
msgbox.error("Für den gewählten Breich liegen keine Daten vor!","")
else
'es wird geprüft ob das luftbild ein oder ausgeblendet werden soll
myThemeList=theView.getThemes
delTheme=0
for each theTheme in myThemeList
if (theTheme.getname=(theVal.right(12))) then
theView.deleteTheme(theTheme)
delTheme=1
break
end
end
if (delTheme1) then
if (File.Exists(theVal.AsFileName)) then
theITheme=Theme.Make(theVal.AsSrcName)
'***** 10.4.2002 *****
'***** die folgenden zeilen wurden aus dem script view.add übernommen
'***** weil beim einfügen des bildes die flächen rechts und unterhalb weiß erschienen
theleg=thetheme.getlegend.clone
if (TheBox.contains(theTheme.returnextent).NOT) then
useDD=FALSE
end
if (theTheme.Is(FTheme).Not) then
isOther=TRUE
end
'*****
theView.AddTheme(theITheme)
theView.GetThemes.Get(0).SetVisible(TRUE)
if (zoom) then
theThemes = theView.GetThemes
r = Rect.MakeEmpty
for each t in theThemes
r = r.UnionWith(t.ReturnExtent)
end
if (r.IsEmpty) then
return nil
elseif ((r.ReturnSize) = (0@0)) then
theView.GetDisplay.PanTo(r.ReturnOrigin)
else
theView.GetDisplay.SetExtent(r.Scale(1.1))
end
end
else
msgbox.error("Die Bilddatenquelle ist nicht vorhanden","Fehler beim anzeigen")
end
end
end
end
if (not found) then
System.Beep
end
end
else msgbox.error("Das Orientierungsthema für die Lufbilder ist nicht vorhanden!","Fehler beim Anzeigen")
end
end
Es treten Fehler bei der Anzeige der Bilder auf dem View auf.
Rechts neben dem Luftbild und unter dem Luftbild erschreint eine grosse weisse Fläche. Diese weisse Fläche überdeckt die eigentlich aktiven Themen.
Es sind sid Luftbilder !!!
Hat jemand eine Idee, woran das leigen könnte ?
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Tobias am Di., 12.08.2003 - 15:20
Permalink