WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 31.01.2008, 12:35   #1
heli2sky
Master
 
Registriert seit: 02.10.2001
Alter: 38
Beiträge: 523


heli2sky eine Nachricht über ICQ schicken
Standard VBA Timer (Powerpoint)

hallo leute!

ich hab mit vba eigentlich nix am hut, hab aber jetzt für eine powerpoint präsentation bisschen was damit herumgebastelt. die präsentation ist im wesentlichen ein formular, das direkt geändert werden kann. wichtig ist, dass die aktuelle zeit mitläuft und ständig aktualisiert wird, und das ist das problem!

ich habe es zwar geschafft, jedoch ist die lösung erstens nicht sehr elegant (cpu-belastung 100% ) und zweitens hängt sich die präsentation alle halben stunden bis stunden auf

mein code sieht derzeit so aus:
PHP-Code:
Public Sub zeit()
UTC.Font.Size 35
UTC
.Font.Bold True
pre_stop 
False
Dim Tformat

Tformat 
"hh:mm:ss"
Do While (pre_stop False)
    
utc_now Date + ((Timer / (60 60)) / 24) - (korr_utc 24)
    
UTC.Caption Format(utc_nowTformat)
    
    
'Alle Labels initialisieren
    Dim duetimes As New Collection
    [...]
    
    Dim x As Integer
    Dim y As Integer
    Dim z As Integer
    num = 0
    For Each duetime In duetimes
        x = ETDs(num) / 100
        y = ((ETDs(num) / 100) - x) * 100
        new_ETD = Date + ((x + (y / 60)) / 24)
        diff = new_ETD - utc_now
        If diff > 0 Then
            duetime.Caption = Format(diff, "hh:mm")
        Else
            duetime.Caption = ""
        End If
        If new_ETD > utc_now And new_ETD < utc_now + (20 / (24 * 60)) Then '
anzahl der minuten für warnung
            duetime
.BackColor RGB(2551200)
            
duetime.ForeColor RGB(255255255)
        Else
            
duetime.BackColor RGB(255255255)
            
duetime.ForeColor RGB(000)
        
End If
        
num num 1
        
        
If num 10 Then
            
Exit For
        
End If
    
Next
    
    DoEvents    
' Steuerung an andere Prozesse
            ' 
abgeben.
Loop
UTC
.Caption Format(utc_nowTformat)
End Sub
Public Sub zeitstop()
    
pre_stop True
End Sub 
in der präsentation werden verschiedene flüge eingegeben und von der aktuellen zeit und der vorraussichtlichen startzeit die differenz berechnet...

ich hoffe, ihr versteht mein problem und könnt mir helfen!
____________________________________
Lang ist der Weg durch Lehren, kurz und wirksam durch Beispiele.
Lucius Annaeus Seneca


...:::www.modellbaulexikon.org:::...

www.acrobat-se.org | www.ams-8c.de.vu
heli2sky ist offline   Mit Zitat antworten
Alt 11.02.2008, 15:18   #2
Shadow
Master
 
Registriert seit: 19.04.2000
Beiträge: 541


Standard

Habe zwar mit Powerpoint noch nix in VBA gemacht, aber die DIM Befehle würde ich grundsätzlich ausserhalb (vor) der DO WHILE Schleife machen, sonst reserviert der womöglich immer neuen Speicher dafür (vor allem für die Collection, die wird am meisten Speicher verbrauchen).

Falls die Zeile "Dim duetimes As New Collection" aus Logikgründen in der Schleife bleiben muss, würde ich vor dem Schleifenende (LOOP) zumindest mit "SET duetimes = Nothing" den reservierten Speicher wieder freigeben.
Shadow ist offline   Mit Zitat antworten
Alt 12.02.2008, 08:49   #3
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

Hi!

Ich habe noch nie mit Powerpoint/VBA gearbeitet, aber auch da sollte die API uneingeschränkt funktionieren.

Hier wird ein Timer per API beschrieben:
http://www.vbarchiv.net/vbapi/SetTimer.php

Vielleicht hilft dir das weiter.


mfg

WB
wbendl ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:14 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag