AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?

Ein Thema von EccoBravo · begonnen am 6. Sep 2007 · letzter Beitrag vom 14. Sep 2007
Antwort Antwort
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#1

Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?

  Alt 6. Sep 2007, 15:02
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.
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#2

Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?

  Alt 6. Sep 2007, 20:39
Hi.

Du musst die DragDrop-Handler der Edit-Komponente und die Mousedown-Komponente des Stringgrids nehmen.
Delphi-Quellcode:
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;
Damit sollte es gehen.
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#3

Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?

  Alt 13. Sep 2007, 18:02
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.
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#4

Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?

  Alt 14. Sep 2007, 12:57
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;
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#5

Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?

  Alt 14. Sep 2007, 13:40
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.
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#6

Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?

  Alt 14. Sep 2007, 13:58
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;
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#7

Re: Zellwert aus TStringGrid mit DragDrop in ein TEdit -Wie?

  Alt 14. Sep 2007, 14:36
Hallo Flips,

hab' vielen Dank, es geht,
Habe dadurch einen schön kurzen Code

Ein schönes Wochenende

E. B.
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:01 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