Interfeisu izmantošana delphi. Funkcijas darbam ar saskarnēm Delphi. Standarta saskarnes elementi

Raksts tika uzrakstīts, pamatojoties uz mūsu grupas jauno izstrādātāju rakstīto programmu analīžu rezultātiem.

Pareizi sakārtojiet komponentu pārslēgšanas secību

Daudziem lietotājiem, īpaši tiem, kuri iepriekš strādājuši DOS, ir ieradums starp ievades laukiem pārslēgties nevis ar peli, bet gan izmantojot tastatūru ar taustiņu Tab. Turklāt tas ir daudz ātrāk nekā katra lauka atlasīšana ar peli. Tāpēc komponentu pārslēgšanas secība ir jāiestata pareizi. Tas attiecas gan uz komponentiem visos konteinera komponentos (paneļi, GroupBox un tamlīdzīgi), gan uz pašiem konteinera komponentiem, ja veidlapā ir vairāki no tiem.

Komponentu pārslēgšanas secību konteinerā nosaka rekvizīts TabOrder. Pirmais komponents, kas kļūst aktīvs, ir tas, kura TabOrder ir vienāds ar 0, otrais ar 1 un tā tālāk, līdz visi komponenti ir atkārtoti. Turklāt komponentam ir TabStop rekvizīts, kas norāda, vai komponents saņems fokusu, pārslēdzoties ar taustiņu Tab. Ja jums ir jāatspējo pārslēgšanās uz jebkuru komponentu, iestatiet tam TabStop = false. Šajā gadījumā uz šo komponentu būs iespējams pārslēgties tikai ar peles palīdzību.

Ir gadījumi, kad lietotāji, kuri ir pieraduši pārslēgt noteiktu atslēgu vienā programmā, aiz ieraduma, turpina to izmantot citās. Tas bieži notiek ar 1C lietotājiem, kur ievadīšanas taustiņu var izmantot, lai pārvietotos pa ievades laukiem. Nu, dosim viņiem šo iespēju savās programmās, ja viņi to lūgs. Iestatiet veidlapas rekvizītu KeyPreview uz True un ierakstiet OnKeyPress notikumu apdarinātāju:

Procedūra TForm1.FormKeyPress(Sender: TObject; var Key: Char);
sākt
ja ord(key)=vk_Return, tad
Form1.SelectNext(PriemForm.ActiveControl, true, true);
beigas;

Šāds apstrādātājs nodrošina pāreju caur formas elementiem, kad tiek nospiests taustiņš Enter. Jāņem vērā, ka ar pogām šī metode nedarbosies, jo nospiežot taustiņu Enter uz pogas, tā tiek nospiesta, savukārt, nospiežot Tab, ievades fokuss tiek pārsūtīts uz nākamo komponentu pārslēgšanas secībā.

Noklusējuma pogas

Visi vieni un tie paši lietotāji ātri pierod, ka lietojumprogrammu dialoglodziņās, kā likums, savu izvēli var apstiprināt ar taustiņu Enter un atcelt ar taustiņu Esc. Neliksim viņiem vilties savās programmās, jo īpaši tāpēc, ka tas ir ļoti vienkārši izdarāms. Pogai Enter iestatiet rekvizītu Noklusējums uz True. Pogai, kas reaģē uz Esc, iestatiet rekvizītu Cancel uz True. Un viss.

Jā vai nē

Visos dialoglodziņos, kas pieprasa lietotāja darbības, ir jābūt vismaz divām pogām: darbības apstiprinājums un darbības atteikums (Jā/Nē, Saglabāt/Atcelt utt.). Darbību var atcelt, aizverot logu ar pogu [X] loga virsrakstā. Tas nav derīgs, ja darbības apstiprināšanai ir tikai viena poga, un atteikumam ir paredzēts aizvērt logu ar pogu [X] nosaukumā, vai arī vispār nav atteikuma iespējas. Tas mulsina lietotāju, radot loģisku jautājumu: kā atteikties?

Tāpat neaizmirstiet par to, kas tika teikts iepriekš sadaļā "Noklusējuma pogas".

Visiem dialoglodziņiem ir jāatveras ekrāna centrā

Centrēti, nevis vietā, kur tie tika izveidoti dizaina režīmā. Pirmkārt, tas ir vizuālāks, un, otrkārt, tas automātiski novērš dažādu lietotāju ekrāna izšķirtspējas problēmu.

Izņēmums tiek veikts, ja dialoglodziņš nav modāls, un lietotāja darba rezultātā šajā logā uzreiz notiek izmaiņas galvenajā logā (piemēram, datu kopas filtrēšana, grafiku pārzīmēšana utt.).

Logu izmēri nedrīkst pārsniegt ekrāna izmērus.

Nekādā gadījumā. Tas ir apkaunojums, ja daļa loga izlīst no ekrāna. Šī prasība nav atkarīga no lietotāja ekrāna izšķirtspējas, t.i. Tādi attaisnojumi kā "Ļaujiet viņiem likt lielāku izšķirtspēju" nedarbojas.

Pareiza loga elementu izmēru maiņa

