Gelöst! aktives Formular per Makro finden

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Gelöst! aktives Formular per Makro finden

Gelöst! Re: aktives Formular per Makro finden

von eBayer » Do, 28.05.2009 14:54

Danke Jürgen,
das war die Lösung..... ich habe einfach nicht den richtigen Ansatz gefunden.
Klasse!
Gruß eBayer

Re: aktives Formular per Makro finden

von turtle47 » Do, 28.05.2009 00:49

Hi,

hier der vervollständigte Code mit Hilfe diese Threads: :wink:

Code: Alles auswählen

sub FensterWechseln
   GlobalScope.BasicLibraries.LoadLibrary("Tools")
   Dim oDesktop As Object, oDocs As Object
   Dim oDoc As Object, oComponents As Object
   oComponents = StarDesktop.getComponents()
   oDocs = oComponents.createEnumeration()
   DO WHILE oDocs.hasMoreElements()
   ON ERROR resume next
   oDoc = oDocs.nextElement()
   datei= odoc.geturl()
   FileN = FileNameoutofPath(datei)
   'xray oDoc
    if FileN = "private:object" and oDoc.title = "Deine_Datei.odb : Dein_Formular (schreibgeschützt)" then
    oDoc.CurrentController.Frame.getContainerWindow().setFocus
    
    dim vFrame as Object
	dim vWindow as Object
	dim vRect as Object
	dim intHeight as Integer
	dim intWidth  as Integer
	dim intXPos as Integer
	dim intYPos as Integer
   
	vFrame = StarDesktop.getCurrentFrame()
	vWindow = vFrame.getContainerWindow()
	vRect = vWindow.getPosSize()
	intXPos=vRect.X
	intYPos=vRect.Y
	intHeight=700
	intWidth=1024    
	oDoc.CurrentController.Frame.getContainerWindow().setPosSize(intXPos, intYPos, intWidth, intHeight, 15)
       EXIT DO
    end if
  LOOP   
end sub
Gut's Nächtle.

Jürgen

Re: aktives Formular per Makro finden

von turtle47 » Do, 28.05.2009 00:31

Hallo eBayer,

hilft Dir folgender Code weiter:

Code: Alles auswählen

sub FensterWechseln
   GlobalScope.BasicLibraries.LoadLibrary("Tools")
   Dim oDesktop As Object, oDocs As Object
   Dim oDoc As Object, oComponents As Object
   oComponents = StarDesktop.getComponents()
   oDocs = oComponents.createEnumeration()
   DO WHILE oDocs.hasMoreElements()
   ON ERROR resume next
   oDoc = oDocs.nextElement()
   datei= odoc.geturl()
   FileN = FileNameoutofPath(datei)
   'xray oDoc
    if FileN = "private:object" and oDoc.title = "Deine_Datei.odb : Deine_Tabelle (schreibgeschützt)" then
    oDoc.CurrentController.Frame.getContainerWindow().setFocus
       EXIT DO
    end if
  LOOP
end sub
?

Viel Erfolg.

Jürgen

Edit: Wer lesen kann ist klar im Vorteil.
Mit dem Code wird ja nur der Focus auf das Formular gesetzt und nicht maximiert. :?
Vielleicht kann den Code ja trotzdem jemand brauchen.

Gelöst! aktives Formular per Makro finden

von eBayer » Mi, 27.05.2009 23:50

Hallo, vielleicht hat ja einer eine Idee..... leider habe ich per Google nicht das passende gefunden.
Ich suche eine Möglichkeit, in einer Base-Anwendung einem bereits geöffneten Formular aus mehreren geöffneten per Makro den Focus zu geben. Irgendetwas wie: getActiveForm()
Hintergrund ist, daß meine Anwender Formulare iconisieren und dann versuchen, das gleiche nochmals zu öffenen. Das führt unter Umständen zu fehlerhaften Resultaten, insbesondere, wenn Filterbedingungen im Spiel sind.
Nun möchte ich per Makro herausfinden, ob ein entsprechendes Formular bereits aktiv ist, damit ich ihm dann nur noch den Fokus geben brauche..
Danke für möglichst zahlreiche Antworten.
Gruß eBayer

Nach oben