Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ein string der combobox im stringgrid suchen (https://www.delphipraxis.net/104424-ein-string-der-combobox-im-stringgrid-suchen.html)

djpaull 3. Dez 2007 20:31


ein string der combobox im stringgrid suchen
 
Hallo Leute.
Titel ist gleich mein Problem - es soll ein String der ComboBox (ComboBox1.Text) im StringGrid gesucht werden und (wenn er gefunden wird) die entsprechende Zeile im StringGrid markiert werden.
Ein Bsp.Code wäre sehr nett, weil ich = Anfänger ;-)
Danke!

Edit1
Oder sagt mir wenigstens, wie ich eine zeile markieren kann mit z.B. StringGridOnMouseClick, bitte...

Edit2
Ok, so wird die Zeile markiert
Delphi-Quellcode:
StringGrid1.Selection := TGridRect(Rect(StringGrid1.FixedCols,
                                        StringGrid1.Row,
                                        StringGrid1.ColCount-1,
                                        StringGrid1.Row));
Problem jetzt - die zeile mit dem Eintrag (string) 'test' soll markiert werden.

Sharky 4. Dez 2007 06:55

Re: ein string der combobox im stringgrid suchen
 
Hai djpaull,

wenn Du weisst in welcher Spalte Du suchen möchtest kannst Du das zum Beispiel so machen:
Delphi-Quellcode:
function SearchTextInCol(aSg: TStringGrid; aSearch: string; aCol: Integer): Boolean;
var
  RowIndex: Integer;
begin
  RowIndex := aSg.Cols[aCol].IndexOf(aSearch);
  if (RowIndex <> -1) then
  begin
    aSg.Row := RowIndex;
  end;
  Result := RowIndex <> -1;
end;

procedure TDemo_Form.Button1Click(Sender: TObject);
var
  SearchText: string;
  SearchCol: Integer;
begin
  SearchText := Edit1.Text;
  SearchCol := 2;
  if not (SearchTextInCol(StringGrid1, SearchText, SearchCol)) then
  begin
    ShowMessageFmt('%s wurde in Zeile %d nicht gefunden', [SearchText, SearchCol]);
  end;
end;
Ansonsten kannst Du dir das ja schnell auf alle Spalten anpassen.

marabu 4. Dez 2007 07:11

Re: ein string der combobox im stringgrid suchen
 
Moin,

ich erinnere mich an den Thread String-Suche in einem StringGrid.

Grüße vom marabu

MondoShiva 4. Dez 2007 11:49

Re: ein string der combobox im stringgrid suchen
 
Delphi-Quellcode:

procedure TForm1.searchBClick(Sender: TObject);
var

j: Integer;
i: Integer;
begin
    for j:=0 to stringgrid.colCount-1 do
    begin
    for i:=0 to StringGrid.rowCount-1 do
      begin
      if pos(lowercase(combobox.Items.Strings[combobox.itemindex]),lowercase(stringgrid.Cells[j,i]))>0 then
        begin
         StringGrid.Row := i;
         StringGrid.Col := j;
         ShowMessage(combobox.Items.Strings[combobox.itemindex]+' wurde in Zeile '+intToStr(i)+ ' in Spalte ' + inttostr(j)+' gefunden');
        end;
      end;
    end;
habs jetzt nicht getestet aber das dürfe dein problem mit der suche erledigen!
hoffe es hilft dir!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.

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