Hallo,
ich habe das Beispiel für die Erweiterung aus dem Dialog Designer Handbuch an mein Projekt angepasst, aber leider wird der Button für den Dialog nicht in die Buttonbar des Views übernommen.
Beim Aktivieren der Erweiterung wird lediglich ein "Space" eingefügt, obwohl der richtige Button im Make-Script entnommen wurde.
Leider ist es mir programmtechnisch nicht möglich die korrekte Entnahme des Buttons aus dem SELF Objekt im Install-Script zu überprüfen.
Danke im vorraus!
Mike
ich habe das Beispiel für die Erweiterung aus dem Dialog Designer Handbuch an mein Projekt angepasst, aber leider wird der Button für den Dialog nicht in die Buttonbar des Views übernommen.
Beim Aktivieren der Erweiterung wird lediglich ein "Space" eingefügt, obwohl der richtige Button im Make-Script entnommen wurde.
Leider ist es mir programmtechnisch nicht möglich die korrekte Entnahme des Buttons aus dem SELF Objekt im Install-Script zu überprüfen.
Danke im vorraus!
Mike
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Maxilla am Di., 29.01.2008 - 17:01
PermalinkGespeichert von Mike _ am Di., 29.01.2008 - 17:47
Permalinkdanke für die schnelle Reaktion!
Das Make-Script:
+++
SelectedFeaturesExt = Extension.Make(
"C:\Home\ext\SelectedFeatures.avx".AsFileName,
"Selected Features",
av.FindScript("SelectedFeaturesExt.Install"),
av.FindScript("SelectedFeaturesExt.Uninstall"),
{"$AVBIN/avdlog.dll".AsFileName})
SelectedFeaturesExt.SetExtVersion(1)
SelectedFeaturesExt.SetAbout("Selected Features dialog (v1)")
SelectedFeaturesExt.SetUnloadScript(av.FindScript( "SelectedFeaturesExt.Unload"))
SelectedFeaturesExt.SetCanUnloadScript(av.FindScri pt("SelectedFeaturesExt.CanUnload"))
aDialog = av.FindDialog("SelectedFeatures")
aDialog.SetServer(nil)
aDialog.FindByName("lbx_Records").Empty
aDialog.FindByName("cbx_Themes").Empty
SelectedFeaturesExt.Add(aDialog)
SelectedFeaturesExt.Add(av.FindGUI("View").GetButt onBar.GetControls.Get(25))
for each aDoc in av.GetProject.GetDocs
if (aDoc.Is(SEd)) then
if (aDoc.GetName.Contains("SelectedFeatures.")) then
if (aDoc.IsCompiled.Not) then
aDoc.Compile
end
SelectedFeaturesExt.Add(av.FindScript(aDoc.GetName ))
end
end
end
SelectedFeaturesExt.Commit
+++
Das Install-Script:
+++
if (av.GetProject = nil) then
return nil
end
myButton = self.Get(1)
viewGUI = av.GetProject.FindGUI("View")
viewGUI.GetButtonBar.Add(myButton, 0)
viewGUI.SetModified(TRUE)
+++
Eigentlich müsste der Button ja an die 1. Stelle eingefügt werden, aber den "Space" macht er an die 2. oder 3. Position!?
Mike
Gespeichert von Maxilla am Di., 29.01.2008 - 18:34
PermalinkUm den Button ganz nach vorne zu stellen musst du im Install übrigens Add(myButton, -1) schreiben...
Gespeichert von Mike _ am Mi., 30.01.2008 - 09:08
PermalinkLeider habe ich keine Methode für das Installscript gefunden, da das SELF Objekt ja noch nicht initialisiert ist und somit nicht abgefragt werden kann.
Nachdem ich den Wert auf -1 geändert habe(danke für den Tip) ist komischerweise der Button endlich aufgetaucht. Als ich dann wieder auf 0 gestellt habe war er auch dann an der richtigen Position.
Erklären kann ich dieses Phänomen allerdings nicht!?
Mike
Gespeichert von Maxilla am Mi., 30.01.2008 - 09:56
PermalinkVielleicht noch ein paar Kommentare:
Bei einem einzigen Button mag's ok sein, aber oft ist es übersichtlicher, die Buttons im Make-Script über FindByScript zu suchen, also:
theButton = (av.FindGUI("View").GetButtonBar.FindByScript("Scriptname"))
SelectedFeaturesExt.Add(theButton)
Nicht jedes Nutzers Sache ist es, wenn neue Buttons vorne in der Buttonbar auftauchen - da ist ja normalerweise der Speichern-Button und die gewohnheitsbedingt reflexhafte Mausführung möchte nicht von jeder geladenen Erweiterung neu in die Irre geführt werden. Aber das ist Geschmackssache...
Bis denne, Mx.
Gespeichert von Mike _ am Mi., 30.01.2008 - 10:19
PermalinkÜber welches Script soll ich den Button denn suchen?
Der Button ist doch manuell in die Buttonbar gekommen!
Oder meinst du das Click-Script?
Es gibt ja leider keinen eindeutigen Namen für die einzelnen ButtonObjekte.
Ja über die Anordnung der Buttons kann man streiten. Es wäre sicher am günstigsten diesen soweit wie möglich auf die rechte Seite zu bringen.
Mike
Gespeichert von Maxilla am Mi., 30.01.2008 - 10:31
PermalinkDie "rechte Seite" im Installscript:
derLetzte = viewGUI.GetButtonBar.GetControls.Count - 1
viewGUI.GetButtonBar.Add(myButton, derLetzte)