Színváltozás

Tekintsük a leggyakoribb esetet, amikor módosítani kell egy objektum színét a vele társított változó értékének megváltoztatásakor. Ehhez:

1. Az objektum Változó tulajdonságában válassza ki a kívánt változót.

Színváltozás

2. Az objektum-ellenőrzőben menjen az "Események" fülre, és kattintson duplán az "OnDataChange" eseményre (az objektumhoz társított változó értéke megváltozott).

Színváltozás

Szkriptet írunk. Ha van egy feltétel, használhatja a "if Then Then" konstrukciót. Például egy mező színének megváltoztatásához:

Egy normális szkript, ha az állapot egy:

kezdődik
ha Field1.AsInt = 1 akkor // ha a mezőváltozó értéke 1, akkor
Field1.Color: = clGreen // módosítsa a mező színét zöldre
máshogy máshogy
Field1.Color: = clRed; // módosítsa a mező színét pirosra
végén.

A szkriptet a "Script -> Compile" menüben vagy az "F9" billentyű megnyomásával fordítjuk le. Ha a fordítás sikeres volt, elindíthatja a Simple-Client klienst, és ellenőrizheti az eredményt.

Ha szükséges, hogy ugyanazok a tárgyak színe ugyanolyan feltételek mellett válthasson, ajánlott egy univerzális szkriptet írni a "Sender" univerzális objektummal. "Feladó" egy ismeretlen objektum, amelyik a szkriptet nevezte; lehet egy kép vagy szöveg, egy kép vagy egy mező stb.

Univerzális szkript, ha az állapot egy (bármelyik objektumra alkalmazható).

kezdődik
ha a Küldő TM_Object, akkor ellenőrizze, hogy a Küldő egy objektum
a Küldővel TM_Object esetén // visszaküldi a küldőt a "TM_Object"
ha AsInt = 1 akkor // ha az objektum változó értéke 1, akkor
Szín: = clGreen // változtassa az objektum színét zöldre
máshogy máshogy
Szín: = clRed; // változtassa az objektum színét pirosra
végén.

Ha több feltétel is fennáll, ajánlatos az "építőelem" -et használni.

Egy gyakori szkript, ha több feltétel is létezik:

kezdődik
eset Field1.AsInt értéke // ha a mezőváltozó értéke:
1. 3. Field1.Color: = clRed; // 1-től 3-ig - változtassa a mező színét pirosra
4. Field1.BorderColor: = clGreen; // 4 - változtassa meg a mező keretének színét zöldre
5. Field1.FontColor: = $ FFFF00; // 5 - módosítsa a mező betűszínét sárga színűre
6. Field1.Color: = RGB (0. 0. 255); // 6 - változtassa meg a mező színét kékre
végén;
végén.

Univerzális szkript, ha több feltétel is van (bármelyik objektumra alkalmazható).

kezdődik
// A küldő az a objektum, amelyik a szkriptet nevezte (például mezőt, képet stb.)
ha a Küldő TM_Object, akkor ellenőrizze, hogy a Küldő egy objektum
a Küldővel TM_Object esetén // visszaküldi a küldőt a "TM_Object"
az AsInt esetét // ha az objektumhoz társított változó értéke:
1. 5. Szín: = clRed; // 1-5 - változtassa a színt pirosra
6. 7. Szín: = clGreen; // 6 vagy 7 - változtassa színét zöldre
8. Szín: = clYellow; // 8 - változtassa színét sárga színűre
végén;
végén.

A megfontolt univerzális szkriptek bármely objektumhoz telepíthetők, ehhez:

1. Válassza ki a szükséges objektumot, és menjen az "Események" fülre az objektum-ellenőrzőn keresztül.

2. Az "OnDataChange" tulajdonságban válassza ki a létrehozott szkriptet a listából.

3. Ne feledje, hogy az objektumot a kívánt változóhoz köti.

Most, hogy az "OnDataChange" eseményen kiválasztott univerzális szkriptet tartalmazó objektumok megváltoztatják a színüket a szkript feltételeinek megfelelően.

A "Sender" paraméterrel csak a "TM_Control" osztály tulajdonságait érheti el. A többi tulajdonság eléréséhez a "Feladó" megfelelő típusba kell vinnie. Például, ha módosítani szeretné a "Keret mező színe" tulajdonságot az univerzális szkriptben, akkor a "Feladó" típust a "TM_Field" típusba kell vinnie:

Univerzális szkript a Mező objektumhoz.

kezdődik
ha a Feladó TM_Field, akkor ellenőrizze, hogy a Küldő egy mező
a Küldővel TM_Fieldként // hozza a Küldőt a "TM_Field"
Az AsInt esetét // ha a mezőhöz tartozó változó értéke:
1. BorderColor: = clGreen; // változtassa a színt zöldre
2. BorderColor: = clRed; // változtassa a színt pirosra
3. BorderColor: = clYellow; // változtassa színét sárgára
4. BorderColor: = clGray; // változtassa színét szürkére
végén;
végén.

Kapcsolódó cikkek