Announcement

Collapse
No announcement yet.

Drag-Funktion zwischen der gleiche 2x gestarteten Anwendung

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

  • Drag-Funktion zwischen der gleiche 2x gestarteten Anwendung

    Ich habe eine Anwendung, die, 2 x gestartet nebeneinander auf zwei Bildschirmen läuft und über eine Textdatei auf Platte C: Parameter
    zum kopieren austauscht.
    Wie kann ich es mit Drag und Drop realisieren, heißt, wie kann die
    erstgestartete Anwendung erkennen, das die zweite Anwendung eine
    Drag-Operation an die erste Anwendung gibt ???

  • #2
    Hallo,

    äh - soll wirklich Drag&Drop über <b>zwei</b> Bildschirme gemacht werden?<br>
    Das folgende Beispiel demonstriert die Übernahme einer Datei vom Windows-Explorer über Drag&Drop:
    <pre>
    unit DuDExplorerFrm;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls;

    type
    TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    private
    { Private-Deklarationen }
    procedure WMDropFiles(var Msg: TMessage); message wm_DropFiles;
    public
    { Public-Deklarationen }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    uses ShellAPI;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    DragAcceptFiles(Handle, True)
    end;

    procedure TForm1.FormDestroy(Sender: TObject);
    begin
    DragAcceptFiles(Handle, False);
    end;

    procedure TForm1.WMDropFiles(var Msg: TMessage);
    const
    maxPathSize = 254;
    var
    szPathName : array[0..maxPathSize] of Char;
    begin
    DragQueryFile(Msg.wParam, 0, szPathName, maxPathSize);
    Memo1.Lines.Add(szPathName);
    DragFinish(Msg.wParam);
    inherited;
    end;

    end.
    </pre&gt

    Comment


    • #3
      Hallo Andreas,

      vielleicht hab ich mich etwas kompliziert ausgedrückt.
      Ich habe eine Anwendung, die ich 2 x starte. Da ich in meinem
      PC 2 Grafikkarten habe (infolgedessen auch 2 Bildschirme), lege
      ich das erstgestartete Programm auf meinen linken und das zweit-
      gestartete auf meinen rechten Bildschirm.

      Der Benutzer soll jetzt, wie im NT-Explorer durch ziehen
      aus der Zweitanwendung in die Erstanwendung einen Kopier-
      vorgang starten können. Dabei will ich allerdings keine komplette
      Datei kopieren, sondern lediglich Parameter zum kopieren über-
      geben. Der eigentliche Kopiervorgang erfolgt durch Starten eines
      RPG-Programmes auf einer AS/400 und soll durch das "DROP" in der
      erstgestarteten Anwendung ausgelöst werden.

      Oh je, hoffentlich hab ich mich jetzt verständlich ausdrücken
      können.

      Vielen Dank nochmals.

      Christoph Hekto

      Comment


      • #4
        Hallo,

        wie ich immer sage: "Luxus schafft Probleme". Da mir 2 Monitore an einem Rechner nie vergönnt waren, habe ich eine Zwischenfrage: Kann mit dem Explorer eine Datei via Drag&Drop von einem Monitor auf den anderen gezogen werden

        Comment


        • #5
          um deine frage zu beantworten: ja klar, die beiden monitore arbeiten
          wie EIN Monitor mit einer auflösung von 2056 x 768 (eingestellte
          auflösung je monitor 1028). ich kann mir auf jedem der beiden monitore
          einmal den explorer aufmachen und dazwischen drag und drop machen.

          übrigens.... das beispielprogramm, das du mir hier aufgeschrieben
          hast, hab ich ausgetestet... und es funktioniert auch wunderbar !!!

          im prinzip möchte ich, das mein programm das gleiche mit drag & drop
          kann, wie der explorer, wenn man ihn zweimal startet. ich habe nämlich
          auch einen treeview programmiert (Anwendung ist ein fertigungsblatt)
          und möchte eben auch zwischen beiden unabhängigen Anwendungen Drag &
          Drop machen können.

          Ich hab mir auch deine beiden Bücher COM/DCOM und Delphi-32-Api
          besorgt und hab angefangen, darin zu lesen. Aber es ist streckenweise
          ziemlich schwierig, da ich nicht aus der WINDOWS-Welt, sondern aus
          der AS400-Welt komme und mich so intensiv mit Windows noch nicht
          auseinandergesetzt habe. Kannst Du ein Buch empfehlen, das noch die
          WINNT-Grundlagen, die Funktionsweise prinzipiell auf einfache Weise
          erklärt ?? Mir fehlen offensichtlich da einfach einige Grundlagen.

          Vielen Dank übrigens nochmal für die Hilfe !!!

          Christoph

          ps.: bei uns besitzen alle techniker im haus 2 bildschirme (sogar
          21", ich nur 2 x 17"). wir arbeiten darauf mit CAD - Systemen
          und für die zeichnungen brauchst du 2 monitore (z. B. Übersichts-
          zeichnung und Detailzeichnung gleichzeitig auf dem Monitor).
          Daher kosten unsere Arbeitsplätze für die Techniker ca. 24.000
          DM, meiner war dagegen noch richtig "billig" !!!

          freundliche Grüße
          Christop

          Comment

          Working...
          X