C işlevleri
C betiklerinden çağrılan hazır işlevler: tag, nesne, sayfa, sistem, DLL karşılıkları, dosya ve C kitaplığı. Desteklenmeyen işlev grupları.
İşlevler nasıl gelir
İşlevlerin çoğu #include "apdefap.h" ile gelir (yeni C betiklerinin şablonu bu satırla başlar). Her işlevin tam imzası ve örneği kod alanındaki Başvuru panelindedir; arama kutusu tüm işlevlerde arar. Bu konu grupları ve davranış kurallarını özetler.
Tag işlevleri
Ad parçalardan oluşur: Get (oku) ya da Set (yaz) + Tag + veri tipi + isteğe bağlı ek. İlk parametre tag adıdır (Tag Tag_Name; sabit metin ya da char dizisi verilir).
| Tag türü | İşlev ailesi | Dönüş / değer |
|---|---|---|
| Bool | GetTagBit, SetTagBit | 1 ya da 0 |
| Byte, USInt | GetTagByte, SetTagByte | 0 – 255 |
| SInt | GetTagSByte, SetTagSByte | −128 – 127 |
| Word, UInt | GetTagWord, SetTagWord | 16 bit işaretsiz |
| Int | GetTagSWord, SetTagSWord | 16 bit işaretli |
| DWord, UDInt | GetTagDWord, SetTagDWord | 32 bit işaretsiz |
| DInt | GetTagSDWord, SetTagSDWord | 32 bit işaretli |
| Real | GetTagFloat, SetTagFloat | float |
| LReal | GetTagDouble, SetTagDouble | double (tipi bilinmeyen sayısal tag için güvenli seçim) |
| String | GetTagChar, SetTagChar | char*; dönen metin işlev bitene dek geçerlidir, saklanacaksa strcpy ile kopyalayın |
| DateTime | GetTagDateTime, SetTagDateTime | SYSTEMTIME |
| Ham bayt | GetTagRaw, SetTagRaw | — |
- Ekler:
…Waitekli ve eksiz işlev aynı sonucu verir (okuma o anki değeri döndürür, yazma değerin gönderilmesini bekler).…State(…, &durum)değerle birlikte durum kodunu,…StateQC(…, &durum, &kalite)durum ve kalite kodunu verir (yalnız okuma işlevlerinde). Yazma işlevlerinde…Stateyazmanın durumunu verir. - Durum kodu: 0 iyi;
0x0001bağlantı yok;0x0080değer henüz okunmadı;0x0200adres hatası;0x0400tag yok. Kalite: 192 iyi, 84 değer tag'in alt / üst sınırının dışında. - Birden çok tag:
GetTagMultiWait,SetTagMultiWait(ve…MultiState…türevleri),GetTagValue/SetTagValueailesi. - Artır / azalt:
IncreaseTag,DecreaseTag; bit işlemleriSetBit,ResetBit,InvertBit. - Olmayan tag hata vermez: işlev
FALSE/0döner ve tanılamaya bir satır yazar (Bool tag 1 / 0).
Nesne işlevleri
İlk parametre sayfanın, ikincisi nesnenin adıdır. Olaydan çalışan kodda lpszPictureName olayın sayfasını, lpszObjectName olayın nesnesini verir; başka sayfadaki nesne için sayfa adı yazılır. Renkler tek sayıdır (0x00BBGGRR: kırmızı + 256 × yeşil + 65536 × mavi).
| Grup | İşlevler |
|---|---|
| Genel özellik | GetPropBOOL / SetPropBOOL, GetPropChar / SetPropChar, GetPropDouble / SetPropDouble, GetPropWord / SetPropWord: özellik adı metin olarak verilir |
| Özelliğe özel | Get / Set + Visible, BackColor, ForeColor, BorderColor, Text, Left, Top, Width, Height, OutputValueDouble, OutputValueChar, FillingIndex, Operation, FontBold, FontSize, FlashBackColor, PictureName, Pressed, Process, Min, Max ve diğerleri (GetInputValueDouble, GetLayer yalnız okur) |
| Odak ve tag bağı | Set_Focus, Get_Focus, GetLinkedVariable, GetLink, SetLink (bağ değişikliği oturum boyunca geçerlidir) |
Olmayan sayfa ya da nesne, eşlemesi olmayan özellik ve yanlış türde değer hata fırlatmaz: işlev FALSE / 0 / boş metin döner ve tanılama satırı (aynı metin bir kez) yazılır. Yazılan değer oturum boyunca geçerlidir; projeye yazılmaz.
Sayfa, dil, kullanıcı, sistem
| Grup | İşlevler |
|---|---|
| Sayfa | OpenPicture, OpenHomePicture, OpenPrevPicture, StorePicture, OpenStoredPicture, OpenScreeninPopup, ClosePopup, GetLocalPicture, GetParentPicture, GetParentPictureWindow; TIA adlarıyla ActivateScreen, ActivateStartScreen, ActivatePreviousScreen |
| Dil | GetLanguage, SetLanguage, SetLanguageByName ("tr", "en", "de"), InquireLanguage. Dil projede tanımlı olmalıdır. |
| Kullanıcı | ShowLogonDialog, Logoff, PASSCheckLevelPermission (DLL bildirimi gerekmez) |
| Tanılama | printf, TraceText, TraceTime: satırlar betik tanılama listesine ve olay günlüğüne yazılır |
| Program ve bilgisayar | GetComputername, DeactivateRTProject, StopRuntime, ConvertLocalTimeToUTC, ConvertUTCToLocalTime, ProgramExecute (program izni; bitmesi beklenmez, dönüş 31'den büyükse başlatma başarılı) |
| Aksiyon belleği | SysMalloc, SysFree: aksiyon bitince bellek kendiliğinden geri verilir |
| Reçete (kullanıcı arşivi) | ua… işlevleri: uaConnect, uaQueryArchive, uaArchiveOpen / Close, MoveFirst / Next …, GetFieldValue…, SetFieldValue…, Update, Insert, Delete, ReadTagValues, WriteTagValues. Arşiv, aynı adlı reçetedir. Yapılandırma işlevleri ve içe / dışa aktarma yoktur. |
DLL karşılıkları
Gerçek DLL yüklenmez; aşağıdaki işlevlerin karşılığı Live'ın içindedir ve #pragma code("dll adı") / #pragma code() satırları arasında bildirilir. #include "PWRT_api.h" UseAdmin bildirimlerini hazır getirir.
| DLL | İşlevler |
|---|---|
| UseAdmin.dll | PWRTLogin, PWRTLogout, PWRTGetCurrentUser, PWRTGetLoginPriority, PWRTCheckPermission, PWRTSilentLogin |
| kernel32.dll | Sleep, GetTickCount, GetLocalTime, GetSystemTime, GetComputerNameA, WinExec |
| user32.dll | MessageBoxA (düğmeler 1 Tamam, 2 İptal, 6 Evet, 7 Hayır) |
| shell32.dll | ShellExecuteA |
| PDLRTAPI.DLL | PDLRTAllowSetForegroundWindow, PDLRTSetScreenKeyboardMode (yapılacak iş yoktur, TRUE döner) |
Dosya ve C kitaplığı
- Dosya (Dosyalara erişme izni):
fopen,fclose,fprintf,fputs,fgets,fgetc,fread,fwrite,feof,fflush,fseek(yalnız okunan dosyada),remove,rename… Yalnızca metin kipi; yazarken\n→\r\n, okurken\r\n→\nçevrilir. - Metin:
strlen,strcpy,strncpy,strcat,strcmp,strchr,strstr,strtok,sprintf,sscanf,atoi,atof,strtol,strtod,toupper,isdigit… - Matematik:
fabs,sqrt,pow,floor,ceil,fmod,sin,cos,tan,atan,atan2,exp,log,log10,abs,rand,srand. - Bellek:
memset,memcpy,memmove,memcmp,malloc,free. - Zaman:
time,localtime,strftime,mktime,difftime,clock.
Desteklenmeyen işlevler
Aşağıdaki gruplar tanımlıdır (kod derlenir) ama çağrılınca iş yapmaz: tanılamaya bir satır yazılır, FALSE / 0 döner. Studio Sorunlar listesinde (F7) bunları önceden uyarır.
- Alarm işlevleri (
AXC_OnBtn…,AcknowledgeMessage…) - Tablo ve eğri penceresi işlevleri (
Tlg…) ve eski işlevler - Rapor işleri (
ReportJob,RPTJobPreview,RPTJobPrint) - Kullanıcı arşivi yapılandırma ve içe / dışa aktarma işlevleri (
uaAddArchive,uaArchiveExport…) - Karşılık gelen nesne özelliği olmayan
Get…/Set…işlevleri (ör.GetBackColor2) fscanf,freopen,tmpfile,tmpnam,fgetpos,fsetpos,getchar,gets,scanf,vfprintfOpenNextPicture: ileri sayfa geçmişi tutulmaz, 0 döner
Sınırlar ve dikkat edilecekler
- Listede olmayan bir DLL işlevi çağrılırsa betik anlaşılır bir hatayla durur; Studio derlemede uyarır.
FillDiagnoseInTagsuyumluluk için tanımlıdır, etkisi yoktur.- Dosya ve program işlevleri izin kapalıyken çalışmaz; Studio izni kapalı çağrıyı önceden uyarır.