![]() |
Im StringGrind nur ganze Zeilen markieren
Hallo Leute!
Ja, wie stelle ich das an? ich will , dass wenn man in der Tabelle auf eine Zelle klickt, die gesamte Zeile markiert wird. ... Grüße, dopeline :dancer: |
Das StringGrid besitzt unter "Options" die Eigenschaft "goRowSelect". Setze die auf true und Du hast es!
|
Danke!
dopeline :dancer: |
bjuer,
die hab ich in delphihelp gefunden :
Code:
vielleichtist das was du suchst, hatte leider noch nicht die zeit zum testen!
TCustomGrid.Selection
Indicates the boundaries of the current selection. type TGridCoord = record X: Longint; Y: Longint; end; type TGridRect = record caseIntegerof 0: (Left, Top, Right, Bottom: Longint); 1: (TopLeft, BottomRight: TGridCoord); end; property Selection: TGridRect; Description Set Selection to select a range of cells in the grid. Selection can either represent the first column, first row, last column and last row in the grid, or the row and column coordinates of the upper left and bottom right cells in the selected region. Selection can only indicate more than one cell when Options includes goRangeSelect. cu :witch: [Edit=Sakura]BBCode aktiviert :!:[/Edit] |
ach ja! dann hab ich noch ne frage: wenn ich eine zeile in der tabelle markiere, und anschließend zum darüberliegenden Edit (zu suchen) gehe, dort was eintrage, markiere und versuche zu löschen, "denkt" er ich will den tabelleneintrag löschen (weil der immernoch markiert ist). wie kann ich dieses problem beheben?
|
Wie sieht denn der Code zum Löschen aus?
|
Ist kein code! ich markier das geschriebene und drücke auf entfernen.
da aber die eine zeile noch markiert ist (und ich festgelegt habe, dass Entf den eintrag in der Tabelle löscht) versucht er die Tabellenzeile zu löschen. man müsste einstellen, dass, wenn ich woanders als die tabelle hinklicke die tabelle demarkiert wird. (oder?) dopeline |
Du musst doch einen Code haben, der beim Betätigen der Entf-Taste die Zeile im StringGrid löscht! Da ich vermute, dass es sich um ein OnKeyPress-Ereignis handelt, könntest Du dort über den Sender eine Unterscheidung treffen, ob die Zeile im Grid gelöscht werden soll oder nicht. Irgendwie so:
Delphi-Quellcode:
Alternative: Du scheinst Die "KeyPreview"-Eigenschaft der Form auf True gesetzt zu haben. Die solltest Du auf false setzen, wenn Du es nicht für andere Funktionen brauchst.
if Sender is TStringGrid then
{Zeile löschen} else {irgendwas anderes machen} MfG, Peter |
Achso (hihi) die funktion habe ich noch gar nicht eingebaut... :wink:
|
Jetzt verstehe ich gar nichts mehr. :? Ich dachte, Dein Problem wäre, dass die Zeile verschwindet, wenn Du ENTF im Edit-Feld drückst. Aber wenn die Funktion, welche die Zeile löscht, noch gar nicht eingebaut ist, wie kann das dann sein?
|
In dem Edit (links neben Suchen) gebe ich irgentwas ein, markiere es dann wieder und drücke Entf (um es zu löschen), doch er denkt, ich will die immer noch markierte zeile aus der tabelle löschen! Er soll praktisch, wenn ich in das editfeld klicke die markierung aus der tabelle nehmen. (So dass das Entf dem geschriebenen in dem Editfeld gilt) |
Das demarkieren der Zeile ist äußerst unelegant. Ich, an Deiner Stelle, würde mich fragen, wieso er "denkt", dass er die Zeile löschen soll und ihm das dann abgewöhnen.
Bei meinen StringGrids hat die Entf-Taste standardmäßig nicht diese Funktion, also musst Du sie irgendwo implementiert haben. Und in dieser implementierten Funktion musst Du dann unterscheiden, ob die Entf-Taste im Editfeld oder im Grid gedrückt wurde. |
Ich habe einen Butten (fünfter von links) der den eintrag (in der tabelle) löscht. und den habe ich mit Entf belegt.
Zitat:
|
Ah, so langsam kommen wir der Sache näher. Jetzt müsste ich nur noch wissen, auf welche Weise Du den Button mit der Enft-Taste belegt hast. Meine Vermutung:
OnKeyPress-Event --> Unterscheidung welche Taste --> entsprechener der Button Wenn dem so ist, kannst Du im OnKeyPress-Event die Unterscheidung mit dem Sender machen, die ich weiter oben schon mal gepostet habe. |
oh! mein fehler, der shortcut liegt nicht auf dem button, sondern auf einem popup-menu eintrag. da hat ich einfach im objectinspector dem eintrag Entf zugewiesen (weil ich nicht wusste, wie man einem normalen button einen shortcut zuweis! :oops: )
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 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