Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Such-Funktion gesuch (https://www.delphipraxis.net/113710-such-funktion-gesuch.html)

AlexII 13. Mai 2008 12:48


Such-Funktion gesuch
 
Wer kann mir vllt sagen wo ich folgende Such-Funktion finden kann?

Die Funktion durchsuch eine StringGrid in Zeilen und Spalten, markiert oder färbt alle Funde oder beherrscht Weitersuche.

Hab schon viele Foren durchgesucht, aber genau so eine nicht gefunden :-(

Danke!

Sharky 13. Mai 2008 12:50

Re: Such-Funktion gesuch
 
Zitat:

Zitat von AlexII
....Hab schon viele Foren durchgesucht, aber genau so eine nicht gefunden ...

Hai AlexII,

kurz und schmerzhaft: Es gibt keine fertige Funktion dafür. Zumindest nicht als Standardfunktion des Grid.
Da musst Du schon selber etwas machen.

AlexII 13. Mai 2008 12:52

Re: Such-Funktion gesuch
 
Na das kann doch nicht sein, muss bestimmt eine geben, oder wirklich nicht? :-(

DeddyH 13. Mai 2008 12:58

Re: Such-Funktion gesuch
 
Wirklich nicht.

p80286 13. Mai 2008 13:10

Re: Such-Funktion gesuch
 
Hallo AlexII,

Zitat:

Die Funktion durchsuch eine StringGrid in Zeilen und Spalten, markiert oder färbt alle Funde oder beherrscht Weitersuche.
Ich vermute einmal, daß Du beim zweiten "oder" "und" meintest. So richtig sinnvoll scheinen mir die drei Alternativen nicht zu sein.

Trotzdem gibt es Deine Funktion nicht, da sie viel zu spezialisiert ist.

Wie wär es denn ungefähr mit folgendem:

Delphi-Quellcode:
if pos(SuchStr,SG.cells[x,y]) then färbe(SG.cells[x,y]).
Procedure Färbe müßtest Du Dir selbst zusammenbauen, aber vor ca 1 Woche lief schon einmal ein thread zu diesem Thema.

Gruß
K-H

AlexII 13. Mai 2008 13:10

Re: Such-Funktion gesuch
 
Na dann muss ich selber eine schreiben, macht mir auch wirklich Spaß, wenn man selber etwas leistet. Hab bloß noch zu wenig Stoff bzw. Bücher usw.

Falls eine schreibe, werde sie hier reinstellen. :-)

angefügt:

Zitat:

Zitat von p80286
Ich vermute einmal, daß Du beim zweiten "oder" "und" meintest. So richtig sinnvoll scheinen mir die drei Alternativen nicht zu sein.

"...färbt alle Funde oder beherrscht Weitersuche". Ist schon richtig so, wenn alle Funde bzw. Zeilen markiert sind, dann braucht man keine Weitersuche, wird aber nur eine bzw. die erst gefundene markiert, dann braucht man die Weitersuche schon.

[edit=SirThornberry]Beiträge zusammen geführt - nächstes mal bitte die Edit-Funktion verwenden - Mfg, SirThornberry[/edit]

AlexII 13. Mai 2008 13:59

Re: Such-Funktion gesuch
 
Ich bin schon soweit

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s1: String;
    i,j: Integer;
begin
s1:=Edit4.Text;
with StringGrid1 do
for i:=0 to ColCount-1 do
  for j:=0 to RowCount-1 do
  if Cells[i,j]=s1 then
  begin
  StringGrid1.Row:=??????????;
  end;
end;
Stehe aber irgendwie auf dem Schlauch, kann die Zeile nicht markieren bzw. selektieren. :-(

Sharky 13. Mai 2008 14:10

Re: Such-Funktion gesuch
 
Hai AlexII,

ein TStringGrid kennt leider kein Multiselect. Wenn Du also alle Zeilen in denen der Suchbegriff vorkommt "markieren" möchtest musst Du das Zeichnen des SG selber übernehmen. (Stichwort: "OnDrawCell")

Dafür musst Du dir natürlich noch überlegen wie Du die Information "speicherst" ob eine Zelle markiert wird oder nicht.
Das könntest Du z.B. über ein Objekt machen das Du an eine Zeile des SG hängst und dort die Info speicherst.

AlexII 13. Mai 2008 14:15

Re: Such-Funktion gesuch
 
Ach so... ne dann markiere ich sie lieber nur eine. :-D

Hilfst du mir vllt auf die Sprünge die betroffene Zeile zu markieren?

Delphi-Quellcode:
StringGrid1.Row:=??????????;

Sharky 13. Mai 2008 14:23

Re: Such-Funktion gesuch
 
Zitat:

Zitat von AlexII
Ach so... ne dann markiere ich sie lieber nur eine.

Warum,

ist doch eine nette Aufgabe für das Wochenende ;-)

Zitat:

Hilfst du mir vllt auf die Sprünge die betroffene Zeile zu markieren?
Weise .Row einfach den Wert der Zeile zu in der Du den Text gefunden hast.


[EDIT]: Und weil so schönes Wetter ist klickst Du hier


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr.
Seite 1 von 2  1 2      

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