Logu elementiem ir pareizi jāmaina izmēri vai jāpārvietojas, kad tiek mainīts loga izmērs, kad logs ir maksimizēts un kad logs tiek atjaunots pēc maksimizēšanas.

Viss vienmēr ir redzams

Loga izmēra samazināšana nedrīkst izraisīt loga elementu pazušanu, un vēlams, lai tas neradītu paša loga ritjoslas (ritinātājus). Varat ierobežot minimālo loga izmēru, lai visi elementi būtu redzami un pieejami. Ja nav iespējams komponentus novietot tā, lai visi būtu redzami logā, varat izmantot cilnes (PageControl tipa), lai sadalītu komponentus grupās. Neizpaliek arī attaisnojumi par ekrāna izšķirtspēju.

Mājieni visur, mājieni vienmēr

Pogām, īpaši rīkjoslās (piemēram, rīkjoslā), ir jādod padomi, lai vienmēr būtu skaidrs, kāpēc šī vai cita poga ir vajadzīga.

Krāsu spektrs

Nav nepieciešams krāsot sastāvdaļas uz formas visās varavīksnes krāsās. Tas nogurdina acis un izkliedē lietotāja uzmanību. Tas neizskatās "forši". Izcelšana tiek izmantota, ja ir nepieciešams pievērst lietotāja uzmanību kādam konkrētam elementam vai noteiktai loga daļai. Piemēram, varat iekrāsot ierakstus ar kļūdām gaiši sarkanā krāsā vai, gluži pretēji, gaiši zaļā krāsā tiem ierakstiem, kuru pārbaude bija veiksmīga.

Secinājums

Ir ļoti laba metode, kas ļauj atrast programmas nepilnības kopumā un jo īpaši saskarnē. Tas ir vienkārši: iedomājieties sevi lietotāja vietā un pusstundu mēģiniet strādāt tā, kā viņš strādā. Vēl labāk, ja lietotājs ir sasniedzams (piemēram, strādā tajā pašā organizācijā). Šajā gadījumā apsēdieties viņam blakus vai drīzāk viņa vietā un mēģiniet darīt viņa darbu. Ievadiet datus, mainiet tos, parādiet atskaites utt. Ja nezināt, kā to izdarīt pareizi, jautājiet savam lietotājam. Neveiciet vienu vai divas viena veida darbības, kā atkļūdošanas režīmā, bet 20-30 vai pat vairākas dažādas darbības citā secībā. Aizmirstiet kaut ko ievadīt vai ievadiet to nepareizi un skatiet, kā programma uz to reaģē. Jūs ātri redzēsit savas programmas vājās vietas.

Raksta autors universitātē automatizēja uzņemšanas komisijas darbu, un pirmajā programmas īstenošanas gadā uzņemšanas komisijā pavadīja 3-4 stundas dienā, reģistrējot reflektantus, aizpildot viņu personas datus un sniedzot eksāmenu atskaites. Un pārējā darba laiks izlabotas kļūdas un izlaidumi. Ticiet man, nākamajā gadā problēmu praktiski vairs nav. Tāpat bija ar personāla moduļa ieviešanu.

Tāpēc paturiet prātā lietotāja pieredzi. Lai viņiem būtu viegli un patīkami strādāt ar jūsu programmām.

Viens un visvairāk stiprās puses vides Delphi programmēšana ir tā atvērtā arhitektūra, pateicoties kurai Delphi pieļauj sava veida metaprogrammēšanu, ļaujot "programmēt programmēšanas vidi". Šī pieeja kvalitatīvi pārvērš Delphi par jauns līmenis lietojumprogrammu izstrādes sistēmas un ļauj šajā produktā iegult papildu rīkus, kas atbalsta gandrīz visus izveides posmus pielietotās sistēmas. Tik plašas iespējas paveras, pateicoties Delphi ieviestajai tā saukto atvērto saskarņu koncepcijai, kas ir saikne starp IDE (Integrated Development Environment) un ārējiem rīkiem.

Šajā rakstā galvenā uzmanība pievērsta Delphi atvērtajām saskarnēm un sniegts pārskats par to nodrošinātajām funkcijām. Delphi definē sešas publiskās saskarnes: rīka interfeiss, dizaina interfeiss, ekspertu interfeiss, failu interfeiss, rediģēšanas interfeiss un versijas vadības interfeiss. Maz ticams, ka šī raksta ietvaros mēs varētu detalizēti aptvert un ilustrēt katra no tām iespējas. Delphi avota teksti palīdzēs jums rūpīgāk izprast aplūkojamos jautājumus, jo izstrādātāji tos ir nodrošinājuši ar detalizētiem komentāriem. Klašu deklarācijas, kas atspoguļo publiskās saskarnes, ir ietvertas atbilstošajos moduļos direktorijā ...\Delphi\Source\ToolsAPI. Dizaina interfeiss (modulis DsgnIntf.pas) nodrošina līdzekļus, lai izveidotu rekvizītu redaktorus un komponentu redaktorus.

