Delphi-PRAXiS

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 StringGrid OnClick verhindern. (gelöst) (https://www.delphipraxis.net/88195-stringgrid-onclick-verhindern-geloest.html)

Schorschi5566 11. Mär 2007 17:52


StringGrid OnClick verhindern. (gelöst)
 
Hallo zusammen,

ich suche nun schon eine ganze Weile, aber ich finde leider keinen passenden Ansatz für mein Problem.

Ich habe eine OnMouseMove-Routine für ein StringGridAAA gebaut, die beim Bewegen des Mauszeigers über die StringGridzeilen in einem anderen StringGridBBB bestimmte Zellen einfärbt. Funktioniert prima. :???:

Allerdings kann man nun natürlich auch in das StringGridAAA klicken und es erhält den Fokus. Wie kann ich das verhindern?

Delphi-Quellcode:
StringGridAAA.Onclick := Nil;
hat nichts gebracht. Ich möchte das OnClick-Ereignis (beziehungsweise alles was damit zusammen hängt) komplett abschalten eben als ob das StringGrid disabled wäre. Bis auf OnMouseMove. :roteyes:

Freue mich über jede Hilfe. Dieses Forum hat mir schon sehr oft geholfen. Weiter so. :) :thumb:

Viele Grüße,
Schorsch

Lannes 11. Mär 2007 18:28

Re: StringGrid OnClick verhindern.
 
Hallo,

Delphi-Quellcode:
GridAAA.DefaultDrawing := False;
eventuell, ja nach dem wie dein Grid gestalltet ist, noch ein wenig in OnDrawDell zeichen.

//Edit: Willkommen :hi: in der DP

Schorschi5566 11. Mär 2007 18:59

Re: StringGrid OnClick verhindern.
 
Hi Lannes,

danke für Deine schnelle Antwort und die Willkommensgrüße. :)

Ich habe es mittlerweile auf andere Weise gelöst. Ich hatte mich da wohl mit

Delphi-Quellcode:
StringGridAAA.OnClick := NIL;
selber ausgebremst. :)

Geholfen hat der _NoSelection-Tipp für StringGrids hier aus dem Forum.

Delphi-Quellcode:
const
  _NoSelection : TGridRect = (left:-1;top:-1;right:-1;bottom:-1);

procedure TForm1.StringGridAAAClick(Sender: TObject);
begin
  StringGridAAA.Selection := _NoSelection;
  cbDay.SetFocus; // nur damit wir einen Fokus haben
end;
Jetzt funktioniert's. :)

Viele Grüße,
Schorsch

Lannes 11. Mär 2007 20:31

Re: StringGrid OnClick verhindern. (gelöst)
 
Hallo,

ja, auch eine Lösung, aber man sieht noch kurz den Focusrahmen. Den kann man aber in OnSelect mit CanSelect := False ausschalten.

Ich hab inzwischen Abstand von dieser Lösung genommen, denn je nachdem was sonst noch mit dem Grid realisiert wird, bekommt man u.U. Probleme mit 'Gitterindex außerhalb des zulässigen Bereichs'.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:29 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