AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein .txt Datei in ein TMemo ziehen (drap&drop)
Thema durchsuchen
Ansicht
Themen-Optionen

.txt Datei in ein TMemo ziehen (drap&drop)

Ein Thema von Nextasy2k · begonnen am 14. Aug 2013 · letzter Beitrag vom 14. Aug 2013
Antwort Antwort
Nextasy2k

Registriert seit: 17. Aug 2008
6 Beiträge
 
Delphi 2009 Architect
 
#1

.txt Datei in ein TMemo ziehen (drap&drop)

  Alt 14. Aug 2013, 01:05
Ich komme leider nicht mehr weiter und habe dazu nichts gefunden. Möchte gerne z.b. eine auf dem Desktop sich befindente .txt Datei mit der Maus in mein TMemo reinziehen, so das die Datei dann im Memo angezeigt wird.

Verwende diesen Code:

Delphi-Quellcode:
private
  procedure WMDROPFILES(var Msg: TMessage); Message WM_DROPFILES;


procedure TForm1.WMDROPFILES(var Msg: TMessage);
var
  i, Counts, Size: Integer;
  PCharFileName: PChar;

begin
  inherited;
  PCharFileName:=nil;
  Counts:=DragQueryFile(Msg.WParam, $FFFFFFFF, PCharFileName, 255);
  for i:=0 to Counts - 1 do
    begin
      Size:=DragQueryFile(Msg.WParam, i, nil, 0) + 1;
      PCharFileName:=StrAlloc(Size);
      DragQueryFile(Msg.WParam, i, PCharFileName, Size);
      Memo1.Lines.Add(String(PCharFileName));
      StrDispose(PCharFileName);
   end;
  DragFinish(Msg.WParam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Memo1.Handle, True);
end;
Eigentlich galt der für ne ListBox, daher mein Versuch mit dem Memo, doch leider passiert nach dem drap&drop garnichts. Wäre für Hilfe oder verbesserungen/aufklärung sehr sehr dankbar!

Geändert von Luckie (14. Aug 2013 um 09:48 Uhr) Grund: Luckie: Delphi-Tags hinzugefügt. Beim nächsten mal bitte selber dran denken.
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: .txt Datei in ein TMemo ziehen (drap&drop)

  Alt 14. Aug 2013, 02:12
Hallo,

Du kannst es mal so versuchen:
Delphi-Quellcode:
uses
  ShellApi;

procedure TForm1.WMDropFiles (var Msg : TMessage);
var
  s, w : Integer;
  q : PChar;
  p : TPoint;
begin
  w := Msg.WParam;
  try
    DragQueryPoint (w, p);
    if not PtInRect (Memo1.ClientRect, Memo1.ScreenToClient (ClientToScreen (p))) then
      Exit;

    if DragQueryFile (w, $FFFFFFFF, nil, 0) <> 1 then
      begin
        // Deine Fehlerbehandlung, wenn mehr als eine Datei gedroppt wird
        Exit
      end;

    s := DragQueryFile (w, 0, nil, 0) + 1;
    try
      q := StrAlloc (s)
    except
      // Deine Fehlerbehandlung, wenn kein Speicher alloziert werden konnte
      Exit
    end;

    DragQueryFile (w, 0, q, s);
    Memo1.Lines.LoadFromFile (q);
    StrDispose (q)
  finally
    DragFinish (w)
  end
end;

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

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

Geändert von Volker Z. (14. Aug 2013 um 02:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: .txt Datei in ein TMemo ziehen (drap&drop)

  Alt 14. Aug 2013, 06:38
Der entscheidende Unterschied ist, dass du das Handle des Formulars benutzt. Denn wenn man das des Memos benutzt, muss man die Nachricht auch in der Klasse des Memos abfangen oder dessen WndProc umbiegen. Im Formular kommt die Message dann gar nicht an, weshalb auch der erste Quelltext nicht funktionieren wird.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Nextasy2k

Registriert seit: 17. Aug 2008
6 Beiträge
 
Delphi 2009 Architect
 
#4

AW: .txt Datei in ein TMemo ziehen (drap&drop)

  Alt 14. Aug 2013, 07:44
Danke Danke, ich glaub jetzt hab ichs verstanden

Noch eine kurze Frage, wie kann man jetzt bestimmen das man nur .txt dateientypen reinziehen kann und keine anderen ?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: .txt Datei in ein TMemo ziehen (drap&drop)

  Alt 14. Aug 2013, 08:09
Könntest du bitte deinen ersten Beitrag bearbeiten und um den Quelltext die
Code:
[DELPHI][/DELPHI]
Tags setzen?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: .txt Datei in ein TMemo ziehen (drap&drop)

  Alt 14. Aug 2013, 08:44
Noch eine kurze Frage, wie kann man jetzt bestimmen das man nur .txt dateientypen reinziehen kann und keine anderen ?
Gar nicht, das musst du selbst prüfen, wenn der User diese bei dir abgelegt hat.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz