![]() |
TMS TAdvStringGrid mehrere Zeilen markieren mit der Maus
Hallo Zusammen,
TMS TAdvStringGrid Version 4.6.0.0 das Problem vorab: wenn ich mit der linken Maus auf die erste Zeile klicke, die linke Maustaste gedruckt halte und runter ziehe so das weitere Zeilen markiert werden, so werden sie zwar als Markiert dargestellt, sind jedoch nicht markiert im Sinne von tgGrid.RowSelect[r]:=true; Tippe ich jedoch jede einzelne Zeile mit gedruckert Strg-Taste, so werden sie markiert dargestellt und sind auch aufgelistet in tgGrid.RowSelect[r]. Das Grid besteht aus drei Spalten und mehreren Zeilen. Hab RowSelect eingestellt, so dass die komplette Zeile markiert ist, beim anklicken irgend einer Zelle. Ich mochte schnell mehrere Zeilen marktieren, und Programmtechnisch die markierten Zeilen nach einer Aktion einzeln wieder demarkieren. Das geht mit tgGrid.RowSelect[RowNo]:=false; Allerdings nicht wenn ich die Zeilen nicht einzeln mit gedruckert Strg-Taste markiere. Hat jemand eine Idee? Gruß Kostas |
Re: TMS TAdvStringGrid mehrere Zeilen markieren mit der Maus
Versuchs mal mit "SelectedRowCount" und "SelectedRow[x]" also sowas wie
Delphi-Quellcode:
for i := 0 to grid.selectedrowcount -1 do begin
grid.cells[0, grid.selectedrow[i]] := '->'; end; |
Re: TMS TAdvStringGrid mehrere Zeilen markieren mit der Maus
Zitat:
Wie gesagt, wenn ich die Zeilen mit gedruckter Strg-Taste markiere ist es kein Problem die Selektierten Zeilen einzeln wieder abzuwehlen. Interessant ist, ich markiere fünf Rows durch drüberziehen: MessageDlg(IntToStr(Grid.SelectedRowCount), mtWarning, [mbOK], 0); >>zeigt 5 an Grid.ClearRowSelect; MessageDlg(IntToStr(Grid.SelectedRowCount), mtWarning, [mbOK], 0); >>zeigt 0 an Die Rows sind jedoch optisch immer noch markiert. Also sind die Rows irgend wie markiert und doch nicht. :-( Mache ich das gleiche indem ich die fünf Rows einzel markiere mit gedrucker Strg-Taste sind die Rows danach auch demarkiert. Hat jemand eine Idee? Gruß Kostas |
Re: TMS TAdvStringGrid mehrere Zeilen markieren mit der Maus
Zitat:
Klappt das? gruss |
Re: TMS TAdvStringGrid mehrere Zeilen markieren mit der Maus
Zitat:
Delphi-Quellcode:
Die Rows sind immer noch "markiert"
MessageDlg(IntToStr(grid.SelectedRowCount), mtWarning, [mbOK], 0);
grid.ClearRowSelect; grid.invalidate; MessageDlg(IntToStr(grid.SelectedRowCount), mtWarning, [mbOK], 0); Gruß Kostas |
Re: TMS TAdvStringGrid mehrere Zeilen markieren mit der Maus
Vielleicht hilf das hier.
Die Selektierung läst sich folgendermassen aufheben:
Delphi-Quellcode:
procedure TForm1.Unselect; var t : tgridrect; begin t.Left := MyGrd.col; t.Right := MyGrd.col; t.top := MyGrd.row; t.bottom := MyGrd.row; MyGrd.Selection := t; end; Danach ist nur noch die vorher angewählte Zelle selektiert. |
Re: TMS TAdvStringGrid mehrere Zeilen markieren mit der Maus
Zitat:
ich habe das Problem lösen können. :-) Es liegt an der Eigenschaft Look. Office 2007, Windows Vista und Windows 7 entfernen die Auswahl nicht! Alle andere Looks gehen wie z.B.: Windows XP Mann sucht sich einen Wolf und dann ist es so etwas Super Gemeines. Ob es jetzt ein Bug ist ober by Design der Komponente ist mich nicht klar. Auf jeden Fall Fuck auf Vista und nehme XP Themes.
Delphi-Quellcode:
Gruß kostas
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer; begin Memo1.lines.clear; for i := 1 to Grid.RowCount-1 do begin if Grid.RowSelect[i] then begin Grid.RowSelect[i]:=false; Memo1.lines.add(Grid.cells[1,i]); end;{if} end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 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