Rekvizītu un komponentu redaktori ir atsevišķas diskusijas vērta tēma, tāpēc atceramies tikai to, ka rekvizītu redaktors kontrolē objektu inspektora uzvedību, mēģinot mainīt attiecīgā rekvizīta vērtību, un komponentu redaktors tiek aktivizēts, kad dubultklikšķi kreiso peles pogu uz veidlapā ievietotā komponenta attēla. Versiju kontroles interfeiss (modulis VCSIntf.pas) ir paredzēts versiju kontroles sistēmu izveidei. Sākot ar versiju 2.0, Delphi atbalsta Intersolv PVCS integrēto versiju kontroles sistēmu, tāpēc vairumā gadījumu nav nepieciešams izstrādāt savu sistēmu. Šī iemesla dēļ mēs arī neņemsim vērā versiju vadības interfeisu. Failu interfeiss (modulis FileIntf.pas) ļauj no jauna definēt IDE darba failu sistēmu, kas ļauj izvēlēties savu failu glabāšanas veidu (piemēram, datu bāzes servera Memo laukos). Rediģēšanas interfeiss (modulis EditIntf.pas) nodrošina piekļuvi avota teksta buferim, kas ļauj analizēt un ģenerēt kodu, noteikt un mainīt kursora pozīciju koda redaktora logā un kontrolēt avota teksta sintakses izcelšanu.

Īpašās klases nodrošina saskarnes ar veidlapā ievietotajiem komponentiem (komponenta veida noteikšana, atsauces uz vecāk- un pakārtotajiem komponentiem, piekļuve rekvizītiem, fokusa nodošana, dzēšana utt.), pašai veidlapai un projekta resursu failam. Rediģēšanas interfeiss ļauj identificēt arī tā sauktos moduļu paziņotājus, kas nosaka reakciju uz tādiem notikumiem kā moduļa avota koda maiņa, formas modificēšana, komponenta pārdēvēšana, moduļa saglabāšana, pārdēvēšana vai dzēšana, projekta resursa faila maiņa utt. Rīka interfeiss (Module ToolIntf.pas) nodrošina izstrādātājiem līdzekļus, lai tos iegūtu. Galvenā informācija par IDE stāvokli un veikt tādas darbības kā projektu un atsevišķu failu atvēršana, saglabāšana un aizvēršana, moduļa izveide, informācijas iegūšana par aktuālo projektu (moduļu un veidlapu skaits, to nosaukumi utt.), reģistrācija failu sistēma, atsevišķu moduļu saskarņu organizēšana utt. Papildus moduļu paziņotājiem rīka interfeiss definē pievienojumprogrammu paziņotājus, kas paziņo par tādiem notikumiem kā failu un projektu atvēršana/aizvēršana, projekta darbvirsmas faila ielāde un saglabāšana, projekta moduļu pievienošana/izslēgšana, pakotņu instalēšana/atinstalēšana, projekta kompilēšana un, atšķirībā no moduļa paziņotājiem, pievienojumprogrammas ļauj izpildīt notikumus.

Turklāt rīka interfeiss nodrošina iespēju piekļūt Delphi IDE galvenajai izvēlnei, ļaujot tajā iegult papildu vienumus. Ekspertu saskarne (modulis ExptIntf.pas) ir pamats ekspertu izveidei - programmatūras moduļiem, kas ir iebūvēti IDE, lai paplašinātu tā funkcionalitāti. Eksperta piemērs ir Delphi datu bāzes veidlapu vednis, kas ģenerē veidlapu datu bāzes tabulas satura apskatei un modificēšanai. Pēc ekspertu klases noteikšanas mums ir jāpārliecinās, ka Delphi “uzzina” par mūsu ekspertu. Lai to izdarītu, tas jāreģistrē, izsaucot procedūru RegisterLibraryExpert, kā parametru nododot tai ekspertu klases gadījumu. Kā ilustrāciju izveidosim vienkāršu esStandard stila ekspertu, kas, izvēloties atbilstošo Delphi izvēlnes vienumu, parāda ziņojumu, ka tas darbojas. Kā redzams no iepriekšējās tabulas, esStandard stilam ir jāignorē sešas metodes:

Lai eksperts tiktu “aktivizēts”, jāatlasa izvēlnes vienums Komponents/Instalēt komponentu... , dialoglodziņā Pārlūkot jāizvēlas modulis, kurā atrodas eksperts (mūsu gadījumā exmpl_01.pas), jānoklikšķina uz Labi un pēc dclusr30.dpk pakotnes kompilēšanas ir jāparādās vienumam Simple Expert 1, sadaļā Helpards informācijas sadaļa “Palīdzība ir sākusies!”. . Kāpēc Delphi sadaļā Palīdzība ievieto ekspertu izvēlnes vienumu, paliek noslēpums. Ja jums nepatīk, ka izvēlnes vienums parādās jebkurā vietā Delphi, nevis tur, kur vēlaties, ir iespējama šāda opcija: izveidojiet ekspertu pievienojumprogrammas stilā, kas izslēdz izvēlnes vienuma automātisku izveidi, un pievienojiet izvēlnes vienumu “manuāli”, izmantojot Tool Interface rīkus. Tas ļaus jums patvaļīgi iestatīt jaunā vienuma atrašanās vietu galvenajā izvēlnē.

