Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Mehrer Zellen vom Stringgrid kopieren (https://www.delphipraxis.net/69734-mehrer-zellen-vom-stringgrid-kopieren.html)

marabu 20. Mai 2006 15:45

Re: Mehrer Zellen vom Stringgrid kopieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi folks,

hatte ich doch glatt die Unterstützung für die Maus vergessen. Im Anhang eine erweiterte Demo bei der auch die Selektion per Maus möglich ist.

Grüße vom marabu

tom_po 20. Mai 2006 20:02

Re: Mehrer Zellen vom Stringgrid kopieren
 
super marabu, es klappt mit der maus, musste nur noch bei stringgrid die 1 anhängen bei mir:

Delphi-Quellcode:
procedure TDemoForm.StringGridMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  MouseDown := true;
  with StringGrid[b]1[/b] do
    MouseSelection.TopLeft := MouseCoord(X, Y);
end;

procedure TDemoForm.StringGridMouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
  if MouseDown then
    with StringGrid[b]1[/b] do
    begin
      MouseSelection.BottomRight := MouseCoord(X, Y);
      Selection := MouseSelection;
    end;
end;

procedure TDemoForm.StringGridMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  MouseDown := false;
end;
jetzt fehlt nur noch, dass man mit der rechten maustaste das copy und einfügen machen könnte.
aber das ist wohl mit delphi nicht möglich, oder??

marabu 20. Mai 2006 20:16

Re: Mehrer Zellen vom Stringgrid kopieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Na gut - dann noch eine weiter aufgebohrte Version der Demo.

marabu

tom_po 20. Mai 2006 23:42

Re: Mehrer Zellen vom Stringgrid kopieren
 
super, jetzt hab ich's so, wie ich es gewohnt bin. Allerdings konnte ich bei Shortcut nur das Deutsche auswählen, da ich ja deutsch. Delphi habe, wollte es aber gerne auf portugiesisch, z.B. Umschalt-Taste...

aber ok, ich habe jetzt Strg+C und Strg+P gemacht

ein ganz grosses Dankeschön an dich Marabu für deine so grosszügige Hilfe...

tom_po 20. Mai 2006 23:50

Re: Mehrer Zellen vom Stringgrid kopieren
 
ein grosser Dank an Dich Marabu für deine grosszügige Hilfe...jetzt wird es so, wie ich es will.

Allerdings kann ich nur zusammenhängende Zellen auswählen..

wenn ich jetzt dazwischen welche auslassen will (die ich nicht kopieren will) kann ich z.B. im Excel mit Strg-Taste halten und dann weiter unten weiter markieren.

Das andere wäre noch, im popup-menu das Löschen der markierten Zellen (doGriddelete) einzufügen, wie wäre da die Prozedure?

marabu 21. Mai 2006 16:54

Re: Mehrer Zellen vom Stringgrid kopieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.

Zitat:

Zitat von tom_po
Allerdings kann ich nur zusammenhängende Zellen auswählen..

Solange wir mit der eingebauten StringGrid.Selection arbeiten wird sich auch nichts daran ändern. Ich kenne jetzt Excel nicht so gut, aber ganz allgemein müssen da eine Reihe von Festlegungen getroffen werden. Sollen wirklich beliebige nicht zusammenhängende Bereiche selektiert werden können, oder sollen nur bestimmte Zellen eines Vektors bzw. Vektoren einer Matrix ausgenommen werden können? Die Implementierung für den nicht allgemeinen Fall stelle ich mir nicht sonderlich schwer vor, aber die Bedienung durch den Benutzer wird dadurch nicht unbedingt leichter. Über den allgemeinen Fall müsste ich nachdenken, aber das ist für mich ein Problem sehr niedriger Priorität.

Zitat:

Zitat von tom_po
Das andere wäre noch, im popup-menu das Löschen der markierten Zellen (doGriddelete) einzufügen, wie wäre da die Prozedure?

Ich habe die Demo nochmals erweitert - ein paar Feinheiten und ein paar Funktionalitäten sind dazu gekommen. Außerdem habe ich aufgrund der gewachsenen Zeilenzahl den Code neu organisiert.

Grüße vom marabu

tom_po 21. Mai 2006 19:28

Re: Mehrer Zellen vom Stringgrid kopieren
 
so langsam bekomme ich ein perfektes Grid, nochmals vielen Dank, marabu

das Löschen und Einfügen werde ich bei meiner Applikation nicht anwenden, da ich Labels ausdrucke und das Blatt immer genau 40 Grid-Zeilen haben muss.

Aber deine grid-demo kann ich bestimmt mit dem Einfügen und Löschen von Zeilen und Spalten sicher bald mal verwenden.

tom_po 23. Mai 2006 08:10

Re: Mehrer Zellen vom Stringgrid kopieren
 
Ich habe doch noch 2 kleine Fragen:

1. wenn ich die Zellen mit der linken Maustaste markiere und ich will weiter nach unten fahren (Grid hat mehr Zeilen, als die Form zeigt), geht das "Ziehen" nach unten nicht....Cursor bleibt fix in der letzten sichtbaren Zeile...

2. Ich dachte wenn ich den Bereich markiere und dann kopieren auswähle, seien die Daten zwischengespeichert und ich könnte sie auch z.B. in mein Notepad ziehen, geht aber nicht....

marabu 23. Mai 2006 09:58

Re: Mehrer Zellen vom Stringgrid kopieren
 
Zitat:

Zitat von tom_po
wenn ich die Zellen mit der linken Maustaste markiere und ich will weiter nach unten fahren (Grid hat mehr Zeilen, als die Form zeigt), geht das "Ziehen" nach unten nicht....Cursor bleibt fix in der letzten sichtbaren Zeile...

Ist nicht implementiert. Dazu müsstest du im event handler für OnMouseMove() prüfen ob du mit gedrückter Maustaste in den Randbereich des Grid steuerst und dann müsstest du das Grid entsprechend rollen.

Zitat:

Zitat von tom_po
Ich dachte wenn ich den Bereich markiere und dann kopieren auswähle, seien die Daten zwischengespeichert und ich könnte sie auch z.B. in mein Notepad ziehen, geht aber nicht....

Drag und Drop zwischen verschiedenen Programmen ist auch nicht implementiert.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz