AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suchfeld in ListView verändern

Ein Thema von schaumermal · begonnen am 25. Apr 2024 · letzter Beitrag vom 26. Apr 2024
Antwort Antwort
schaumermal

Registriert seit: 26. Apr 2006
Ort: Bad Vilbel
49 Beiträge
 
Delphi 12 Athens
 
#1

Suchfeld in ListView verändern

  Alt 25. Apr 2024, 17:14
Hallo zusammen,

wie kann ich in dem Framework FMX den Suchbegriff in einer ListView per Code ändern.

Gegeben ist eine ListView mit Einträgen.
Man kann nun in dem Suchfeld einen Begriff eingeben und nur die passenden Einträge werden angezeigt (Standardverhalten).
Nun möchte ich zusätzlich wenn der Anwender einen Barcode scannt diesen in das Suchfeld eintragen lassen.

Wie komme ich an dieses Feld um einen Suchbegriff (Barcode) hier eintragen zu können?


Danke im voraus.
  Mit Zitat antworten Zitat
schaumermal

Registriert seit: 26. Apr 2006
Ort: Bad Vilbel
49 Beiträge
 
Delphi 12 Athens
 
#2

AW: Suchfeld in ListView verändern

  Alt 25. Apr 2024, 22:42
Hier die Lösung

procedure SetSearchStringInListView(ListView:TListView;Searc hString:string);
var I: Integer;
SearchBox: TSearchBox;
begin
for I := 0 to ListView.Controls.Count-1 do
if ListView.Controls[I].ClassType = TSearchBox then
begin
SearchBox := TSearchBox(ListView.Controls[I]);
SearchBox.Text := SearchString;
SearchBox.SetFocus;
Break;
end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#3

AW: Suchfeld in ListView verändern

  Alt 26. Apr 2024, 02:34
PS: [DELPHI] dein Code [/DELPHI] ... der Knopf mit dem Helm

Warum if ListView.Controls[I].ClassType = TSearchBox then
und nicht if ListView.Controls[I] is TSearchBox then ?

Echt mal, warum stellt Emba nicht direkt ein Property für den Zugriff auf FSearchEdit bereit?
Delphi-Quellcode:
procedure SetSearchStringInListView(ListView: TListView; SearchString: string);
var
  C: TControl;
begin
  for C in ListView.Controls do
    if C is TSearchBox then begin
      TSearchBox(C).Text := SearchString;
      TSearchBox(C).SetFocus;
      Break;
    end;
end;
Aber zumindest kann man per Code dieses Suchedit ein-/ausblenden.
Delphi-Referenz durchsuchenTListView.SearchVisible





Schön ist es auch, wenn eine Funktion nicht irgendwo rumgammelt, sondern man sie direkt in dem gewünschten Control finden kann.
Delphi-Quellcode:
uses
  FMX.ListView, FMX.SearchBox;

type
  TListViewHelper = class helper for TListView
  private
    function GetSearchText: string;
    procedure SetSearchText(Value: string);
  public
    property SearchText: string read GetSearchText write SetSearchText;
  end;

function TListViewHelper.GetSearchText: string;
begin
  Result := '';
  if not SearchVisible then
    Exit;
  for var C in Controls do
    if C is TSearchBox then
      Exit(TSearchBox(C).Text);
end;

procedure TListViewHelper.SetSearchText(Value: string);
begin
  if Value <> 'then
    SearchVisible := True;
  for var C in Controls do
    if C is TSearchBox then begin
      TSearchBox(C).Text := Value;
      if TSearchBox(C).CanFocus then
        TSearchBox(C).SetFocus;
      Break;
    end;
end;
ListView1.SearchText := 'blubb';
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Apr 2024 um 03:06 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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