Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi dragacceptfiles verwirrt mich... (https://www.delphipraxis.net/116529-dragacceptfiles-verwirrt-mich.html)

SirThornberry 4. Jul 2008 08:59

Re: dragacceptfiles verwirrt mich...
 
was ja auch klar ist da deine Dropfilesmethode eine Messagehandler des Forms ist und nicht der Messagehandler deiner Komponente.

itashadow 4. Jul 2008 09:12

Re: dragacceptfiles verwirrt mich...
 
und wie änder ich das?

SirThornberry 4. Jul 2008 10:04

Re: dragacceptfiles verwirrt mich...
 
Hier mal Anhand einer Listbox wie man das machen kann:
Delphi-Quellcode:
unit Unit1;

interface

uses
  [...]

type
  TListbox = class(StdCtrls.TListBox)
  private
    fOnDropFiles: TWndMethod;
    procedure WMDROPFILES(var Msg: TMessage); Message WM_DROPFILES;
  public
    property OnDropFiles: TWndMethod read fOnDropFiles write fOnDropFiles;
  end;

  TForm1 = class(TForm)
[...]
implementation
[...]
{ TListbox }

procedure TListbox.WMDROPFILES(var Msg: TMessage);
begin
  if Assigned(fOnDropFiles) then
    fOnDropFiles(Msg)
  else
    inherited;
end;
Und schon hat deine Listbox ein Event OnDropFiles. Diesem kannst du dann deine bisherige Methode zuweisen.
(Ja ich weiß man kann es auch direkt in die WMDropFiles-methode packen aber das entspricht nicht der Objectorientierung wenn man da mit anderen Objecten rumhantiert die Global irgendwo liegen)

xaromz 4. Jul 2008 10:26

Re: dragacceptfiles verwirrt mich...
 
Hallo,

wenn Du keine Lust hast, Standardkomponenten abzuleiten, kannst Du auch eine Komponente nehmen, beispielsweise meinen ShellDropper.

Gruß
xaomz

itashadow 4. Jul 2008 11:05

Re: dragacceptfiles verwirrt mich...
 
juhu es läuft

danke SirThornberry

ich hatte es zwar schonmal so wie du es gepostet hast

Allerdings hat er das WMDropfiles nicht mitkompiliert.
Jetzt hab ich die codeoptimierung ausgemacht und neukompiliert und es funktioniert.
Codeoptimierung wieder rein und es geht immernoch.

das einzige was ich noch nicht nachvollziehen kann ist:
Delphi-Quellcode:
if dateiname[dateilaenge-3]+dateiname[dateilaenge-2]+dateiname[dateilaenge-1]+dateiname[dateilaenge] = '.txt' then
wenn ich bei der zeile F8 drücke
springt er erst ins END der funktion und führt danach erst den nachfolgenden code aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 Uhr.
Seite 2 von 2     12   

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