Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Stringgrid zu dem entsprechenen Anfangsbuchstaben springen (https://www.delphipraxis.net/80851-stringgrid-zu-dem-entsprechenen-anfangsbuchstaben-springen.html)

capo 16. Nov 2006 21:12

Re: Stringgrid zu dem entsprechenen Anfangsbuchstaben spring
 
Zitat:

Wenn die Namen in ihrer Grid-Spalte bereits sortiert sind, dann
die müßten anundfürsich sortiert sein,
ich verwende auch folgenden code, damit wird doch auch sortiert oder nicht? :) :oops:

Delphi-Quellcode:
procedure LocateRow_b(sg: TStringGrid; iCol: Integer; const sText: String);
var
  iRow: Integer;
begin
  with TStringList.Create do
  try
    Assign(sg.Cols[iCol]);
    Sorted := True;
    for iRow := 1 to sg.FixedRows do
      Delete(0);
    Find(sText, iRow);
    sg.Row := iRow + sg.FixedRows;
    sg.Col := iCol;
  finally
    Free;
  end;
end;
const
  NAME_COL_b = 2;

procedure TForm1.Edit2Change(Sender: TObject);
begin
  with Sender as TEdit do
    LocateRow_b(StringGrid1, NAME_COL_b, Text);
  StringGrid1.TopRow := StringGrid1.Row;
end;
Bekomm auch bei dem Buchstaben Z folgende Fehlermeldung

Zitat:

Gitterindex außerhalb des zulässigen Bereichs.

capo 16. Nov 2006 22:46

Re: Stringgrid zu dem entsprechenen Anfangsbuchstaben spring
 
Das vorherige Problem hat sich erledigt.
Danke

marabu 17. Nov 2006 06:29

Re: Stringgrid zu dem entsprechenen Anfangsbuchstaben spring
 
Guten Morgen.

Damit sich das Problem auch für alle anderen erledigt hat, habe ich eine kleine Anpassung an meinem Code in Beitrag #7 gemacht.

Zitat:

Zitat von capo
... ich verwende auch folgenden code, damit wird doch auch sortiert oder nicht?

Vorsicht! Wenn ich Sorted auf True setze, dann nur um den binary search mode einzuschalten. Die Daten im Grid müssen trotzdem schon sortiert vorliegen.

Freundliche Grüße

capo 17. Nov 2006 10:04

Re: Stringgrid zu dem entsprechenen Anfangsbuchstaben spring
 
hallo marabu
habs nun auch endlich mit dem sortieren verstanden
ich mach das so
Delphi-Quellcode:
  StringGrid1.SortSettings.Direction := sdAscending;
          StringGrid1.SortSettings.Column := 0;
          StringGrid1.QSort;
ich habe nun doch noch eine frage
bekomme wieder folgende meldung
Zitat:

Gitterindex außerhalb des zulässigen Bereichs.
das liegt wohl daran das kein Z in der liste vorhanden ist
läßt ich diese fehlermeldung abschalten?

hab hier zwei beispiele gefunden, mal abgesehen davon weiss ich nicht ob der fehler damit zu beheben ist:
Delphi-Quellcode:
if TopRow+Visiblerowcount<rowcount then toprow:=toprow+1;
Zitat:

fehlermeldung:
[Fehler] Unit1.pas(806): Undefinierter Bezeichner: 'Visiblerowcount'
[Fehler] Unit1.pas(806): Undefinierter Bezeichner: 'rowcount'

Delphi-Quellcode:
if StringGrid1.TopRow+Visiblerowcount<rowcount then StringGrid1.toprow:=StringGrid1.toprow+1;
Zitat:

fehlermeldung:
[Fehler] Unit1.pas(807): Undefinierter Bezeichner: 'fixedrows'
[Fehler] Unit1.pas(807): Undefinierter Bezeichner: 'toprow'
gruss vom capo

marabu 17. Nov 2006 12:42

Re: Stringgrid zu dem entsprechenen Anfangsbuchstaben spring
 
Der ausgebüchste Gitterindex sollte tatsächlich auf das nicht vorhandene Z zurück zu führen sein. Hast du meine Korrektur im Beitrag #7 übersehen? Damit sollte dieser Fehler nicht mehr auftreten.

Freundliche Grüße

capo 17. Nov 2006 14:00

Re: Stringgrid zu dem entsprechenen Anfangsbuchstaben spring
 
Zitat:

Hast du meine Korrektur im Beitrag #7 übersehen?
hallo
nein hab ioch natürlich sofort ausprobiert, und auch damit hab ich den fehler.
steht das auch richtig im Edit1Change?
nun, ich probier hier mal weiter.
:-D capo

[EDIT]
doch nun funktioniert es
hab anstatt
Delphi-Quellcode:
procedure LocateRow_vorname(sg: TStringGrid; iCol: Integer; const sText: String);
var
  iRow: Integer;
begin
 ...
    for iRow := 1 to sg.FixedRows do
...
end;

das gemacht weil die reihe darüber immer noch mit angezeigt wird, also der curso springt im stringgrid immer eine zeile über das ergebnis,deshalb.

Delphi-Quellcode:
procedure LocateRow_vorname(sg: TStringGrid; iCol: Integer; const sText: String);
var
  iRow: Integer;
begin
 ...
    for iRow := 2 to sg.FixedRows do
...
end;
mal sehen vielleicht kann ich das auch anders erreichen.

capo 17. Nov 2006 22:28

Re: Stringgrid zu dem entsprechenen Anfangsbuchstaben spring
 
komisch wenn ich das
Sorted := True;
rausnehme, wird bei der suche nach A alles richtig angezeigt
Delphi-Quellcode:
  with TStringList.Create do
  try
    Assign(sg.Cols[iCol]);
  Sorted := True;
s. [Edit] im vorherigen beitrag


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 Uhr.
Seite 2 von 2     12   

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