Enum_attributes

C/C++Pascal

BOOL [cd_]Enum_attributes([cdp_t cdp], tcurstab curs; enum_attr * callback);
function [cd_]Enum_attributes([cdp : cdp_t]; curs : tcurstab, callback : enum_attr) : Boolean;

Parametry

curs deklarovanß tabulka nebo otev°en² kurzor - viz podrobnosti
callback instance funkce, kterß bude zavolßna pro ka₧d² sloupec
[cdp kontextovß prom∞nnß klienta]

Popis

Funkce Enum_attributes projde po °ad∞ vÜechny sloupce v tabulce nebo kurzoru curs a pro ka₧d² z nich zavolß funkci callback. Prochßzenφ zaΦφnß sloupcem s Φφslem 1 (vΦetn∞ p°φpadn²ch skryt²ch sloupc∙). Jako parametr callback je nutno zavolat instanci funkce typu enum_attr definovanΘho takto:

typedef BOOL (_stdcall enum_attr)(char * attrname, uns8 attrtype, uns8 attrmult, uns16 attrspecif);
type enum_attr = enum_attr(attrname : PChar;  attrtype, attrmult : uns8;  attrspecif : uns16) : Boolean;  stdcall;

Funkce callback musφ mφt rozhranφ _stdcall.

Parametry, kterΘ jsou p°edßny funkci callback jsou v²znamov∞ shodnΘ se stejn∞ pojmenovan²mi parametry funkce Attribute_info. Pokud funkce callback vrßtφ hodnotu FALSE, prochßzenφ sloupc∙ se ukonΦφ a tato funkce ji₧ nebude vφce volßna. Nechcete-li p°eruÜit prochßzenφ sloupc∙, musφ funkce callback vracet TRUE.

Hodnota funkce

Funkce Enum_attributes vrßtφ TRUE, pokud tabulka nebo kurzor curs byl nalezen a funkce callback zavolßna alespo≥ jednou. Funkce Enum_attributes vrßtφ FALSE, pokud tabulka nebo kurzor zadanß parametrem curs neexistuje.

P°φklad

BOOL _stdcall fill_list_box(char * attrname, uns8 attrtype, uns8 attrmult, uns16 attrspecif)
{ if (attrmult == 1)
    if (SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)attrname) == LB_ERR)
      return FALSE;
  return TRUE;
}

....................
Enum_attributes(tablenum, fill_list_box);

Viz