PDA

Vollständige Version anzeigen : Controls zur Laufzeit verschieben / ausblenden


mischma
28.10.2011, 17:16
Hallo,

ich kriege es nicht hin, zur Laufzeit div. Controls zu verschieben, vergrößern...

Das Form_Current - Ereignis wird immer mehrfach durchlaufen und bringt einen Fehler 2467, wenn die DCount-Abfrage Datensätze bringt.

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Sub</span> Form_Current()
<span class="REM"> 'Bildschirmflackern reduzieren</span>
Me.Painting = <span class="TOKEN">False</span>
&nbsp;
<span class="TOKEN">If</span> DCount(&quot;Dok_ID&quot;, &quot;tblTempDokumenteLog&quot;, &quot;Dok_ID=&quot; &amp; Me!DocID) &gt; 0 <span class="TOKEN">Then</span>
<span class="TOKEN">If</span> Me.Parent!ufrmDokumenteLog.Visible = <span class="TOKEN">False</span> <span class="TOKEN">Then</span>
lDurchlauf = lDurchlauf + 1
<span class="REM"> ' Gr&ouml;sse/Position der Controls</span>
Me.Parent!ufrmDokumente.Height = Me.Parent!regSt&uuml;tzpunkt.Height - 4000
Me.Parent!lblDocLog.Top = Me.Parent!ufrmDokumente.Top + Me.Parent!ufrmDokumente.Height + 100
Me.Parent!ufrmDokumenteLog.Top = Me.Parent!lblDocLog.Top + Me.Parent!lblDocLog.Height
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
<span class="REM"> ' Datenaktualisierung</span>
Me.Parent!lblDocLog.Caption = &quot;&Auml;nderungsbelege f&uuml;r DocID = '&quot; &amp; Me!DocID &amp; &quot;'&quot;
Me.Parent!ufrmDokumenteLog.Form.Visible = <span class="TOKEN">True</span>
Me.Parent!ufrmDokumenteLog.Form.Requery
<span class="TOKEN">Else</span>
<span class="TOKEN">If</span> Me.Parent!ufrmDokumenteLog.Visible = <span class="TOKEN">True</span> <span class="TOKEN">Then</span>
<span class="REM"> ' Gr&ouml;sse/Position der Controls</span>
Me.Parent!ufrmDokumente.Height = Me.Parent!ufrmDokumenteLog.Top + Me.Parent!ufrmDokumenteLog.Height - Me.Parent!ufrmDokumente.Top - Me.Parent!lblDocLog.Height - 100
Me.Parent!lblDocLog.Top = Me.Parent!ufrmDokumente.Top + Me.Parent!ufrmDokumente.Height + 100
&nbsp;
<span class="REM"> ' Datenaktualisierung</span>
Me.Parent!ufrmDokumenteLog.Visible = <span class="TOKEN">False</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
Me.Parent!lblDocLog.Caption = &quot;Noch keine &Auml;nderungsbelege f&uuml;r DocID = '&quot; &amp; Me!DocID &amp; &quot;' vorhanden...&quot;
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
Me.Painting = <span class="TOKEN">True</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Vielleicht hat jemand einen Ansatz.

Vielen Dank, Mike

avogt_at_home
28.10.2011, 17:22
Hallo, verwende statt den Eigenschaften die Funktion move(), siehe OH.

Gruß Andreas

mischma
29.10.2011, 15:23
Hallo Andreas,

danke für Deine Antwort.

Ich habe nun zwei Funktionen zum aus-/einblenden des zweiten Ufo geschrieben, die die Move-Methode verwenden.

Das führt leider auch zur Fehlermeldung bei Klick auf den Datensatz mit DocID=871, weil 'er' immer wieder ins Current-Ereignis zurück springt :-(

Trotzdem danke und Grüsse, Mike

P.S. Habe die aktuelle DB angehangen. Vielleicht weiß jemand Rat...

Thomas Möller
29.10.2011, 16:04
Hallo!

Das führt leider auch zur Fehlermeldung bei Klick auf den Datensatz mit DocID=871, weil 'er' immer wieder ins Current-Ereignis zurück springt :-(

schau mal, ob es besser läuft, wenn Du anstatt das Ufo2 sichtbar und unsichtbar zu machen dessen Höhe auf 0 oder die gewünschte Höhe setzt.

HTH

mischma
29.10.2011, 20:21
Hi Thomas,

mit der Formularhöhe 0 oder 1 klappt's leider auch nicht :-(

Viele Grüsse, Mike

mischma
03.11.2011, 17:20
Hi Thomas, hi Andreas,

ich habe die Ufo's und das Label neu in dem Hauptformular positioniert und die Methode Move zum verändern der Größe/Position verwendet.

Anscheinend überlagerten sich einige Controls, was zum Mehrfachaufruf des Current-Ereignisses führte.

Egal, jetzt funktioniert es bestens :-)

Vielen Dank nochmal für Eure Hilfe!

Grüsse, Mike