Lai pievienotu izvēlnes vienumu, tiek izmantota TIToolServices klase - rīka interfeisa pamats - un TIMainMenuIntf, TIMEnuItemIntf klases, kas ievieš saskarnes ar IDE galveno izvēlni un tās vienumiem. TIToolServices klases ToolServices instanci izveido pati IDE, kad tā tiek inicializēta. Ņemiet vērā, ka izstrādātāja pienākums ir atbrīvot Delphi galvenās izvēlnes un tās vienumu saskarnes. Pa ceļam nedaudz sarežģīsim Expert Advisor funkcionālo slodzi: aktivizējot tā izvēlnes vienumu, tas izsniegs sertifikātu par gadā atvērtā projekta nosaukumu. Šis brīdis vidē: Šajā piemērā centrālo vietu ieņem funkcija AddIDEMenuItem, kas Delphi IDE galvenajai izvēlnei pievieno izvēlnes vienumu. Kā parametrus tas saņem jaunā izvēlnes vienuma tekstu, tā identifikatoru, tā vienuma identifikatoru, pirms kura tiek ievietots jaunais elements, taustiņa simbolisko attēlojumu, ko kopā ar taustiņu Ctrl var izmantot, lai ātra piekļuve uz jauno vienumu un notikumu apdarinātāju, kas atbilst jaunā vienuma atlasei. Esam pievienojuši jaunu izvēlnes vienumu sadaļai Skats pirms vienuma Pulksteņi.

Tagad iepazīsimies ar paziņotājiem. Definēsim pievienojumprogrammas paziņotāju, kas izseko, kad projekti tiek slēgti/atvērti, un attiecīgi pielāgo lauku, kurā tiek glabāts aktīvā projekta nosaukums (īsuma labad izlaižam tādu metožu ieviešanu, kuras nav mainījušās salīdzinājumā ar iepriekšējo piemēru): Lai ieviestu notifikatoru, mēs definējām klasi TAddInNotifier, kas ir TIAddNotIntification metodes pēctece. IDE izsauks šo metodi ikreiz, kad notiks notikums, uz kuru var reaģēt pievienojumprogrammas paziņotājs (katrs šāds notikums tiek apzīmēts ar atbilstošo TFileNotification tipa konstanti). TAddInNotifier klases lauks Eksperts tiek izmantots atsauksmes ar ekspertu (metode TAddInNotifier.FileNotification). Eksperta iznīcinātājā pieteicēja reģistrācija tiek nereģistrēta un paziņotājs tiek iznīcināts. Tagad ilustrēsim moduļu paziņotāju izmantošanu. Izveidosim pievienojumprogrammas ekspertu, kas izdod ziņojumus par katru projekta faila saglabāšanas darbību (īsuma labad nav norādīta mums jau zināmo metožu ieviešana): Šajā piemērā pievienojumprogrammas eksperts uzrauga notikumus, kas atbilst projektu atvēršanai/slēgšanai.

Katru reizi, kad tiek atvērts projekts, tiek reģistrēts projekta failam atbilstošs moduļa paziņotājs. Īstenošanas ziņā moduļu paziņotāji ir līdzīgi pievienojumprogrammu paziņotājiem: mēs definējam TModuleNotifier klasi, kas ir TIModuleNotifier pēctecis, un ignorējam tās metodes Notify un ComponentRenamed. IDE izsauc metodi Notify, kad notiek noteikti ar šo moduli saistīti notikumi; šīs metodes ietvaros tiek noteikta reakcija uz konkrētu notikumu. Metode ComponentRenamed tiek izsaukta, kad mainās tā komponenta nosaukums, kas atrodas moduļa formā. Lūdzu, ņemiet vērā, ka mēs neizmantojam šo metodi, bet mums tā ir jāpārtrauc, pretējā gadījumā, mainoties komponenta nosaukumam, tiks izsaukta bāzes klases abstraktā metode, kas noved pie neparedzamām sekām.

Moduļa paziņotāja reģistrēšana ir nedaudz sarežģītāka nekā paziņotāja pievienojumprogrammas reģistrēšana: vispirms mēs iegūstam moduļa interfeisu (TIModuleInterface) un pēc tam reģistrējam paziņotāju, izmantojot moduļa saskarni. Kad projekts tiek slēgts, moduļa paziņotājs tiek atcelts (atkal izmantojot TIModuleInterface) un paziņotājs tiek iznīcināts. Noslēgumā mēs parādīsim, kā jūs varat noteikt kursora pozīciju koda redaktora logā. Izveidosim Expert Advisor, kas, izvēloties atbilstošo izvēlnes vienumu, parādītu ziņojumu ar aktīvā faila nosaukumu un kursora pozīciju tajā (tiek dota tikai šim piemēram būtisku metožu ieviešana): Lai noteiktu kursora pozīciju, jāsaņem šāda saskarņu secība: moduļa interfeiss (TIModuleInterface); koda redaktora saskarne (TIEditorInterface); moduļa skata saskarne redaktora logā (TIEditView).

