Autor Beitrag
Psycho-Mike
Hält's aus hier
Beiträge: 4

Win98, Win ME, Win2000

BeitragVerfasst: Do 02.09.04 10:18 
Hallo Leute,
also ich hab ein kleines Delphi Progi geschrieben was u.a. alle Dateien eines Ordners in einen Stringgrid schreibt und mit dem Klick auf die entsprechende Zeile im Stringgrid werden weitere Details angezeigt. Wie kann ich eine Zeile deselektieren sodass nichts mehr im Stringrid ausgewählt ist?
THX im voraus.

greetz Psycho-Mike
iKilledKenny
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: Do 02.09.04 10:29 
vorausgesetzt du hast eine fixedrow, müsste es mit
ausblenden Quelltext
1:
stringgrid.row := 0;					

funktionieren.

hab aber gerade kein delphi zur hand, ums zu testen.
Psycho-Mike Threadstarter
Hält's aus hier
Beiträge: 4

Win98, Win ME, Win2000

BeitragVerfasst: Do 02.09.04 10:34 
also das funktioniert nciht :/ Ist denk ich auch nicht fixedRows
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Do 02.09.04 11:16 
Zwei Möglichkeiten:

1. Du gibst den Focus einer anderen Komponente (z.B. einem Button). Die Auswahl musst du im OnDrawCell dem Hintergrund anpassen. Wies geht, sagt dir die SuFu.
2. Du legst dir eine extra Zeile/Spalte im Grid an, die nie sichtbar ist, und setzt die Selection dorthin. Ist aber nur empfehlenswert, wenn du keine Scrollbalken hast/brauchst.

Vielleicht gehts auch noch anders.

Gruß,
Jörg

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
iKilledKenny
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: Do 02.09.04 11:42 
habs jetzt ausprobiert. es funktioniert mit

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);

var   rc : TGridRect;

begin
  rc.Left := 0;
  rc.Top := 0;
  rc.Right := 0;
  rc.Bottom := 0;
  StringGrid.Selection := rc;
end;


eben unter der voraussetzung, dass dein grid eine FixedRow hat und du die zellen selber malst (OnDrawCell).

nachtrag:
die FixedRow muss deshalb sein, da du eine FixedRow eben nicht mit der maus oder tastatur selektieren kannst. "die selection auf (0,0,0,0) setzen" bewirkt die selektion einer nicht selektierbaren zelle, damit siehts dann aus als sei im grid nichts selektiert.

Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt.


Zuletzt bearbeitet von iKilledKenny am Do 02.09.04 11:46, insgesamt 1-mal bearbeitet
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Do 02.09.04 11:44 
Wenns noch Vorschläge für Grids ohne FixedRows gibt, mich würde das auch mal interessieren. Bis jetzt habe ich dafür auch immer nur Workarounds verwendet.

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!