![]() |
Drag and Drop
Abend DP
Also ich habe theoretisch ein ganz einfaches Problem. Ich will in einem Programm von mir per Drag & Drop StringgridZellen in Listboxen überschreiben. Soweit kein Problem. Aber jetz wollte ich dass ganze kenntlich machen. D.h. ich wollte bei MouseDown den Cursor auf crDrag setzen und ei MouseUp wieder auf Normal. Delphi mag dass aber nicht. Der verändert den Cursor erst bei MouseUp, auch wenn es in MouseDown steht. Schonmal Danke im Voraus |
Re: Drag and Drop
Hallo,
wie sieht dein vorgehen genau aus? hast du Dragmode auf automatic? Gruß Frank |
Re: Drag and Drop
Nein ich hab Dragmode auf Manuel
Also ich hab ein Stringgrid, in dem Stehen in einer Zeile, erst ein Name und dann noch diverse Zellen mit Anderen Daten. Das heißt, ich hab Rowselect auf true, falls das was ändert Wie das mit dem Dragmode funktionieren soll, hab ich nun leider überhaupt keine Ahnung, des hab ich bisher noch nie benutzt, sorry. Hab des jetz allerdings mal ausprobiert und: Der Cursor ändert sich beim Drücken, Aber iwie egal was ich mach immer zu diesem Fehler/Geht-nicht Kreis Wenn Delphi des iwie automatisch könnte, wär mir auch recht, aber ich will ja nur den Inhalt einer einzelnen Zelle in einer ausgewählten Reihe in RichEdits einfügen. (Nicht wie oben geschrieben Listboxen, ich hab da was geändert). mfg |
Re: Drag and Drop
Zitat:
Wenn du bei der Komponente in OnDragOver Accept auf True setzt, dann signalisiert Delphi mit dem entsprechenden Cursor, dass man dort das Gezogene fallen lassen könnte. |
Re: Drag and Drop
probier mal folgendes:
Ereignis dragover im richedit, damit wird das drag von einem Grid akzeptiert
Delphi-Quellcode:
und
procedure TForm1.RichEdit2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean); begin accept:=source is TStringGrid; end; und im Dragdrop beim richeidt
Delphi-Quellcode:
im grid reicht ein (bei dragmode=dmmanual):
procedure TForm1.RichEdit2DragDrop(Sender, Source: TObject; X, Y: Integer);
Var grid:TStringGrid; Richedit:TRichEdit; begin if Source is TStringGrid then begin grid:=source as TStringGrid; Richedit:=sender as TRichEdit; Richedit.SelText := grid.Cells[grid.col,grid.row]; //mußt du selber anpassen end; end;
Delphi-Quellcode:
mit dmautomatic könntest du nix selektieren, sorry, war auf eine Listbox aus. beim Grid macht dmautomatic nich viel Sinn.
procedure TForm1.StringGrid3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin TStringGrid(Sender).BeginDrag(false,10); end; Gruß Frank |
Re: Drag and Drop
Hey, Danke
Funzt wunderschön. :thumb: (Und wieder einmal das Geheimnis um 2 weitere ominöse Funktionen im Objektinspektor gelüftet) Dann mmach ich mich mal an die Arbeit :coder: mfg Anonymos |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 Uhr. |
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