Skip to main content
Skip table of contents

TBeSearchEdit

TBeSearchEdit

Klasse für Suchtext-Eingaben mit verzögerter Auslösung der Suche.

Eigenschaften

EigenschaftBeschreibung

CharCase:N

(default)

ecNormal = Eingabe wird normal angezeigt
ecUpperCase = Eingabe wird nur in Großbuchstaben angezeigt
ecLowerCase = Eingabe wird nur in Kleinbuchstaben angezeigt

DelayChangeInterval:N

Zeit in Millisekunden, nach deren Ablauf die Suche gestartet wird, wenn `ssoSearchOnTimer' true ist.

ssoSearchOnBtnClick:L

(default) true = Suche startet bei Klick auf das Lupen-Symbol

ssoSearchOnReturn:L

(default) true = Suche startet nach drücken von [Enter]

ssoSearchOnTimer:L

(default) true = Suche startet nach der durch 'DelayChangeInterval' bestimmten Zeit

ShowButton:L

(default) true = Es wird ein kleines Lupensymbol am rechten Rand des Controls angezeigt

TextHint:C

Hinweis im Suchfeld (z.B: "Suche...", etc.)

TextHintFont:C

Die Schrift des Hinweises

TextHintWhileFocused:L

Gibt an, ob der Hinweis beim Fokussieren des Controls bestehen bleibt.
(default) true = Hinweis bleibt beim Fokussieren sichtbar.

SearchButtonStyle:N

Gibt an, ob die Suche den Button ein- und ausschaltbar macht.
(default)

bsbsDefault = der Button bleibt gleich
bsbsToggle = der Button wird ein "Toggle" zwischen "Suche" und "Filter". Kann umgeschaltet werden durch Maustastendruck auf dem Button oder durch die Eigenschaft "SeachMode".

SearchMode:N

Gibt an, in welchem Modus sich der Edit findet. Kann nur gesetzt werden, wenn SearchButtonStyle = bsbsToggle.
(default)

bsmSearch = Suchmodus
bsmFilter = Filtermodus

Aktive Eigenschaften (Methoden)

EigenschaftBeschreibung

OnSearchExecute

Führt die zugewiesene Funktion aus, wenn die Suche (z.B. durch Tastendruck) gestartet wird.

OnDropDown

Führt die zugewiesene Funktion aus, wenn die DropDown-Leiste geöffnet wird. (z.B. mit [Alt] + [ArrowDown])

OnBtnClick

Führt die zugewiesene Funktion aus, wenn das Lupensymbol (falls vorhanden) angeklickt wird.

Beispiel

CODE
//******************************************************************************
// Beschreibung: Demo der Klasse TBeSearchEdit
//******************************************************************************

| oForm, oSearch, oDataSource, oMainGrid, oMemTable |

//##############################################################################
//##############################################################################
// Events
//##############################################################################
//##############################################################################

//******************************************************************************
// Bei Suche
//******************************************************************************
function oSearchExecute( Sender )
  if (Sender.Text <> '') then
     if Sender.SearchMode = bsmFilter then
        oMemTable.Filter   := "Upper('" + Sender.Text +
                              "') $ Upper(NAME) OR Upper('" + Sender.Text +
                              "') $ Upper(ADRESSE)",

        oMemTable.Filtered := true,
     else
        Meld('Such-Modus ist bei Mem-Tables nicht unterstützt!'),
        Sender.SearchMode := bsmFilter,
        oSearchExecute(Sender),
     endif,
  else
     oMemTable.Filter   := '',
     oMemTable.Filtered := false,
  endif,
  oMemTable.OrderBy := 'NAME',
end,


//##############################################################################
//##############################################################################
// Funktionen
//##############################################################################
//##############################################################################

//******************************************************************************
// MemTable erstellen
//******************************************************************************
function CreateMemTable(aFields)
  | oMem, nArrLen, nC |
  nC := 1,
  nArrLen := ALen(aFields),
  oMem := CreateObject('TMemCalcTable'),

  // Felder hinzufügen:
  while nC <= nArrLen do
     AddMemField(oMem, aFields[nC, 1], aFields[nC, 2],
                       aFields[nC, 3], aFields[nC, 4]),
     nC++,
  end,

  Result := oMem,
end,

//******************************************************************************
// MemTable mit Datensätze füllen
//******************************************************************************
function FillMemTable(oMem)
  | aContacts, nC, nArrLen |

  aContacts := {
                {'Max Mustermann', '0123456789', 'Straße 1, 12345 München'},
                {'Erika Mustermann', '0123456789', 'Straße 1, 12345 München'},
                {'John Wayne', '0987656789', 'Straße 5, 54321 Hamburg'},
                {'Horst Hansen', '6234858', 'Straße 11, 20945 Stuttgart'},
                {'Herbert Huber', '016789', 'Straße 6, 11145 Berlin'}
                },

  nArrLen := ALen(aContacts),
  nC      := 1,

  while nC <= nArrLen do
     MyAppend(oMem),
      oMem:NAME    := aContacts[nC, 1],
      oMem:TELEFON := aContacts[nC, 2],
      oMem:ADRESSE := aContacts[nC, 3],
     MyPost(oMem),

     nC++,
  end,
  oMem.OrderBy := 'NAME',
end,

//******************************************************************************
// Initialisierung der MemTable
//******************************************************************************
function Init()
  oMemTable := CreateMemTable({
                               {'Name',    'C', 30, 0},
                               {'Telefon', 'C', 12, 0},
                               {'Adresse', 'C', 25, 0}
                               }),

  oMainGrid.DataSource      := oDataSource,
  oMemTable.Active          := true,
  oDataSource.DataSet       := oMemTable,
  oMainGrid.ReadWriteProps  := 0,
  oMainGrid.RegisterDataset := oMemTable,

  FillMemTable(oMemTable),
  DbGoTop(oMemTable),
end,


//##############################################################################
//##############################################################################
// Initialisierung
//##############################################################################
//##############################################################################

oForm       := CreateObject('TFormEx'),
oSearch     := CreateObject('TBeSearchEdit',, oForm, oForm),
oMainGrid   := CreateObject('TBeAltGrid',,    oForm, oForm),
oDataSource := CreateObject('TDataSourceEx',, oForm, oForm),

// oFrom
oForm.OrigCapt  := 'TBeSearchEdit-Demo',
oForm.Font.Name := 'Segoe UI',
oForm.Position  := poMainFormCenter,
oForm.Width     := 480,

// oMainGrid
oMainGrid.Align            := alClient,
oMainGrid.AlignWithMargins := true,

// oSearch
oSearch.Align                       := alTop,
oSearch.AlignWithMargins            := true,
oSearch.TextHintProperties.TextHint := 'Suchtext tippen -> Suche wird ausgelöst. ' +
                                       'ESC löscht den aktuellen Suchtext.',

oSearch.SearchButtonStyle := 1,

AssignEvent(oSearch, 'OnSearchExecute', 'oSearchExecute'),

Init(),
ShowModal(oForm),
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.