![]() |
Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?
Hallo,
ich will endlich meine Programme mit Drag&Drop animieren. Ich habe vor einen Wert einer beliebigen Zelle eines TStringGrid mittels Drag&Drop in ein TEdit zu ziehen. Wie geht das? Vielen Dank E. B. |
Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?
Hi.
Du musst die DragDrop-Handler der Edit-Komponente und die Mousedown-Komponente des Stringgrids nehmen.
Delphi-Quellcode:
Damit sollte es gehen.
procedure TForm3.Edit1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin (Sender as TEdit).Text := (Source as TStringGrid).Cells[(Source as TStringGrid).Col,(Source as TStringGrid).Row]; end; procedure TForm3.Edit1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := (Source is TStringGrid); end; procedure TForm3.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var acol,arow:integer; begin if Button = mbLeft then StringGrid1.MouseToCell(X,Y,acol,arow); if (ACol <> -1) and (ARow <> -1) then Stringgrid1.BeginDrag(True); end; |
Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?
Hallo Philipp
habe vielen Dank bin jetzt erst dazugekommen Deinen Code auszuprobieren. Was muss ich tun, wenn ich auf irgend eine Zelle einer Zeile zum Drag&Drop gehe, und nach drag&Drop immer nur den Wert der 3. Zelle dieser Zeile übertragen möchte? Vielen Dank E. B. |
Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?
Hi,
also ich verstehe das so das du immer nur den Wert der 3. Zelle der Zeile draggen willst, auch wenn in der Zeile das Drag&Drop beispielsweise über der 2. Zelle der Zeile begonnen wurde. Dafür brauchst du nur die Nummer zu ändern:
Delphi-Quellcode:
procedure TForm3.Edit1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin (Sender as TEdit).Text := (Source as TStringGrid).Cells[3,(Source as TStringGrid).Row]; //Die 3 steht für die 3. Zelle der Zeile end; |
Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?
Wunderbar und vielen Dank, Flips.
Und nun die letzte Frage, Wenn ich von StringGrid1 die 3. Zelle aus der dort gewählten Zeile in das StringGrid2 in die 2. Zelle der da gewählte Zeile Drag&Droppen möchte. Wenn ich das weiss bin ich wunschlos... Vielen Dank E. B. |
Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?
Delphi-Quellcode:
;-)
procedure TForm3.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var acol,arow:integer; begin if Button = mbLeft then StringGrid1.MouseToCell(X,Y,acol,arow); if (ACol <> -1) and (ARow <> -1) then Stringgrid1.BeginDrag(True); end; procedure TForm3.StringGrid2DragDrop(Sender, Source: TObject; X, Y: Integer); var aCol, aRow : integer; begin (Sender as TStringGrid).MouseToCell(X,Y,aCol,ARow); (Sender as TStringGrid).Cells[2,ARow] := (Source as TStringGrid).Cells[3,(Source as TStringGrid).Row]; end; procedure TForm3.StringGrid2DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := (Source is TStringGrid); end; |
Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?
Hallo Flips,
hab' vielen Dank, es geht, Habe dadurch einen schön kurzen Code Ein schönes Wochenende E. B. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:51 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