Announcement

Collapse
No announcement yet.

Unterschrift über Touchdisplay

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

  • Unterschrift über Touchdisplay

    Hallo zusammen,
    ich hoffe ich bin hier richtig.
    Bei allen Paketzulieferern muss man die Unterschrift über ein Touchdisplay eingeben.
    Kann mir einer Helfen oder Tipps geben wie man so etwas macht.
    Denn ich möchte so etwas auch mal probieren

    Danke
    Krebsbachbub

  • #2
    Originally posted by krebsbachbub View Post
    Bei allen Paketzulieferern muss man die Unterschrift über ein Touchdisplay eingeben.
    Kann mir einer Helfen oder Tipps geben wie man so etwas macht.
    Was macht? Pakete ausliefern? Unterschreiben?

    Bitte etwas konkreter.
    Dirk

    Comment


    • #3
      opennetcf bietet dir eine kostenlose Möglichkeit, die Libary beinhaltet ein Signatue control auf dem man malen kann und das gemalte (unterschriebene) als jpg abgelegt wird.
      Man kann sich sowas aber auch selber basteln, indem man:
      Eine Picturebox nimmt
      Ein neues bitmap dimensioniert,
      Darauf ein Graficsobject klatscht
      Das Event des Touchscreens abfängt
      Die Position der Berührung ausliest und mit der Picturebox vergleicht
      Wenn die Berührung auf dem Screen über der Picturebox liegt, lässt man das Graficsobjet da nen Punkt malen.
      Am ende das Bitmap speichern und fertig.

      Wenn Du keine Lust auf opennetcf hast probier mal mit den hinweisen rum, wenn Du schwierigkeiten hast schreib ich auch nen code für Dich, aber nur wenn's sein muss

      Comment


      • #4
        Hallo... bin gerade auf deinen post gestoßen und wollte mal fragen ob du da genauer drauf eingehen kannst?
        Ich muss das ganze auch programmieren, habe aber da so meine probleme!!

        Ich kann malen wie ein großer, jedoch kann ich nicht auf ein BMP pinseln...
        lediglich auf der Form oder unter dem bitmap @|
        Weis nicht warum und wieso!!!

        Wie muss ich vorgehen um in einen definierten Bereich (BMP... etc...) eine Unterschrift zu bekommen und diese dann abzuspeichern???

        Wäre super wenn du helfen würdest!! Danke!!

        Comment


        • #5
          Hier ein kleiner Beispielcode, die Picturebox ist nur deswegen dynamisch angelegt, damit ihr die Classe direkt verwenden könnt ohne das Formular dafür zu basteln:
          Code:
          Public Class Form1
          
              Dim bmp As New Bitmap(200, 200)
              Dim gr As Graphics
              Dim lastpoint As System.Drawing.Point = Nothing
              Friend WithEvents pb As New System.Windows.Forms.PictureBox
          
           
              Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
                  pb.Image = bmp
                  pb.Width = 200
                  pb.Height = 200
                  pb.Top = 0
                  pb.Left = Math.Round((Screen.PrimaryScreen.WorkingArea.Width - 200) / 2, 0)
                  Me.Controls.Add(pb)
                  gr = Graphics.FromImage(bmp)
                  Dim mybrush As New SolidBrush(Color.White)
                  gr.FillRectangle(mybrush, 0, 0, 200, 200)
              End Sub
          
              Private Sub pbmousemove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pb.MouseMove
          
                  If lastpoint = Nothing Then
                      lastpoint = New System.Drawing.Point(e.X, e.Y)
                  Else
                      gr.DrawLine(New System.Drawing.Pen(Color.Black, 2), lastpoint.X, lastpoint.Y, e.X, e.Y)
                      pb.Image = bmp
                      pb.Refresh()
                  End If
                  lastpoint.X = e.X
                  lastpoint.Y = e.Y
              End Sub
          
              Private Sub pbmouseup(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pb.MouseUp
                  lastpoint = Nothing
              End Sub
          
          End Class

          Comment


          • #6
            Hallo

            Hallo TimP...
            danke für Deine schnelle Hilfe.
            Habe Deinen Source umgemünzt auf C#, jedoch funktioniert das immer noch nicht so???

            Wenn ich Deinen Source als alleine verwende, klappt es, bis auf das die Maus 3 cm neben
            der gezogenen drawLine steht.

            Poste jetzt mal meinen Source in der Hoffnung das da jemand durchsieht und den (die) Fehler findet.
            Möchte einfach nur eine pictureBox in der ein bmp liegt, auf dem ich eine Unterschrift setzen kann.

            Code:
            using System;
            using System.Collections.Generic;
            using System.ComponentModel;
            using System.Data;
            using System.Drawing;
            using System.Text;
            using System.Windows.Forms;
            using System.IO;
            using System.Collections;
            
            namespace ???????
            {
                public partial class Save_txt : Form
                {     
            
                    Bitmap bmp = new Bitmap(210, 61);
                    System.Drawing.Graphics gr;
                    System.Drawing.Point lastpoint = new System.Drawing.Point();
                    System.Drawing.Pen stift = new System.Drawing.Pen(Color.Black);
                    System.Drawing.SolidBrush mybrush = new SolidBrush(Color.White);
            
                    public Save_txt()
                    {
                        InitializeComponent();
                        this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.paintMouseDown);
                        this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.paint_MouseUp);
                        this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.paint_MouseMove);
                    }
            
                           private void Save_txt_Load(object sender, EventArgs e)
                    {
                        // rootpfad auslesen und in strAppPath speichern
                        String strWork = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
                        String strAppPath = strWork.Substring(1, strWork.LastIndexOf(@"\"));
            
                        pb.Image = bmp;
                        pb.Width = 210;
                        pb.Height = 61;
                        pb.Top = 14;
                        pb.Left = 144;//Math.Round((Screen.PrimaryScreen.WorkingArea.Width - 200) / 2, 0);
                        this.Controls.Add(pb);
                        gr = Graphics.FromImage(bmp);
                     
                        //gr.FillRectangle(mybrush, 0, 0, 200, 200);
                      
                               }
            
                    private void paint_MouseDown(object sender, MouseEventArgs e)
                    {
                 // **
                    }
                    private void paint_MouseMove(object sender, MouseEventArgs e)
                    {
            
                        if ((lastpoint.X == 0) && (lastpoint.Y == 0))
                        {
                            lastpoint = new System.Drawing.Point(e.X, e.Y);
                        }
                        else
                        {
                            gr.DrawLine(new System.Drawing.Pen(Color.Black, 2), lastpoint.X, lastpoint.Y, e.X, e.Y);
                            pb.Refresh();
                        }
                        lastpoint.X = e.X;
                        lastpoint.Y = e.Y;
            
                    }
                    private void paint_MouseUp(object sender, MouseEventArgs e)
                    {
                        lastpoint.X = 0;
                        lastpoint.Y = 0;
                    }
                }
            }
            Bevor ich es vergesse, wie man sieht c# und das ganze ist für WindowsMobile6

            Wäre super wenn mir jemand helfen kann!!!

            Comment


            • #7
              c# benutze ich selten und ich hatte nicht die Muse mich mit Dynamischen Controls zu beschäftigen, aber wenn Du in Deinem Projekt eine Picturebox einbindest (Picturebox1) und der Picturebox die events mouseup und maousemove zuweist, dann funktioniert dieser code bestens:
              Code:
              using System;
              using System.Collections.Generic;
              using System.ComponentModel;
              using System.Data;
              using System.Drawing;
              using System.Text;
              using System.Windows.Forms;
              using System.IO;
              using System.Collections;
              
              namespace DeviceApplication2
              {
                  public partial class Form1 : Form
                  {  
              
                      Bitmap bmp = new Bitmap(210,61);
                      System.Drawing.Graphics gr;
                      System.Drawing.Point lastpoint = new System.Drawing.Point(0,0);
                      System.Drawing.Pen stift = new System.Drawing.Pen(Color.Black);
                      System.Drawing.SolidBrush mybrush = new SolidBrush(Color.White);
              
                       public Form1()
                      {
                          InitializeComponent();
                          
                      }
              
              
              
              
                      private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
                      {
              
                      }
              
                      private void pictureBox1_MouseMove_1(object sender, MouseEventArgs e)
                      {
                          if ((lastpoint.X == 0) && (lastpoint.Y == 0))
                          {
                              lastpoint = new System.Drawing.Point(e.X, e.Y);
                          }
                          else
                          {
                              gr.DrawLine(new System.Drawing.Pen(Color.Black, 2), lastpoint.X, lastpoint.Y, e.X, e.Y);
                              pictureBox1.Image = bmp;
                              pictureBox1.Refresh();
                          }
                          lastpoint.X = e.X;
                          lastpoint.Y = e.Y;
                      }
              
                      private void pictureBox1_MouseUp_1(object sender, MouseEventArgs e)
                      {
                          lastpoint.X = 0;
                          lastpoint.Y = 0;
                      }
              
                      private void Form1_Load(object sender, EventArgs e)
                      {
                          // rootpfad auslesen und in strAppPath speichern
                          String strWork = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
                          String strAppPath = strWork.Substring(1, strWork.LastIndexOf(@"\"));
              
              
                          gr = Graphics.FromImage(bmp);
                          pictureBox1.Image = bmp;
                          pictureBox1.Refresh();
                          gr.FillRectangle(mybrush, 0, 0, 210, 61);
                      }
              
              
                  }
              }

              Comment


              • #8
                Hallo

                Danke danke und nochmal danke...

                und der Picturebox die events mouseup und maousemove zuweist
                this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.paintM ouseDown);

                jetzt

                this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.paintM ouseDown);

                Also nochmal Danke für die schnelle und tatkräftige Unterstützung...

                P.S. ich bin selbst leider nicht drauf gekommen!!!

                Greetz

                Comment

                Working...
                X