Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Meine Drag'n'Drop-Funktion ergänzen (https://www.delphipraxis.net/149884-meine-dragndrop-funktion-ergaenzen.html)

DeddyH 1. Apr 2010 22:07

Re: Meine Drag'n'Drop-Funktion ergänzen
 
Hast Du es mal ausprobiert? Gab es einen Fehler?

AlexII 1. Apr 2010 22:09

Re: Meine Drag'n'Drop-Funktion ergänzen
 
Irgendwie stehe ich auf dem Schlauch, ist wahrscheinlich zu spät? :roteyes:
Ich verstehe den Sinn nicht... verzeih... muss mal morgen schauen.

DeddyH 1. Apr 2010 22:17

Re: Meine Drag'n'Drop-Funktion ergänzen
 
Wenn Du den Code ausprobierst, solltest Du eine Fehlermeldung "Listenindex überschreitet das Maximum(1)" bekommen. Der Grund liegt darin, dass Stringlisten 0-indiziert sind, d.h. das erste Element hat den Index 0, das zweite Index 1 usw. Ich habe in meinem Beispiel nur eine Zeile eingefügt und anschließend versucht, eine 2. Zeile auszulesen, was diesen Fehler verursacht. Deshalb habe ich Dir weiter oben geraten, zuerst zu prüfen, ob auch genügend Zeilen vorhanden sind, bevor Du auf diese mit hartkodierten Indizes zugreifen willst.

AlexII 2. Apr 2010 12:51

Re: Meine Drag'n'Drop-Funktion ergänzen
 
Hab heute wieder ein Problemchen gefunden, wenn ich

Delphi-Quellcode:
DragAcceptFiles(Form1.Handle, True);
durch
Delphi-Quellcode:
DragAcceptFiles(ListBox1.Handle, True);
ersetze funktioniert mein ganzer Code nicht. :wall: Wer kann mir sagen wieso?

daywalker9 2. Apr 2010 13:02

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

Syntax

Copy
VOID DragAcceptFiles(
HWND hWnd,
BOOL fAccept
);

Parameters

hWnd
HWND
The identifier of the window that is registering whether it will accept dropped files.

fAccept
BOOL
A value that indicates if the window identified by the hWnd parameter accepts dropped files. This value is TRUE to accept dropped files or FALSE to discontinue accepting dropped files.

AlexII 2. Apr 2010 13:08

Re: Meine Drag'n'Drop-Funktion ergänzen
 
Also in diesem Tutorial hier ist es genau so gezeigt, also
Zitat:

DragAcceptFiles(ListBox1.Handle, True);
und bei mir funkt es nicht. :roteyes:

DeddyH 2. Apr 2010 13:21

Re: Meine Drag'n'Drop-Funktion ergänzen
 
Bei mir schon. Wie sieht Dein Code denn jetzt aus (die relevanten Stellen)?

AlexII 2. Apr 2010 13:23

Re: Meine Drag'n'Drop-Funktion ergänzen
 
Delphi-Quellcode:
procedure TForm1.WMDROPFILES(var Msg: TMessage);
var j, zaehler: Cardinal;
    Buffer, Extension: String;
    i: Integer;
    List : TStringList;
    List2: TStringList;
begin
  inherited;
  Buffer := '';
  zaehler := DragQueryFile(Msg.WParam, $FFFFFFFF, nil, 0);
  for j := 0 to zaehler - 1 do
    begin
      SetLength(Buffer, DragQueryFile(Msg.WParam, j, nil, 0) + 1);
      DragQueryFile(Msg.WParam, j, @Buffer[1], Length(Buffer));
      Extension := ExtractFileExt(Buffer);
    end;
  DragFinish(Msg.WParam);

//Laden
if AnsiSameText(Trim(ExtractFileExt(Buffer)), '.crp') or AnsiSameText(Trim(ExtractFileExt(Buffer)), '.ccr') then
begin
List:=TStringList.Create;
  try
    List.LoadFromFile(Buffer);

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

    if AnsiSameText(Trim(ExtractFileExt(Buffer)), '.crp') then
    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;

DeddyH 2. Apr 2010 13:30

Re: Meine Drag'n'Drop-Funktion ergänzen
 
Und das FormCreate? Da hast Du nur Form1.Handle durch ListBox1.Handle ersetzt oder noch andere Änderungen?

AlexII 2. Apr 2010 13:31

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

Zitat von DeddyH
Und das FormCreate? Da hast Du nur Form1.Handle durch ListBox1.Handle ersetzt oder noch andere Änderungen?

Ja genau, nur ersetzt, mehr nix

Delphi-Quellcode:
DragAcceptFiles(ListBox1.Handle, True);


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr.
Seite 5 von 6   « Erste     345 6      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz