AGB  ·  Datenschutz  ·  Impressum  







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

Bei DragMode dmAutomatic keine Auswahl möglich

Ein Thema von Luckie · begonnen am 21. Nov 2006 · letzter Beitrag vom 21. Nov 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Bei DragMode dmAutomatic keine Auswahl möglich

  Alt 21. Nov 2006, 14:40
Ich benutze die Image Komponenten von ://www.hicomponents.com

Dort gibt es eine Thumbnail Komponente. Jetzt versuche ich ein Thumbnail aus der Thumbnail Komponente auf ein Image zu ziehen. Das klappt auch ganz gut mit dem DragMode dmAutomatic. Nur ist es leider so, dass wenn der DragMode auf dmAutomatic steht man keine Thumbnails mehr auswählen kann. nehme ich den DragMode dmManual funktioniert mein Drag and Drop nicht mehr:

Wie realisiere ich also Drag and Drop, wenn die Komponente den DragMode dmManual hat?

Mein bisheriger Code für dmAutomatic sieht so aus:

Delphi-Quellcode:
procedure TForm2.ImageEnView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
  idx: Integer;
  Filename: String;
begin
  idx := ImageEnMView1.SelectedImage;
  Filename := ImageEnMView1.ImageFileName[idx];
  if fileexists(filename) then
  begin
    ImageEnView1.IO.LoadFromFileJpeg(Filename);
    ImageEnMView1.DragMode := dmManual;
  end;
end;

procedure TForm2.ImageEnView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
  If (Source is TImageEnMView) then
    Accept := True;
end;
[edit=SirThornberry]Delphi-Tags korrigiert - Mfg, SirThornberry[/edit]
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Bei DragMode dmAutomatic keine Auswahl möglich

  Alt 21. Nov 2006, 14:43
Ich hab in dem Fall dmManual gewählt hab im MouseDown die Position in einem Private-Field gespeichert und im MouseMove (wenn Maus gedrückt war) geprüft ob die Mouse weit genug bewegt wurde. War dem der Fall hab ich das Drag & Drop manuell gestartet.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Bei DragMode dmAutomatic keine Auswahl möglich

  Alt 21. Nov 2006, 14:45
Zitat von SirThornberry:
das Drag & Drop manuell gestartet.
Und wie genau macht man das? Wo muss ich da noch welchen Code ergänzen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Bei DragMode dmAutomatic keine Auswahl möglich

  Alt 21. Nov 2006, 14:49
mit der Methode "BeginDrag" kann man das DragDrop der entsprechenden Komponente starten. Ich hab das im OnMouseMove aufgerufen wenn die Maus weit genug vom "Mouse-Down-Punkt" weg bewegt wurde.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Bei DragMode dmAutomatic keine Auswahl möglich

  Alt 21. Nov 2006, 14:57
Danke funktioniert.

Aber man muss nicht selber rechnen:
procedure BeginDrag(Immediate: Boolean; Threshold: Integer);
Zitat:
If Immediate is false, the mouse pointer doesn't change to the value of the DragCursor property and dragging doesn't begin until the user moves the mouse pointer the number of pixels specified by the Threshold parameter.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Bei DragMode dmAutomatic keine Auswahl möglich

  Alt 21. Nov 2006, 15:01
Die Hilfe ist da etwas missverständlicher. Sobald das BeginDrag aufgerufen wird, wird die Maus frei gegebe so das kein OnMouseMove etc. mehr ausgelöst wird. Lediglich der Mauszeiger, OnDragOver etc. wird noch nicht ausgelöst. Es wird also sofort auch ein OnMouseUp und ein OnClick ausgelöst obwohl man noch im OnMouseDown ist und dort BeginDrag aufruft.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Bei DragMode dmAutomatic keine Auswahl möglich

  Alt 21. Nov 2006, 15:08
Jedenfalls funktioniert es so, wie es soll.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Bei DragMode dmAutomatic keine Auswahl möglich

  Alt 21. Nov 2006, 15:14
dann geschieht die Auswohl wohl im MouseDown. Wenn DragMode = dmAutomatic eingestellt ist wird nicht mal mehr ein MouseDown ausgelöst
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Bei DragMode dmAutomatic keine Auswahl möglich

  Alt 21. Nov 2006, 15:16
So sieht es jetzt aus:
Delphi-Quellcode:
procedure TForm2.ImageEnMView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  MouseDown := True;
end;

procedure TForm2.ImageEnMView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if MouseDown then
    ImageEnMView1.BeginDrag(False, 10);
end;

procedure TForm2.ImageEnMView1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  MouseDown := False;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Bei DragMode dmAutomatic keine Auswahl möglich

  Alt 21. Nov 2006, 15:17
Wenn du es so hast kannst du das BeginDrag auch gleich ins OnMouseDown packen, das müsste aufs gleicher heraus kommen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:11 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