AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TMS AdvStringGrid Ole DragDrop von Zelle zu Zelle geht nicht
Thema durchsuchen
Ansicht
Themen-Optionen

TMS AdvStringGrid Ole DragDrop von Zelle zu Zelle geht nicht

Ein Thema von Kostas · begonnen am 20. Jan 2010 · letzter Beitrag vom 20. Jan 2010
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

TMS AdvStringGrid Ole DragDrop von Zelle zu Zelle geht nicht

  Alt 20. Jan 2010, 10:01
Hallo Zusammen,

ich habe nach Handbuch versucht OleDragDrop zu implementieren, doch leider ohne Erfolg.
Ich vermute das ich irgend eine Eigenschaft im Eigenschafteninspektor verstellt habe
und es deshalb nicht funktioniert.

Wenn ich die Doku richtig gelesen habe, funktioniert DragDrop indem:
Unter Eigenschaften DragDropSettings eingestellt ist:
OleAcceptFiles, OleAcceptText, OleAcceptURLs, OleDropSource und OleDropTarget.
ShowCells kann nicht gesetzt werden. Weis der Geier warum nicht.

-OnOleDrag Allow wird auf true gesetzt wenn DragDrop erlaubt ist.
-OnDragStart zwischenspeichern der Quellkomponente aus dieser DragDrop initiiert wurde.
-OnDragOver wird gefeuert wenn die Zielkomponente das Grid ist und gibt die Ziel-Zelle an fürs Drop
-OnDragStop löscht die gemerkte Quellkomponente nach dem Drop
-OnOleDropCol wird gefeuert wenn das Drop durchgeführt werden soll und liefert die Zelle

Bei mir wird OnOleDrag und OleDragStart gefuert, jedoch alle anderen Events nicht.

Delphi-Quellcode:

procedure Tfr1.tg1OleDrag(Sender: TObject;
  ARow, ACol: Integer; data: String; var Allow: Boolean);
begin
  inherited;
  Allow := ((ARow>0) and (ACol>0) and IsControlKeyPressed);
end;

procedure Tfr1.tg1OleDragStart(Sender: TObject;
  ARow, ACol: Integer);
begin
  inherited;
  ddsource := Sender;
end;

procedure Tfr1.tg1OleDragOver(Sender: TObject;
  ARow, ACol: Integer; var Allow: Boolean);
begin
  inherited;
  Allow := true; //(ddsource = Sender);
  if Allow then
  begin
    sb1.Panels[3].caption := Format('Row%d Col%d',[ARow, ACol]);
  end;{if}

end;

procedure Tfr1.tg1OleDragStop(Sender: TObject;
  OLEEffect: Integer);
begin
  inherited;
  ddsource := nil;
end;

procedure Tfr1.tg1OleDropCol(Sender: TObject;
  ARow, ACol, DropCol: Integer);
begin
  inherited;
  sb1.Panels[4].caption := Format('Row%d Col%d',[ARow, ACol]);
end;
hat jemand eine Idee?

Gruß Kostas
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#2

Re: TMS AdvStringGrid Ole DragDrop von Zelle zu Zelle geht n

  Alt 20. Jan 2010, 12:08
Stimmt.

Das liegt aber wohl an Problemen mit der Basiskomponente aus der VCL Grid bzw. TStringgrid.
Ich habe mal sehr viele Klimmzüge gemacht und es dann auch nur halb hinbekommen.

Zwischenzeitlich habe ich alles was auf TGrid basiert, in die Wüste geschickt.

Ich verwende als Grid TAdvOutlookList.
Bei dieser Komponente funktioniert eigentlich alles, so wie es soll. Ich beine auch, das diese
Komponente eleganter aussieht und mehr Möglichkeiten bietet, wenn es n ur um die tabellarische Datenverwaltung geht.

Gruß
Peter
  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 22:34 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