Ja aktīvais fails ar avota tekstu (*.pas) ir aktīvs, izvēloties eksperta izvēlnes vienumu, tad tiek parādīts ziņojums, kurā ir aktīvā faila nosaukums un kursora pašreizējā atrašanās vieta tajā. Ja aktīvais fails nav pas fails, ziņojums netiek izdots. Aktīvā faila nosaukuma iegūšanai tiek izmantota TIToolServices klases metode GetCurrentFile. Tas noslēdz mūsu diskusiju par publisko saskarņu izmantošanas veidiem. CD-ROM satur visu norādīto piemēru pirmkodu. CD-ROM satur arī sarežģītāku un paplašinātu piemēru, kurā ir pievienots eksperts, kas ļauj lietotājam pievienot grāmatzīmi Delphi moduļu pirmkodam. Failā bkmrks97.htm ir īsa rokasgrāmata par grāmatzīmju eksperta instalēšanu un lietošanu. Tātad šajā rakstā publiskās saskarnes tiek apspriestas vispārīgi un sniegti to izmantošanas piemēri. Atkal, pateicoties atvērto saskarņu pirmkodu pieejamībai, jūs varat viegli saprast jūs interesējošo informāciju. Mēs ceram, ka atvērto saskarņu piedāvātās iespējas sniegs jums vairāk nekā vienu drosmīgu un noderīgu ideju.

tikai rezultātu dēļ

stingra termiņu ievērošana

Pārredzamība

projekta īstenošana

tehniskais atbalsts kā dāvana

Programmēšana, uzlabojumi, konsultācijas par 1C

Kā mēs strādājam

1. Mēs pārrunājam problēmu pa tālruni. Ja jums ir attālā piekļuve - parādiet datora ekrānā.

2. Darbu vērtējam rubļos, ja projekts ir liels, ja nē - aptuveno stundu skaitu.

3. Mēs paveicam darbu.

4. Jūs pieņemat darbu savā programmā, ja ir nepilnības, mēs tās izlabojam.

5. Mēs izrakstām rēķinu, jūs maksājat.

Darba izmaksas

1. Visi darbi ir sadalīti 3 kategorijās: konsultācija, tipiskas konfigurācijas atjaunināšana, jaunas atskaites izstrāde vai programmēšana, apstrāde, pogas utt.

3. Darbam virs 10 stundām, iepriekš sastādīts tehniskais uzdevums ar darba aprakstu un izmaksām. Darbs sākas pēc TOR apstiprināšanas ar jums.

Tehniskā palīdzība

1. Ja iepriekš pieņemtajos darbos atrodat kļūdas, 3 mēnešu laikā tās izlabojam bez maksas.

2. Pastāvīgajiem klientiem bez maksas novēršam nepilnības savā darbā gada laikā.

Programmas jūsu uzņēmuma vadīšanai.

Pērciet 1C: Enterprise

Mēs esam oficiālais izplatītājs 1C uzņēmumi, jūs varat iegādāties no mums dažādus programmatūras produkti un licences. Papildus "kastes" iegādei mēs palīdzēsim iestatīt programmu, konsultēsim un veiksim pamata iestatījumus.

  • Grāmatvedība
  • Veikala automatizācija
  • Vairumtirdzniecība
  • Palīdzība ar uzstādīšanu un sākotnējā iestatīšana iekļauts komplektā!
  • Konfigurāciju pielāgošana klienta vajadzībām, jaunu moduļu izstrāde, ja standarta konfigurācijā nav nepieciešamo funkciju.
1c grāmatvedība 1C: Tirdzniecības vadība 1C: mazumtirdzniecība 1C: Algu un cilvēkresursu vadība
No 3300 rubļiem. No 6700 rubļiem. No 3300 rubļiem. No 7400 rubļiem.

Servera nodrošināšana.

Tūlītējas iestatīšanas serveris + 1C.

Nav servera? Vienalga, mēs atlasīsim un ātri uzstādīsim serveri "mākonī". Par nelielu samaksu jūs saņemat ļoti uzticamu risinājumu.

  • Pieejamība 24/7
  • Nav nepieciešams paturēt savu sistēmas administrators(ietaupījumi segs jūsu servera izmaksas).
  • Ātra 1C iestatīšana un uzstādīšana serverī, pēc 3 dienām jums jau būs pilnībā strādājoša sistēma.
  • Jebkurā laikā varat pārcelties uz vietējais serveris ja risinājums nav apmierinošs.

SMS no jūsu 1C

Vai vēlaties, lai klienti savlaicīgi uzzinātu par akcijām un atlaidēm? Klienti neatgriežas? Iestatiet SMS sūtīšanu tieši no 1C!

Mūsu uzņēmums varēs ātri iestatīt SMS sūtīšanu jūsu klientiem tieši no 1C. Notikumu piemēri, kurus var automatizēt:

  • Pateicība par pirkumu un bonusu uzkrāšana uzreiz pēc nākamā pirkuma.
  • Bonusu uzkrāšana kartē kā dāvana dzimšanas dienā/citā svarīgā vai svētku dienā.
  • Noliktavas paziņojums.
  • Dāvanu kupona derīguma termiņš.
  • Paziņojums par priekšapmaksas saņemšanu un preču rezervāciju.
  • Adrese ar norādēm uz veikalu/biroju, tālruņu numuri.
  • Un tā tālāk.

