Announcement

Collapse
No announcement yet.

Adobe Viewer

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Adobe Viewer

    Hallo Leute,

    ich brauch dringenst eine Lösung zu folgendem Sachverhalt.

    Ich will 1 Präsentationsnansicht für PDF´s erstellen. Das bedeutet das ich über ein Adobe-Modul die PDF anzeigen lasse. Und
    über 4 Buttons steuere.

    1. Startseite -> fertig
    2. vorherige Seite -> fertig
    3. nächste Seite -> fertig
    4. Auto-taste -> HILFE


    Die Autotaste soll die Funktion haben das die Seite alle 5 sec zur nächsten Seite blättert und solbald die letzte Seite erschein wieder auf die Erste springt.


    Die Blätter-Funktion klapt schon aber ich krieg einfach die Schleife nicht hin.

    Bitte helft mir schnell

    LG Lampi

  • #2
    Hallo und willkommen,

    eine Schleife ist für dieses Problem nicht sinnvoll, sondern ein Timer. Unter der Voraussetzung, dass das ganze als WinForms-Applikation läuft, fügst du dem Formular einfach einen System.Windows.Forms.Timer hinzu: Interval = 5000, die Auto-Taste startet den Timer (oder stoppt ihn später wieder), das Timer.Tick-Ereignis blättert weiter, ruft also einfach dieselbe Methode auf wie der Next-Button.

    Gruß Jürgen

    Comment


    • #3
      erstmal danke für die schnelle Antwort!

      Also das Blättern klappt schon super aber ich habe nun noch folgendes Problem! das ich nicht sobald die letzte Seite erreicht ist wieder auf die Erste springen kann.

      Das ist das Problem was ich habe und woran ich nun schon 2 tage sitze.

      interessant wäre auch noch wie ich auf den Button 1 wo ich den Seitensprung starte auch wieder wie mit einem Toggle An/Aus schalten kann.

      MFG

      Comment


      • #4
        ... folgendes Problem! das ich nicht sobald die letzte Seite erreicht ist wieder auf die Erste springen kann.
        Woran erkennst du denn, dass die letzte Seite erreicht ist? Wenn du das weißt, kannst du beim Next-Button mit if(letzteSeite) prüfen und ggf. auf Seite 1 springen.

        interessant wäre auch noch wie ich auf den Button 1 wo ich den Seitensprung starte auch wieder wie mit einem Toggle An/Aus schalten kann.
        Alles, was der Designer in die Designer.vb schreibt, kannst du auch manuell regeln. Den Auto-Button kannst du also umschalten, indem du Beschriftung und Funktionalität im Click änderst. Was gerade gilt, kann am einfachsten durch MyTimer.Enabled geprüft werden. Das geht etwa so (Pseudo-Code, weil ich VB höchstens lesen kann):
        Code:
        AutoButtonClick(object sender, EventArgs e)
        begin
           //  Timer umschalten zwischen aktiv/passiv
           MyTimer.Enabled = not MyTimer.Enabled;
           //  Beschriftung anpassen
           if(MyTimer.Enabled)
           then AutoButton.Text = "Automatik Stop"
           else AutoButton.Text = "Automatik Start"
        end
        Das Ändern von MyTimer.Enabled sorgt dafür, dass die Seite weiterspringt oder auch nicht.

        Genügt das als Anregungen? Jürgen

        Comment


        • #5
          Also ich bin ein absoluter Anfänger und weiß nicht mal die einfachsten Sachen! Ich geb dir hier mal meinen Quellcode

          Code:
          Public Class form_poi
          
              Private Sub form_poi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                  pdf_klein.LoadFile("C:\POI-Soft\Präsentation\Präsentation Querformat.pdf")
                  pdf_klein.setShowToolbar(Boolean.Parse("false"))
                  pdf_klein.setShowScrollbars(Boolean.Parse("false"))
                  pdf_groß.LoadFile("C:\POI-Soft\Präsentation\Präsentation Querformat.pdf")
                  pdf_groß.setShowToolbar(Boolean.Parse("false"))
                  pdf_groß.setShowScrollbars(Boolean.Parse("false"))
              End Sub
          
              Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
                  Dim h As String = My.Computer.Clock.LocalTime.Hour
                  Dim m As String = My.Computer.Clock.LocalTime.Minute
                  Dim s As String = My.Computer.Clock.LocalTime.Second
          
                  If h < 10 Then h = "0" + h
                  If m < 10 Then m = "0" + m
                  If s < 10 Then s = "0" + s
          
                  lbl_clock.Text = h & ":" & m & ":" & s
                  lbl_date.Text = Format(Now, "dd.MM.yyyy")
              End Sub
          
              Private Sub first_page_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles first_page.Click
                  pdf_groß.gotoFirstPage()
                  pdf_klein.gotoFirstPage()
              End Sub
          
              Private Sub previous_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles previous.Click
                  pdf_groß.gotoPreviousPage()
                  pdf_klein.gotoPreviousPage()
              End Sub
          
              Private Sub nächste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nächste.Click
                  pdf_groß.gotoNextPage()
                  pdf_klein.gotoNextPage()
              End Sub
          
              Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                  Timer2.Start()
              End Sub
          
              Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
                  pdf_klein.gotoNextPage()
                  pdf_groß.gotoNextPage()
              End Sub
          End Class

          Comment


          • #6
            Hallo,

            du musst doch nur Button1_Click durch meinen Pseudo-Code ersetzen. Die Änderung von Timer.Enabled hat die gleiche Wirkung wie Start bzw. Stop.

            Allerdings kenne ich die pdf-Klassen nicht. Gibt es dort vielleicht auch eine Eigenschaft HasMorePages oder EndOfFile oder ähnlich? Oder kann man CurrentPageNo mit PageCount vergleichen? Das käme dann für die Abfrage if(LetzteSeite erreicht) infrage.

            Jürgen

            Übrigens geht die Formatierung von Datum/Uhrzeit viel einfacher:
            Code:
                Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
                    lbl_clock.Text = DateTime.Now.ToShortTimeString()
                    lbl_date.Text = DateTime.Now.ToShortDateString()
                End Sub
            Oder benutze DateTime.Now.ToString("x") mit einem der unter DateTime-Standardformatzeichenfolgen angegebenen Varianten.
            Zuletzt editiert von Jürgen Thomas; 29.04.2009, 13:20.

            Comment

            Working...
            X