AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Meine Drag'n'Drop-Funktion ergänzen

Ein Thema von AlexII · begonnen am 1. Apr 2010 · letzter Beitrag vom 2. Apr 2010
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#1

Meine Drag'n'Drop-Funktion ergänzen

  Alt 1. Apr 2010, 16:17
Hi,

ich habe wie folgt in mein Prog ne Drag'n'Drop Funktion eingebaut:

Delphi-Quellcode:
implementation

uses ShellAPI;

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
  protected
    procedure WMDROPFILES(var Msg: TMessage); message WM_DROPFILES;
  private
...

procedure TForm1.WMDROPFILES(var Msg: TMessage);
begin
showmessage('Ja es hat geklappt, hier lade ich die Daten');
end;
Jetzt mein Problem: damit ich die Daten, der auf das Prog zu ziehender Datei, laden kann, muss ich den Datentyp der Datei wissen. Wie kriege ich das raus, wer kann mir das sagen?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Meine Drag'n'Drop-Funktion ergänzen

  Alt 1. Apr 2010, 16:32
Genügt es nicht, nach der Endung zu schauen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Meine Drag'n'Drop-Funktion ergänzen

  Alt 1. Apr 2010, 16:34
Zitat von DeddyH:
Genügt es nicht, nach der Endung zu schauen?
Ja klar, ist sogar besser aber wie?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Meine Drag'n'Drop-Funktion ergänzen

  Alt 1. Apr 2010, 16:35
Delphi-Referenz durchsuchenWM_DROPFILES, Delphi-Referenz durchsuchenExtractFileExt

Über die Suche solltest Du alles Relevante finden
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Meine Drag'n'Drop-Funktion ergänzen

  Alt 1. Apr 2010, 16:39
Ja das habe ich gefunden -> function ExtractFileExt(const FileName: string): string; overload; Aber wie finde ich den FileName raus?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Meine Drag'n'Drop-Funktion ergänzen

  Alt 1. Apr 2010, 16:42
Delphi-Quellcode:
procedure TForm1.WMDROPFILES(var Msg: TMessage);
var i, count: Cardinal;
    Buffer, Extension: string;
begin
  inherited;
  Buffer := '';
  count := DragQueryFile(Msg.WParam,$FFFFFFFF,nil,0);
  for i := 0 to count - 1 do
    begin
      SetLength(Buffer,DragQueryFile(Msg.WParam,i,nil,0) + 1);
      DragQueryFile(Msg.WParam,i,@Buffer[1],Length(Buffer));
      Extension := ExtractFileExt(Buffer);
      ShowMessage(Extension);
    end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Meine Drag'n'Drop-Funktion ergänzen

  Alt 1. Apr 2010, 16:45
so kompliziert?

OK thx
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Meine Drag'n'Drop-Funktion ergänzen

  Alt 1. Apr 2010, 16:48
Du kannst Dir natürlich auch entsprechende Komponenten installieren, siehe hier.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Meine Drag'n'Drop-Funktion ergänzen

  Alt 1. Apr 2010, 16:51
Will ich vermeiden, weiß sowieso nicht wie man sie richtig einsetzen muss.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Meine Drag'n'Drop-Funktion ergänzen

  Alt 1. Apr 2010, 17:54
Hab jetzt ein Problem, welches ich nicht lösen kann.
Und zwar ich lade die Daten per Import und will auch per Drag'n'Drop, siehe Code.

Bei der Lösung per Drag'n'Drop bekomme ich als die Fehlermeldung
Zitat:
Listenindex überschreitet das Maximum(1)
Was kann das den sein? Beim Importieren bekomm ich die aber nicht.

Delphi-Quellcode:
//Import
procedure TForm1.ChannelListImport1Click(Sender: TObject);
var i: Integer;
    List : TStringList;
    List2: TStringList;
begin
if OpenDialog1.Execute then
begin
  List:=TStringList.Create;
  try
    List.LoadFromFile(OpenDialog1.FileName);

    if ListBox1.Count<>0 then
    begin
    if MessageDlg(_('Retain existing radio stations list?'), mtInformation, [mbYes, mbNo], 0) = mrNo then
    begin
    ListBox1.Clear;
    ListBox2.Clear;
    ListBox3.Clear;
    ListBox4.Clear;
    end;
    end;

    if ExtractFileExt(OpenDialog1.Filename)='.crpthen
    begin
    for i:=0 to List.Count-1 do
    begin
    List2:=Explode('<>', List[i]);
    ListBox1.Items.Insert(i, List2[1]);
    ListBox2.Items.Insert(i, List2[2]);
    ListBox3.Items.Insert(i, List2[3]);
    ListBox4.Items.Insert(i, List2[4]);
    List2.Free;
    end;
    end else
        begin
        for i:=0 to List.Count-1 do
        begin
        List2:=Explode('=', List[i]);
        ListBox1.Items.Insert(i, List2[1]);
        ListBox2.Items.Insert(i, List2[2]);
        ListBox3.Items.Insert(i, List2[3]);
        ListBox4.Items.Insert(i, List2[4]);
        List2.Free;
        end;
        end;

  finally
    List.Free;
  end;
end;
end;
Delphi-Quellcode:
//Und hier per Drag'n'Drop
procedure TForm1.WMDROPFILES(var Msg: TMessage);
var j, count: Cardinal;
    Buffer: String;
    i: Integer;
    List : TStringList;
    List2: TStringList;
begin
  inherited;
  Buffer := '';
  count := DragQueryFile(Msg.WParam, $FFFFFFFF, nil, 0);
  for j := 0 to count - 1 do
    begin
      SetLength(Buffer, DragQueryFile(Msg.WParam, j, nil, 0) + 1);
      DragQueryFile(Msg.WParam, j, @Buffer[1], Length(Buffer));
    end;

//Laden
List:=TStringList.Create;
  try
    List.LoadFromFile(Buffer);

    if ListBox1.Count<>0 then
    begin
    if MessageDlg(_('Retain existing radio stations list?'), mtInformation, [mbYes, mbNo], 0) = mrNo then
    begin
    ListBox1.Clear;
    ListBox2.Clear;
    ListBox3.Clear;
    ListBox4.Clear;
    end;
    end;

    if ExtractFileExt(Buffer)='.crpthen
    begin
    showmessage(inttostr(ListBox1.Count));
    for i:=0 to List.Count-1 do
    begin
    showmessage(inttostr(ListBox1.Count));
    List2:=Explode('<>', List[i]);
    ListBox1.Items.Insert(i, List2[1]);
    ListBox2.Items.Insert(i, List2[2]);
    ListBox3.Items.Insert(i, List2[3]);
    ListBox4.Items.Insert(i, List2[4]);
    List2.Free;
    end;
    end else
        begin
        for i:=0 to List.Count-1 do
        begin
        List2:=Explode('=', List[i]);
        ListBox1.Items.Insert(i, List2[1]);
        ListBox2.Items.Insert(i, List2[2]);
        ListBox3.Items.Insert(i, List2[3]);
        ListBox4.Items.Insert(i, List2[4]);
        List2.Free;
        end;
        end;

  finally
    List.Free;
  end;
end;
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    


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 13:01 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