Enum_attributes_ex

C/C++Pascal

BOOL [cd_]Enum_attributes_ex([cdp_t cdp], tcurstab curs, enum_attr_ex * callback, void * param);
function [cd_]Enum_attributes_ex([cdp : cdp_t]; curs : tcurstab, callback : enum_attr_ex; user_data : Pointer) : Boolean;

Parametry

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

Od verze

8.0

Popis

Funkce Enum_attributes_ex 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_ex definovanΘho takto:

typedef BOOL (_stdcall enum_attr_ex)(char * attrname, uns8 attrtype, uns8 attrmult, t_specif attrspecif, void * user_data);
type enum_attr = enum_attr_ex(attrname : PChar;  attrtype, attrmult : uns8;  attrspecif : t_specif;  user_data : Pointer) : 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_ex. Parametr user_data p°edan² do funkce Enum_attributes_ex bude beze zm∞ny p°edßn do funkce callback. 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.

Zjistit nßzvy a typy sloupc∙ v tabulce lze takΘ systΘmov²m dotazem _IV_TABLE_COLUMNS.

Hodnota funkce

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

P°φklad

Napln∞nφ listboxu jmΘny sloupc∙ tabulky:

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

....................
Enum_attributes_ex(tablenum, fill_list_box, NULL);

Viz