![]() |
Suchfeld in ListView verändern
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. |
AW: Suchfeld in ListView verändern
Hier die Lösung :wink:
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; |
AW: Suchfeld in ListView verändern
PS: [DELPHI] dein Code [/DELPHI] ... der Knopf mit dem Helm :zwinker:
Warum
Delphi-Quellcode:
if ListView.Controls[I].ClassType = TSearchBox then
und nicht
Delphi-Quellcode:
?
if ListView.Controls[I] is TSearchBox then
Echt mal, warum stellt Emba nicht direkt ein Property für den Zugriff auf FSearchEdit bereit? :wall:
Delphi-Quellcode:
Aber zumindest kann man per Code dieses Suchedit ein-/ausblenden.
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; ![]() 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;
Delphi-Quellcode:
ListView1.SearchText := 'blubb';
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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 by Thomas Breitkreuz