Iestatīšanu 1C var veikt mūsu speciālisti vai mūsu darbinieki. Ar tarifiem var iepazīties SMS-tarifu lapā.

  • SMS piegādes garantija, nauda tiek izņemta tikai par piegādāto SMS.
  • Atsevišķs rēķins par katru SMS.
  • Līdzsvara papildināšana dažādos veidos.
  • Skatiet visu nosūtīto SMS vēsturi jebkurā laikā.
  • Sūtītāja vārds, nevis ciparu numurs saņēmēja tālrunī.

Objektorientētā programmēšana (OOP) papildus klases jēdzienam nodrošina arī interfeisa pamatjēdzienu.

Kas ir saskarne un kādas ir iespējas strādāt ar to Delphi programmēšanas valodā?

Interfeiss ir semantiska un sintaktiska konstrukcija programmas kodā, ko izmanto, lai norādītu klases vai komponenta sniegtos pakalpojumus (Wikipedia).

Faktiski saskarne nosaka rekvizītu un metožu sarakstu, kas jāizmanto, strādājot ar klasi, kas ievieš šo saskarni, kā arī to parakstu (nosaukums, datu tips, pieņemtie parametri (procedūrām un funkcijām) utt.). Tādējādi klasei, kas ievieš saskarni, obligāti jāievieš visi tās komponenti. Turklāt stingri saskaņā ar veidu, kā tie ir aprakstīti tajā.

Ļoti bieži saskarnes tiek salīdzinātas ar abstraktām klasēm, taču attiecībā uz visām līdzībām šis salīdzinājums nav pilnīgi pareizs. Abstraktajās nodarbībās ir pieejama vismaz dalībnieku redzamības kontrole. Tajā pašā laikā saskarnēm nav definētas darbības jomas.

Saskarnes ļauj padarīt arhitektūru elastīgāku, jo tās unificē piekļuvi vienai vai otrai funkcionalitātei, kā arī ļauj izvairīties no vairākām problēmām, kas saistītas ar klases pārmantošanu (saskarnes var būt mantotas arī viena no otras).

Delphi interfeisa deklarēšanai izmanto interfeisa atslēgvārdu. Šis ir tas pats atslēgvārds, kas definē moduļa sadaļu, kurai var piekļūt no ārpuses (starp interfeisa un ieviešanas atslēgvārdiem). Tomēr, deklarējot saskarni, tiek izmantota cita sintakse, līdzīgi kā klašu deklarēšanai.

Delphi/Pascal

IMyNewInterface = interfeisa procedūra InterfaceProc; beigas;

IMyNewInterface =interfeiss

procedūra InterfaceProc ;

beigas ;

Tādējādi pašai saskarnes deklarācijas sintaksei nav būtisku atšķirību no citām programmēšanas valodām (uz Pascal balstītās sintakses funkcijas netiek ņemtas vērā). Tajā pašā laikā saskarņu ieviešanai ir vairākas raksturīgas iezīmes.

Fakts ir tāds, ka Delphi saskarnes sākotnēji tika ieviestas, lai atbalstītu COM tehnoloģiju. Tāpēc IIinterfeisa interfeiss, kas Delphi ir visu pārējo saskarņu priekštecis (sava ​​veida TObject analogs), jau satur trīs pamata metodes darbam ar šo tehnoloģiju: QueryInterface, _AddRef, _Release. Rezultātā, ja klase ievieš jebkuru saskarni, tai ir jāīsteno arī šīs metodes. Pat ja šī klase nav paredzēta darbam ar COM.

Pateicoties šai IIinterfeisa interfeisa funkcijai, Delphi saskarņu izmantošana vairumā gadījumu noved pie acīmredzami neizmantotu līdzekļu pievienošanas klasei.

Ir bibliotēkas klase TInterfaceObject, kurā jau ir šo metožu realizācija un, mantojot no tās, nav nepieciešamības pašiem tās ieviest. Bet, tā kā Delphi neatbalsta vairāku klašu pārmantošanu, tā izmantošana bieži vien rada papildu sarežģītību jau nepieciešamās funkcionalitātes izstrādē un ieviešanā.

Tas viss noveda pie tā, ka, neskatoties uz visām saskarņu sniegtajām iespējām, viņu praktiska izmantošana Delfos gandrīz netika tālāk par darbu ar COM.

Tā kā tās ir optimizētas darbam galvenokārt ar šo tehnoloģiju, saskarnes vai drīzāk funkcionalitātes un arhitektūras ierobežojumi, ko tie bez kļūmēm pievieno, neattaisno sevi citu problēmu risināšanā.

Tāpēc daudziem Delphi programmētājiem joprojām faktiski ir liegts spēcīgs un elastīgs rīks lietojumprogrammu arhitektūras izstrādei.

