Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi StringGrid - Verknüpfung an Fokus; Fokus ausschalten (https://www.delphipraxis.net/80920-stringgrid-verknuepfung-fokus%3B-fokus-ausschalten.html)

Sturmrider 17. Nov 2006 14:20


StringGrid - Verknüpfung an Fokus; Fokus ausschalten
 
Hi :)
Ich habe da mal eine Frage an euch und hoffe ihr könnt mir weiterhelfen. Ich bin dabei ein Spiel in Delphi5 zu programmieren und stehe vor einem Problem.
Ich möchte gerne in die Zelle, auf welchem sich der Fokus befindet, ein Image legen. Bei springen des Fokus auf eine andere Zelle soll im der alten Zelle das Image gelöscht werden und in der neuen Zelle das Image angezeigt werden.

Und ganz nebenbei, gibt es eine Möglichkeit Zellen vom Fokus aus zu schließen? Das wäre dann nämlich mein zweites Problem :oops: Ich habe auch schon ein bischen gegoogelt und folgendes gefunden, jedoch funktioniert das leider nicht :(

Delphi-Quellcode:
const
  noSelection:TGridRect = (Left:-1; Top:-1; Right:-1; Bottom:-1);

procedure ...
//Fokus sollte entfernt werden
StringGrid.Selection := noSelection;
...
Gruß und THX
Sturmi

marabu 17. Nov 2006 17:37

Re: StringGrid - Verknüpfung an Fokus; Fokus ausschalten
 
Hallo André,

wenn du die Option goRangeSelect des StringGrids ausschaltest und im Event OnSelectCell() den Parameter CanSelect auf False setzt, dann kann die Zelle mit den Gridkoordinaten [ACol, ARow] nicht mehr ausgewählt werden.

Freundliche Grüße

Sturmrider 18. Nov 2006 16:14

Re: StringGrid - Verknüpfung an Fokus; Fokus ausschalten
 
Hi :)
Ich habe in der Delphi-Hilfe dank dir folgendes Beispiel gefunden:
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col, Row: Longint; var CanSelect: Boolean);

begin
  CanSelect := (StringGrid1.Cells[Col,Row]='')
end;
nur bekomme ich das leider irgendwie nicht so hin wie ich möchte. Man soll nicht mehr auf bestimmte Felder klicken können d.h. der Fokus nicht mehr darauf gehen können. (mit Fokus ist doch diese gestrichelte Linie gemeint oder?)
Könntest du mir vielleicht ein Beispiel dazu geben?
also goRangeSelect meine ich habe ich schon ausgestellt mit:
Delphi-Quellcode:
  Ausgabefeld.Options := Ausgabefeld.Options - [goRangeSelect];
THX ^^

Gruß André

marabu 18. Nov 2006 16:37

Re: StringGrid - Verknüpfung an Fokus; Fokus ausschalten
 
Hi,

woran erkenne ich denn, dass ein Feld gesperrt sein soll? In deiner Beispielzeile wird einfach jedes Feld gesperrt, welches nicht leer ist.

Freundliche Grüße

Sturmrider 18. Nov 2006 16:55

Re: StringGrid - Verknüpfung an Fokus; Fokus ausschalten
 
oh, dann habe ich den Begriff des Fokus wohl etwas falsch verstanden xx
ich meinte mit Feld auswählen diese gestrichelte Linie http://sturmrider.st.ohost.de/fokus.JPG :gruebel:
also, dass man diese Zellen nicht mit Hilfe der Pfeiltasten oder der Maus anwählen kann.

marabu 18. Nov 2006 17:40

Re: StringGrid - Verknüpfung an Fokus; Fokus ausschalten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du hast das schon richtig verstanden. Deine Beispielzeile funktioniert ja auch bei mir - bei dir etwa nicht?

Sturmrider 18. Nov 2006 19:04

Re: StringGrid - Verknüpfung an Fokus; Fokus ausschalten
 
Du hast recht o_O funktioniert bei mir auch. Ich habe den Fokus am Ende der Prozedur wieder gesetzt <<"
tut mir leid :oops:
Danke für deine Hilfe ^^

Hast du auch noch eine Idee zu meinem ersten Problem? Ein Image in die Zelle zu setzten, auf welchem sich der Fokus befindet? Wie kann ich die Zell-Koordinaten bekommen, auf welchem sich der Fokus befindet?

Gruß André

marabu 19. Nov 2006 15:53

Re: StringGrid - Verknüpfung an Fokus; Fokus ausschalten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo André,

um ein Bild auf einem Grid zu verschieben wirst du wohl DefaultDrawing ausschalten müssen, da sonst dein Bild immer vom internen painter übermalt wird.

Freundliche Grüße


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