![]() |
Re: Stringgrid selection Problem !
Hm, keine Antwort ist auch eine Antwort :? Aber, für den Fall, daß Du mit der Maus selektierst, so ist mir aufgefallen, mußt Du noch folgende Events füllen: OnMouseMove, OnMouseDown, OnMouseUp
Delphi-Quellcode:
Desweiteren muss die Variable FMouseSelects: Boolean; im Form deklariert werden.
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Sender = nil then Exit; if not (Sender is TStringGrid) then Exit; FMouseSelects := True; end; procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if Sender = nil then Exit; if not (Sender is TStringGrid) then Exit; if not FMouseSelects then Exit; with Sender as TStringGrid do begin Update; Invalidate; end; end; procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Sender = nil then Exit; if not (Sender is TStringGrid) then Exit; FMouseSelects := False; end; ...:cat:... |
Re: Stringgrid selection Problem !
Liste der Anhänge anzeigen (Anzahl: 1)
Noch mal ich :mrgreen: Ich habe das Sample vergessen :roll:
...:cat:... |
Re: Stringgrid selection Problem !
ok sakura,
also ich versuchs jetz nochmal zu erklaeren, deine routiene lauft nich, ich denke aber das du das falsche meinst ich versuchs jetz mal anders ,ok also : 1. wenn mouse down im stringgrid , dann schaue in welcher zeile (row a) du bist und selectiere alle felder von aktuellem colwert bis colcount vom stringgrid (erste zeile) 2. wenn mousemove bzw. mouse up, dann schaue in welcher zeile (row b) du bist , wobei (row b > row a sein muss) und selectiere alle felder von 0 bis colwert (letzte zeile); 3. und dann selectiere auch noch das rechteck dazwischen (0,rowa+1) zu (colcount,rowb-1) (rechteckiger bereich) markierung sieht dann so aus: #=markiert
Delphi-Quellcode:
Ps: ich denke dein code kann nicht funktionieren weil denkfehler , weil der selectmode des stringgrid noch mit aktiv ist
0000000#################### -> erste zeile
########################### -> [rechteckiger bereich zwischen...] ########################### -> [...zeile 1 und letzter zeile....] ########0000000000000000000 -> letzte zeile 000000000000000000000000000 000000000000000000000000000 000000000000000000000000000 wenn du naenlich beim markieren nur eine zeile nach unten gehst, dann selectiert , das grid bei deiner routine auch die 2 zeile von der colposition an und nicht von 0 wie in der darstellung oben, eventueller Loesungsweg: bei grid option: rangeselect auf false und markierung komplett selber zeichnen hoffe jetz , das du mich verstehst |
Re: Stringgrid selection Problem !
hallo sakura,
dein beispiel lauft jetzt richtig, muss daran gelegen haben, das ich immer versucht hab mit der maus zu selektieren ,allerdings ist da ein unschoenes grafisches zucken des markierten bereichs,wenn man die maus beim markieren bewegt, gibst ne moeglichkeit , das noch zu verbessern ? :) :zwinker: |
Re: Stringgrid selection Problem !
Zitat:
...:cat:... |
Re: Stringgrid selection Problem !
Das ist typischer borland mist, jetz kann ich 70 prozent meines codes wegschmeissen
und von vorn anfangen. bloede oop, da war turbo pascal um laengen besser, wenn die wenigstens in erwaegung gezogen hatten , ne eigenschaft "selectmode" für die dämliche stringgrid kompo zu machen in der ich den selektionsstil waehlen hatte koennen, aber nee.. was nutzt es wenn du in 2 min den code zusammenklicken kannst, und dann bei solch simplen dingen passen must. auf der anderen seite hatte ich schon mal faelle, in dehnen ich 2 tage gesaessen hab , um die nichterwuenschten funktionen und deren verhalten in kompos rueckgaengig zu machen, was ist den das fuer ne logic, laenger damit zuzubringen unerwuenschte verhalten zu unterdrueckten, als sich dem eingentlichen problem zu widmen! ich kann dazu nur sagen : :kotz: so und wenn ihr mich jetz aus dem forum schmeissen wollt, is mir das jetz auch egal |
Re: Stringgrid selection Problem !
:hi:
Dann wünsch ich dir viel Spass in der ![]() Die VCL ist nicht perfekt, aber sie nimmt einem eine Menge Arbeit ab. Schau sonst mal noch auf ![]() Und in der ![]() mfg Tobias |
Re: Stringgrid selection Problem !
hacke den tread mal ab,
antwortet sowieso keiner mehr |
Re: Stringgrid selection Problem !
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat:
Delphi-Quellcode:
wirkt hier Wunder.
StringGrid.DoubleBuffered := true;
Ich hab außerdem auch mal ein bisschen mit dem StringGrid rumgespielt und eine andere Lösung entwickelt. Benötigt zwar auch das DoubleBufferd, wirkt aber für mich insgesamt ein bisschen weniger hakelig als Sakuras Variante (die ich hier keinesfalls schlecht machen will :angle2: ). Projekt im Anhang. [EDIT]Fehler im Attachment ausgebessert[/EDIT] |
Re: Stringgrid selection Problem !
hi Niko,
was bewirkt den die anweisung double buffer genau ? und warum ist sie unschoen ??? hab grad dein file geladen,will gleich ma probieren :-D nochmal vielen dank, waere toll wenn es wirklich hilft |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07: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