Radīšana saskarne lietotājs var izvēlēties no programmas darbībai nepieciešamo komponentu paletes Delphi sastāvdaļas, darbinieki saskarne vadība, kā arī saskarne informācijas parādīšana un pārsūtīšana uz veidlapu ar sekojošu izkārtojumu.

Jūsu izveidotajā lietotāja saskarnē ir jāizmanto standarta, lietotājam pazīstami elementi un jānodrošina maksimālas ērtības. To visu galu galā nosaka tāds kritērijs kā interfeisa efektivitāte – maksimālais rezultāts ar minimālu piepūli.
Lietotājam draudzīgas saskarnes izveides principi ir zināmi. Kā vispārīgākie veidošanas principi lietotāja saskarnes var apsvērt trīs galvenos punktus:

  1. Programmai ir jāpalīdz izpildīt uzdevumu, nevis jākļūst par uzdevumu.
  2. Strādājot ar programmu, lietotājam nevajadzētu justies kā muļķim.
  3. Programmai jādarbojas tā, lai lietotājs neuzskatītu datoru par muļķi.
Pirmais princips- šī ir tā sauktā saskarnes "caurspīdīgums". Lietotāja saskarnei jābūt intuitīvai, viegli apgūstamai, un tā nedrīkst radīt lietotājam problēmas, kas viņam būs jāpārvar šajā procesā. Izmantojiet standarta, neizgreznotus komponentus, izmantojiet parastās vadīklas, ko izmanto līdzīgas programmas, un jūs sasniegsiet veiktspējas kritērijus pirmais princips.

Otrais princips slēpjas lietotāju intelektuālo spēju neievērošanā. No savas pieredzes zinu, ka bieži lietotāji ne tikai nezina, kā strādāt pie datora, bet vienkārši baidās kaut ko darīt paši. Tāpēc lietotāja saskarnei jābūt pēc iespējas draudzīgākai.
Turklāt lietotāju bailes bieži vien ir pamatotas, jo programmas un paša datora izmaksas nevar salīdzināt ar, piemēram, datu bāzes izmaksām, kas izveidota ar daudzu gadu pūliņiem. Tāpēc programmētājam, veidojot lietotāja interfeisu, vienmēr ir jāiebūvē programma "muļķu aizsardzība" - no nepareizām darbībām un lietotāja nepareizu datu ievadīšanas. Bet daži programmētāji pārāk aizraujas ar šādu aizsardzību, padara to pārāk uzmācīgu, un rezultātā programmas darbība atgādina slaveno "solis pa kreisi, solis pa labi tiek uzskatīts par bēgšanu"! Un tas, ko programmētājs rada kā problēmas risinājumu, pats sāk radīt problēmas.
Ievērot otrais princips nav nepieciešams ļaut programmai "izlabot" lietotāja darbības un norādīt, kas tieši viņam rīkoties, iedzenot viņu šauros rāmjos. Tāpat nevajadzētu pārāk aizrauties ar informatīvo mājienu ziņojumu, īpaši dialoglodziņu, rādīšanu, jo tas novērš lietotāja uzmanību no darba. Un labāk ir nodrošināt iespēju pilnībā atspējot uzvednes.

Trešais princips ir izveidot programmu ar iespējami lielākām "garīgajām" spējām. Neskatoties uz datortehnoloģiju straujo attīstību, pat plaši izplatītas programmas tikai ļoti nosacīti var saukt par tām, kurām ir mākslīgais intelekts. Tie traucē lietotāja darbam, parādot dialoglodziņus ar muļķīgiem jautājumiem, kas izraisa neizpratni pat visvienkāršākajās situācijās. Rezultātā lietotāji savās sirdīs iesaucas: "Nu, šī automašīna ir stulba!"
Mani personīgi kaitina gandrīz visu nemitīgie jautājumi. teksta redaktori par to, vai saglabāt mainīto tekstu, lai gan sākotnējais un pašreizējais teksts neatšķiras ne par vienu rakstzīmi. Jā, es kaut ko ierakstīju, bet pēc tam visu atgriezu atpakaļ, vai tiešām to nav iespējams izdomāt! Man ir jāpārbauda, ​​​​vai es kaut ko nesajaucu.

Mēģiniet ievērot šādus noteikumus:

Standarta saskarnes elementi
Šim interfeisa elementam izmantojiet standarta komponentus. Iepazīstoties ar jūsu programmu, lietotājs netērēs laiku vienam otra iepazīšanai, bet nekavējoties sāks strādāt – tā ir viena no profesionāli veidotas programmas pazīmēm.
Maza instrumentu palete
Centieties neizmantot pārāk daudz dažādu komponentu. Un, protams, izmantojot vienu standarta komponentu kaut kur vienuviet, līdzīgā gadījumā arī to izmantot.
Vienāda atstarpe starp vadības ierīcēm
Sakārtojiet saskarnes elementus vienādā attālumā vienu no otra. Nejauši izkaisītie komponenti rada neprofesionāla produkta sajūtu. Un otrādi, rūpīgi kalibrēts pogu, slēdžu, izvēles rūtiņu un citu interfeisu veidojošo komponentu izvietojums formā ir kvalitatīva darba pazīme.
ciļņu secība. "pareiza kārtība
TabOrder ir secība, kādā ekrāna kursors pārvietojas virs vadīklām, kad tiek nospiests taustiņš Tab. Pareizi uzrakstītā programmā kursors pārvietojas, vadoties pēc lietotāja darba ar programmu loģikas. Veidojot programmu, programmētājs bieži maina komponentus, dažus noņem, pēc vajadzības pievieno citus. Rezultātā pabeigtajā programmā kursors nejauši lec pāri formai. Pēc programmas pabeigšanas neaizmirstiet iestatīt TabOrder.
Fonta izvēle
Vienkārši atstājiet fontus mierā. Delphi noklusējuma fonti darbosies jebkurā sistēmā, kurā varētu darboties jūsu programma. Izmantojiet treknrakstu tikai, lai izceltu svarīgus elementus. Pieteikums kursīvs un jo īpaši pasvītrojums, ko lietotājs var sajaukt ar hipersaiti – slikta forma.
Krāsu izvēle
Kas attiecas uz interfeisa elementu krāsām, tāpat kā fontu gadījumā, labāk tos atstāt standarta pēc noklusējuma. Delphi izmanto Windows sistēmas paleti, un, mainot to, lietotājs var viegli pielāgot krāsas sev.
Alternatīva vadība
Profesionāli veidotu programmu jāspēj vadīt ne tikai ar peli, bet arī ar klaviatūru. Nedrīkst būt pieejamas funkcijas, kuras var izpildīt tikai ar peli (ievilkšana grafiskie redaktori neskaitās!). Visbiežāk izmantotajām funkcijām ir jānodrošina "karstie taustiņi", kas nodrošina ātru piekļuvi.
Interfeisa veidošanas bloki
Attiecībā uz konkrētiem lietotāja interfeisa elementiem lietotāja mijiedarbības ar programmu kvalitāte ir atkarīga no:
  • kontroles elementa atbilstība tā uzdevumam;
  • noteikumi, saskaņā ar kuriem darbojas kontrole.
    Šajā lapā ir aplūkoti dažu interfeisa elementu izveides noteikumi.
Un tagad es vēlos parādīt, kādus rīkus Delphi piedāvā, lai pārvaldītu komponentus veidlapā, to relatīvo pozīciju un kursora darbību, kad tiek nospiests taustiņš. Tab.

Lai sastāvdaļas sakārtotu viena pret otru pareizā secībā, vispirms nepieciešams tos izcelt. Varat vienkārši vilkt peli virs veidlapas apgabala, kurā ir atlasītie komponenti. Vai arī turot Shift", ar to pašu peli norādiet katru komponentu, kas jāatlasa. Atkārtots peles klikšķis uz atlasītā komponenta (nospiežot " Shift") noņem atlasi.

Atlasītos komponentus var kontrolēt kā vienu veselumu - pārvietot pa veidlapu, piešķirt vērtības tiem pašiem rekvizītiem, kopēt (instalēšanai, piemēram, citā veidlapā), pat dzēst.

Tagad ar peles labo pogu noklikšķiniet uz viena no komponentiem un uznirstošajā izvēlnē atlasiet Pozīcija -> Izlīdzināt... Parādīsies dialoglodziņš, kas ļaus pielāgot komponentu pozīciju grupā horizontāli un vertikāli. Piemēram, mums ir jāizlīdzina mūsu četras pogas pa kreisi un jāpārliecinās, ka starp tām ir vienāds vertikālais attālums. Lai to izdarītu, atlasiet radio pogas Horizontāli: kreisās puses Un Vertikāli: telpa vienādi.

Izvēloties vienumu Centrs, mēs sakārtosim sastāvdaļas tā, lai to centri atrastos vienā līnijā horizontāli vai vertikāli, un punkts Centrs logā pārvieto komponentus uz loga centru horizontāli vai vertikāli.

Tajā pašā izvēlnē rinda Tab O pasūtīt... izraisa dialoglodziņa parādīšanos, kas kontrolē kursora kustību caur interfeisa elementiem, kad tiek nospiests taustiņš Tab. Kad ekrānā parādās forma, kursors, protams, atradīsies uz komponenta, kas atrodas dialoglodziņa pirmajā rindā. Un tad tas tiks pārvietots uz leju sarakstā. Dialoglodziņā divas zilas bultiņas "uz augšu" un "uz leju" kontrolē atlasītā komponenta pozīciju. Atlasiet vajadzīgo komponentu, izmantojiet bultiņas, lai pārietu uz vajadzīgo rindiņu sarakstā utt.

Izvēloties izvēlnes vienumu Kontrole -> Tiek parādīta apakšizvēlne ar diviem vienumiem:

  • Novietot priekšā
  • nosūtīt atpakaļ
Šīs ir komponentu metodes, kas ir pieejamas arī programmatiski. Button1.SendToBack pārvieto pogu uz "fonu" un Poga1.BringToFront- novietot priekšā". Tas ir, ja viens komponents ir novietots virs cita, šīs metodes tos apmaina. Gadījumi, kad to var piemērot, ir diezgan acīmredzami.


Tops