Mikä on käyttöliittymä delphissä. Parhaat IT-ratkaisut yrityksille. Oletuspainikkeet

Tämä artikkeli perustuu foorumeilla esitettyihin kysymyksiin: "Kuinka voin palauttaa merkkijonon DLL:stä?", "Kuinka välittää ja palauttaa tietueiden joukko?", "Kuinka välittää lomake DLL-tiedostoon?".

Jotta et vietä puolta elämästäsi sen selvittämiseen, tässä artikkelissa nostan kaiken lautaselle.

Tämän artikkelin aiheita on käsitelty tässä blogissa useammin kuin kerran vaihtelevassa määrin, mutta tässä artikkelissa ne on koottu yhteen ja perusteltu. Lyhyesti sanottuna voit heittää linkin tähän artikkeliin niille, jotka kehittävät DLL-tiedostoja.

Tärkeä muistiinpano: artikkeli pitää lukea peräkkäin. Koodiesimerkit tarjotaan vain muodossa esimerkkejä, jokaisessa artikkelin vaiheessa (kohdassa) esimerkkikoodi lisätään uusilla tiedoilla. Esimerkiksi aivan artikkelin alussa ei mainita "klassisia" menetelmiä (kuten GetLastErrorin käyttö, sdtcall-käytäntö jne.), jotka korvataan sopivammilla artikkelin edetessä. Tämä tehtiin, jotta "uudet" ("epätavalliset") mallit eivät herättäisi kysymyksiä. Muussa tapauksessa jokaiselle esimerkille on lisättävä huomautus, kuten: "tätä käsitellään alla olevassa kappaleessa, mutta sitä käsitellään tässä kappaleessa." Joka tapauksessa artikkelin lopussa on linkki valmiiseen koodiin, joka on kirjoitettu ottaen huomioon kaikki artikkelissa sanottu. Voit vain ottaa sen ja käyttää sitä. Ja artikkeli selittää miksi ja miksi. Jos et ole kiinnostunut "miksi ja miksi", vieritä loppuun johtopäätökseen ja linkkiin ladataksesi esimerkki.

Yksi Delphi-ohjelmointiympäristön suurimmista vahvuuksista on sen avoin arkkitehtuuri, jonka ansiosta Delphi mahdollistaa eräänlaisen metaohjelmoinnin, jolloin voit "ohjelmoida ohjelmointiympäristön". Tämä lähestymistapa vie Delphin laadullisesti uudelle tasolle sovelluskehitysjärjestelmissä ja antaa sinun rakentaa tähän tuotteeseen lisätyökaluja, jotka tukevat lähes kaikkia sovellusjärjestelmien luomisen vaiheita. Näin laaja valikoima mahdollisuuksia avautuu Delphissä toteutetun ns. avoimien rajapintojen konseptin ansiosta, jotka ovat yhteyslinkki IDE:n (Integrated Development Environment) ja ulkoisten työkalujen välillä.

Tämä artikkeli on omistettu Delphin avoimille käyttöliittymille ja antaa yleiskatsauksen niiden tarjoamista ominaisuuksista. Delphi määrittelee kuusi avointa käyttöliittymää: työkaluliittymä, suunnitteluliittymä, asiantuntijaliittymä, tiedostoliittymä, muokkausliittymä ja versionhallintaliittymä. On epätodennäköistä, että tämän artikkelin puitteissa pystyisimme kattamaan ja havainnollistamaan yksityiskohtaisesti kunkin niistä ominaisuuksia. Delphin lähdetekstit auttavat sinua ymmärtämään käsiteltäviä asioita perusteellisemmin, onneksi kehittäjät ovat toimittaneet niille yksityiskohtaisia ​​kommentteja. Julkisia rajapintoja edustavien luokkien ilmoitukset ovat vastaavissa moduuleissa hakemistossa...\Delphi\Source\ToolsAPI. Design Interface (moduuli DsgnIntf.pas) tarjoaa työkaluja ominaisuuseditorien ja komponenttieditorien luomiseen.

Ominaisuus- ja komponenttieditorit ovat erillisen keskustelun arvoinen aihe, joten muistetaan vain, että ominaisuuseditori ohjaa Object Inspectorin toimintaa yrittäessään muuttaa vastaavan ominaisuuden arvoa ja komponenttieditori aktivoituu kaksoisnapsauttamalla hiiren vasen painike lomakkeelle sijoitetun komponentin kuvan päälle. Version Control Interface (VCSIntf.pas-moduuli) on tarkoitettu versionhallintajärjestelmien luomiseen. Versiosta 2.0 lähtien Delphi tukee integroitua versionhallintajärjestelmää Intersolv PVCS, joten useimmissa tapauksissa ei ole tarvetta kehittää omaa järjestelmää. Tästä syystä jätämme huomiotta myös versionhallintaliittymän. File Interface (FileIntf.pas-moduuli) mahdollistaa IDE:n toimivan tiedostojärjestelmän ohituksen, jolloin voit valita oman tapasi tallentaa tiedostoja (esimerkiksi tietokantapalvelimen Memo-kentissä). Muokkausliittymä (moduuli EditIntf.pas) tarjoaa pääsyn lähdetekstipuskuriin, jonka avulla voit analysoida ja luoda koodia, määrittää ja muuttaa kohdistimen sijaintia koodieditori-ikkunassa sekä ohjata lähdetekstin syntaktista korostusta.

Erikoisluokat tarjoavat rajapinnat lomakkeeseen sijoitettuihin komponentteihin (komponentin tyypin määrittäminen, viittausten hankkiminen ylä- ja alakomponentteihin, ominaisuuksien käyttö, kohdistuksen siirto, poistaminen jne.), itse lomakkeeseen ja projektin resurssitiedostoon. Muokkausliittymän avulla voit myös tunnistaa ns. modulaariset ilmoitukset, jotka määrittävät reaktion tapahtumiin, kuten moduulin lähdetekstin muuttaminen, lomakkeen muuttaminen, komponentin uudelleennimeäminen, moduulin tallentaminen, uudelleennimeäminen tai poistaminen, projektin resurssitiedoston muuttaminen, jne. Työkalun käyttöliittymä (ToolIntf-moduuli. pas) tarjoaa kehittäjille keinon saada yleistä tietoa IDE:n tilasta ja suorittaa toimintoja, kuten projektien ja yksittäisten tiedostojen avaaminen, tallentaminen ja sulkeminen, moduulin luominen, nykyisen projektin tietojen hankkiminen (moduulien ja lomakkeiden lukumäärä, niiden nimet jne.) , tiedostojärjestelmän rekisteröinti, rajapintojen järjestäminen yksittäisiin moduuleihin jne. Modulaaristen ilmoitusten lisäksi Tool Interface määrittelee lisäosat, jotka ilmoittavat tapahtumista, kuten tiedostojen ja projektien avaamisesta/sulkemisesta, työpöytäprojektitiedoston lataamisesta ja tallentamisesta, projektimoduulien lisäämisestä/poissulkemisesta, pakettien asentamisesta/poistamisesta, projektin kokoamisesta ja in Toisin kuin modulaariset ilmoitukset, lisäosien ilmoittajien avulla voit peruuttaa joidenkin tapahtumien suorittamisen.

Lisäksi Tool Interface tarjoaa tavan päästä Delphi IDE:n päävalikkoon, jolloin voit upottaa siihen lisäkohteita. Expert Interface (ExtIntf.pas-moduuli) on perusta asiantuntijoiden luomiselle - ohjelmistomoduuleille, jotka on sisäänrakennettu IDE:hen laajentamaan sen toimintoja. Esimerkki asiantuntijasta on Delphi Database Form Wizard, joka luo lomakkeen tietokantataulukon sisällön tarkastelua ja muuttamista varten. Asiantuntijaluokan määrittämisen jälkeen meidän on varmistettava, että Delphi "oppii" asiantuntijastamme. Tätä varten sinun on rekisteröitävä se kutsumalla RegisterLibraryExpert-proseduuri ja välitettävä sille parametrina asiantuntijaluokan esiintymä. Tehdään esimerkkinä yksinkertainen esStandard-tyylinen asiantuntija, joka, kun valitset vastaavan Delphi-valikkokohdan, näyttää viestin, että se on käynnissä. Kuten yllä olevasta taulukosta näet, esStandard-tyyli edellyttää kuuden menetelmän ohittamista:

Jotta asiantuntija saadaan "toimiin", sinun on valittava Komponentti/Asenna komponentti... -valikkokohta, valittava Selaus-valintaikkunasta asiantuntijan sisältävä moduuli (tapauksessamme exmpl_01.pas), napsauta OK ja dclusr30.dpk-paketin kääntämisen jälkeen Delphin päävalikon Ohje-osiossa tulee näkyviin Simple Expert 1 -kohta, kun se on valittuna, näyttöön tulee ilmoitus "Standard Expert aloitti!" Miksi Delphi sijoittaa asiantuntija-valikkokohdan Ohje-osioon, jää mysteeriksi. Jos et pidä siitä, että valikkokohta näkyy missä Delphi haluaa, ei minne haluat, seuraava vaihtoehto on mahdollinen: luo asiantuntija apuohjelmatyyliin, joka eliminoi valikkokohdan automaattisen luomisen ja lisää valikkokohta "manuaalisesti" työkaluliittymän avulla. Näin voit asettaa uuden kohteen sijainnin päävalikossa mielivaltaisella tavalla.

Lisätäksesi valikkokohdan, käytä työkalurajapinnan perustana olevaa TIToolServices-luokkaa sekä luokkia TIMenuIntf, TIMEnuItemIntf, jotka toteuttavat liitännät IDE-päävalikkoon ja sen kohtiin. ToolServices-luokan TIToolServices ilmentymä luo itse IDE, kun se alustetaan. Huomaa, että vastuu Delphin päävalikon ja sen kohteiden käyttöliittymien julkaisemisesta on täysin kehittäjällä. Matkan varrella monimutkaistaan ​​hieman asiantuntijan toiminnallista kuormitusta: aktivoidessaan valikkokohtaansa se antaa varmenteen ympäristössä parhaillaan avoinna olevan projektin nimestä: Tässä esimerkissä keskeisellä paikalla on AddIDEMenuItem-toiminto. , joka lisää valikkokohdan IDE Delphin päävalikkoon. Parametreina se vastaanottaa uuden valikkokohdan tekstin, sen tunnisteen, sen kohdan tunnisteen, jonka eteen uusi kohta lisätään, symbolisen esityksen näppäimestä, jota voidaan käyttää yhdessä Ctrl-näppäimen kanssa nopeaan pääsyyn uusi nimike ja tapahtumakäsittelijä, joka vastaa uuden kohteen valintaa. Olemme lisänneet uuden valikkokohdan Näytä-osioon ennen Kellot-kohtaa.

Tutustutaanpa nyt ilmoittajiin. Määritetään apuohjelma, joka seuraa projektien sulkeutumista/avaamista ja muokkaa aktiivisen projektin nimen tallentavaa kenttää vastaavasti (jätämme lyhennyksen vuoksi pois sellaisten menetelmien toteutuksen, jotka eivät ole muuttuneet edelliseen esimerkkiin verrattuna): Toteuttaaksemme ilmoituksen, olemme määrittäneet TAddInNotifier-luokan, joka on jälkeläinen TIAddInNotifier, ja ohittanut FileNotification-menetelmän. IDE kutsuu tätä menetelmää aina, kun tapahtuu tapahtuma, johon apuohjelman ilmoittaja voi vastata (jokainen tällainen tapahtuma on merkitty vastaavalla TFileNotification-tyypin vakiolla). TAddInNotifier-luokan Expert-kenttää käytetään palautteen antamiseen asiantuntijalle (TAddInNotifier.FileNotification-menetelmä). Asiantuntijan tuhoajassa ilmoittaja poistetaan ja ilmoittaja tuhotaan. Havainnollistetaan nyt modulaaristen ilmaisimien käyttöä. Luodaan apuohjelman asiantuntija, joka lähettää viestejä jokaisesta projektitiedoston tallennustoimenpiteestä (lyhyyden vuoksi emme esitä meille jo tuttujen menetelmien toteutusta): Tässä esimerkissä apuohjelman asiantuntija seuraa tapahtumia vastaten hankkeiden avaamista/päättämistä.

Joka kerta kun projekti avataan, rekisteröidään projektitiedostoa vastaava modulaarinen ilmoitus. Toteutuksen suhteen modulaariset ilmoitukset ovat samanlaisia ​​kuin lisäosoittimet: määrittelemme TModuleNotifier-luokan, joka on TIModuleNotifierin jälkeläinen, ja ohitamme sen Notify- ja ComponentRenamed-metodit. IDE kutsuu Notify-menetelmää, kun tiettyjä tähän moduuliin liittyviä tapahtumia tapahtuu; Tässä menetelmässä määritetään reaktio tiettyyn tapahtumaan. ComponentRenamed-menetelmää kutsutaan, kun komponentin nimi moduulilomakkeessa muuttuu. Huomaa, että emme käytä tätä menetelmää, mutta meidän on ohitettava se, muuten komponentin nimen muuttuessa kutsutaan perusluokan abstraktia menetelmää, mikä johtaa arvaamattomiin seurauksiin.

Modulaarisen ilmoituksen rekisteröinti on hieman monimutkaisempi prosessi kuin apuilmoituksen rekisteröinti: hankimme ensin moduulirajapinnan (TIModuleInterface) ja sitten rekisteröimme ilmoituksen moduulirajapinnalla. Kun projekti suljetaan, modulaarisen ilmoituksen rekisteröinti poistetaan (jälleen TIMOduleInterfacen avulla) ja ilmoittaja tuhoutuu. Lopuksi näytämme, kuinka voit määrittää kursorin sijainnin koodieditori-ikkunassa. Luodaan asiantuntija, joka oikeaa valikkokohtaa valittaessa näyttäisi viestin, joka sisältää aktiivisen tiedoston nimen ja kursorin sijainnin siinä (näkyy vain tässä esimerkissä oleellisten menetelmien toteutus): Määrittääksesi kohdistimen sijainnin, meidän on hankittava seuraava rajapintojen sarja: modulaarinen rajapinta (TIModuleInterface); koodieditorin käyttöliittymä (TIEditorInterface); moduulin esittelyliittymä editoriikkunassa (TIEditView).

Jos asiantuntijavalikon kohtaa valittaessa lähdetekstitiedosto (*.pas) on aktiivinen, näyttöön tulee viesti, joka sisältää aktiivisen tiedoston nimen ja kursorin nykyisen sijainnin siinä. Jos aktiivinen tiedosto ei ole pas-tiedosto, viestiä ei lähetetä. Saadaksesi aktiivisen tiedoston nimen, käytä TIToolServices-luokan GetCurrentFile-metodia. Tämä päättää pohdiskelumme tapoista käyttää avoimia käyttöliittymiä. CD-ROM sisältää kaikkien annettujen esimerkkien lähdekoodin. CD-ROM sisältää myös monimutkaisemman ja yksityiskohtaisemman esimerkin, joka sisältää apuohjelman asiantuntijan, jonka avulla käyttäjä voi lisätä Delphi-moduulien lähdetekstin kirjanmerkkeihin. Lyhyt opas Bookmarks Expertin asentamiseen ja käyttöön on tiedostossa bkmrks97.htm. Joten tämä artikkeli tarjoaa yleiskatsauksen avoimista liitännöistä ja esimerkkejä niiden käytöstä. Toistakaamme vielä kerran: avoimien käyttöliittymien lähdekoodien saatavuuden ansiosta voit helposti ymmärtää sinua kiinnostavat yksityiskohdat. Toivomme, että avoimien käyttöliittymien tarjoamat mahdollisuudet antavat sinulle enemmän kuin yhden rohkean ja hyödyllisen idean.

vain tuloksen vuoksi

määräaikojen tiukka noudattaminen

Läpinäkyvyys

hankkeen toteuttaminen

tekninen tuki lahjaksi

Ohjelmointi, modifikaatiot, konsultaatiot 1C:stä

Miten toimimme

1. Keskustelemme ongelmasta puhelimitse. Jos sinulla on etäkäyttö, näytä se tietokoneen näytöllä.

2. Arvioimme työn ruplissa, jos projekti on suuri, likimääräinen tuntimäärä.

3. Teemme työn valmiiksi.

4. Hyväksyt ohjelmasi työn, jos siinä on puutteita, korjaamme ne.

5. Lähetämme laskun, sinä maksat.

Työn hinta

1. Kaikki työ on jaettu 3 kategoriaan: konsultointi, vakiokonfiguraation päivitys, uuden raportin kehittäminen tai ohjelmointi, käsittely, painike jne.

3. Yli 10 tuntia kestävistä töistä on laadittava etukäteen tekninen eritelmä työn kuvauksella ja hinnalla. Työ alkaa, kun tekniset tiedot on sovittu kanssasi.

Tekninen tuki

1. Jos havaitset virheitä aiemmin hyväksytyissä töissä 3 kuukauden sisällä, korjaamme ne maksutta.

2. Kanta-asiakkaille korjaamme työssämme havaitut puutteet veloituksetta vuoden sisällä.

Ohjelmisto yrityksesi hallintaan.

Osta 1C:Enterprise

Olemme 1C:n virallinen jälleenmyyjä, voit ostaa meiltä erilaisia ​​ohjelmistotuotteita ja lisenssejä. Laatikon ostamisen lisäksi autamme sinua ohjelman asettamisessa, neuvomme ja perusasetukset.

  • Kirjanpito
  • Myymäläautomaatio
  • Tukkukauppa
  • Asennus- ja alkuasennusapu sisältyy pakettiin!
  • Kokoonpanojen hienosäätö asiakkaan tarpeiden mukaan, uusien moduulien kehittäminen, mikäli vakiokokoonpanossa ei ole tarvittavia toimintoja.
1c kirjanpito 1C: Kaupan hallinta 1C: Vähittäiskauppa 1C: Palkka- ja henkilöstöhallinta
Alkaen 3300 ruplaa. Alkaen 6700 ruplaa. Alkaen 3300 ruplaa. Alkaen 7400 ruplaa.

Palvelimen tarjonta.

Palvelimen välitön asennus + 1C.

Ei palvelinta? Ei hätää, valitsemme ja määritämme palvelimen nopeasti pilvessä. Pienellä maksulla saat erittäin luotettavan ratkaisun.

  • Saatavuus 24/7
  • Omaa järjestelmänvalvojaa ei tarvita (säästöt kattavat palvelimesi kustannukset).
  • 1C:n nopea asennus ja asennus palvelimelle, 3 päivässä sinulla on jo täysin toimiva järjestelmä.
  • Voit siirtyä paikalliselle palvelimelle milloin tahansa, jos et ole tyytyväinen ratkaisuun.

SMS 1C:ltäsi

Haluatko, että asiakkaasi saavat tiedon kampanjoista ja alennuksista? Eivätkö asiakkaat palaa? Määritä tekstiviestien lähettäminen suoraan 1C:stä!

Yrityksemme pystyy nopeasti määrittämään tekstiviestien lähettämisen asiakkaillesi suoraan 1C:stä. Esimerkkejä tapahtumista, jotka voidaan automatisoida:

  • Kiitos ostoksesta ja bonukset myönnetään heti seuraavan oston jälkeen.
  • Bonusten kertyminen korttiin lahjaksi syntymäpäivän/muu tärkeän päivän tai loman kunniaksi.
  • Ilmoitus tavaran saapumisesta varastoon.
  • Lahjabonusten vanheneminen.
  • Ilmoitus ennakkomaksun vastaanottamisesta ja tavaran varaus.
  • Osoite ja ajo-ohjeet myymälään/toimistoon, puhelinnumerot.
  • Ja niin edelleen.

Asiantuntijamme tai työntekijäsi voivat tehdä asennuksen 1C:ssä. Voit tarkastella hintoja SMS-tariffit-sivulla.

  • Taattu tekstiviestin toimitus, rahaa veloitetaan vain toimitetusta tekstiviestistä.
  • Jokaiselle tekstiviestille erillinen hinta.
  • Täydennä saldoasi eri tavoilla.
  • Tarkastele kaikkien lähetettyjen tekstiviestien historiaa milloin tahansa.
  • Lähettäjän nimi viestin vastaanottajan puhelimessa olevan digitaalisen numeron sijaan.

Artikkeli on kirjoitettu ryhmämme nuorten kehittäjien kirjoittamien ohjelmien analyysien tulosten perusteella.

Järjestämme komponenttien kytkentäjärjestyksen oikein

Monilla käyttäjillä, erityisesti niillä, jotka ovat aiemmin työskennelleet DOS:ssa, on tapana vaihtaa syöttökenttien välillä ei hiirellä, vaan käyttämällä näppäimistöä Tab-näppäimellä. Lisäksi se on paljon nopeampaa kuin kunkin kentän valitseminen hiirellä. Siksi komponenttien kytkentäjärjestys on asetettava oikein. Tämä koskee sekä kaikkien konttikomponenttien sisällä olevia komponentteja (paneelit, GroupBoxit ja vastaavat) että itse säiliökomponentteja, jos niitä on lomakkeessa useita.

Säilön sisällä olevien komponenttien vaihtojärjestyksen määrittää TabOrder-ominaisuus. Ensimmäinen aktivoituva komponentti on se, jonka TabOrder on 0, toinen, jossa on 1 jne., kunnes kaikki komponentit on lueteltu. Lisäksi komponentissa on TabStop-ominaisuus, joka osoittaa, saako komponentti tarkennuksen, kun sitä vaihdetaan Tab-näppäimellä. Jos haluat estää vaihtamisen mihin tahansa komponenttiin, aseta sen TabStop = false. Tässä tapauksessa voit vaihtaa tähän komponenttiin vain hiirellä.

On tapauksia, joissa käyttäjät, jotka ovat tottuneet vaihtamaan tietyllä avaimella yhdessä ohjelmassa, tottumuksesta jatkavat sen käyttöä muissa. Näin tapahtuu usein 1C-käyttäjille, joissa Enter-näppäintä voidaan käyttää syöttökenttien selailuun. No, me annamme heille sellaisen mahdollisuuden ohjelmissamme, jos he sitä pyytävät. Aseta lomakkeen KeyPreview-ominaisuuden arvoksi tosi ja kirjoita OnKeyPress-tapahtumakäsittelijä:

Toimenpide TForm1.FormKeyPress(Lähettäjä: TObject; var Avain: Char);
alkaa
if ord(key)=vk_Return sitten
Form1.SelectNext(PriemForm.ActiveControl, tosi, tosi);
loppu;

Tämä käsittelijä tarjoaa navigoinnin lomakeelementtien välillä, kun Enter-näppäintä painetaan. On huomattava, että tämä menetelmä ei toimi painikkeiden kanssa, koska Kun painat Enteriä painikkeessa, sitä napsautetaan, kun taas Tab-painikkeen painaminen siirtää syötteen kohdistuksen vaihtosekvenssin seuraavaan komponenttiin.

Oletuspainikkeet

Kaikki samat käyttäjät tottuvat nopeasti siihen, että sovellusten valintaikkunoissa voit pääsääntöisesti vahvistaa valintasi Enter-näppäimellä ja peruuttaa Esc-näppäimellä. Älkäämme petäkö heitä ohjelmissamme, varsinkin kun se on erittäin helppo tehdä. Jos painike vastaa Enter-näppäintä, aseta Oletus-ominaisuuden arvoksi tosi. Aseta Esc-näppäimeen reagoivan painikkeen Peruuta-ominaisuuden arvoksi tosi. Siinä kaikki.

kyllä ​​vai ei

Kaikissa valintaikkunoissa, joissa pyydetään käyttäjän toimia, on oltava vähintään kaksi painiketta: toiminnon vahvistaminen ja toiminnon hylkääminen (Kyllä/Ei, Tallenna/Peruuta jne.). Toiminto voidaan peruuttaa sulkemalla ikkuna [X]-painikkeella ikkunan otsikossa. Ei voida hyväksyä, jos toiminnon vahvistamiseksi on vain yksi painike, ja kieltäytymisen oletetaan sulkevan ikkunan otsikossa olevalla [X]-painikkeella, tai kieltäytymismahdollisuutta ei ole ollenkaan. Tämä hämmentää käyttäjää ja herättää loogisen kysymyksen: kuinka kieltäytyä?

Älä myöskään unohda mitä sanottiin yllä kohdassa "Oletuspainikkeet".

Kaikkien valintaikkunoiden pitäisi avautua näytön keskelle

Keskitetty, ei sinne, missä ne luotiin suunnittelutilassa. Ensinnäkin se on visuaalisempi, ja toiseksi se poistaa automaattisesti eri käyttäjien näytön eri resoluutioiden ongelman.

Poikkeuksena on, jos valintaikkuna ei ole modaalinen ja käyttäjän tässä ikkunassa tekemän työn seurauksena muutoksia tapahtuu välittömästi pääikkunassa (esim. tietojoukon suodatus, kaavioiden uudelleenpiirtäminen jne.).

Ikkunoiden koko ei saa ylittää näytön kokoa

Ei missään tapauksessa. On häpeällistä, kun osa ikkunasta ulottuu näytön ulkopuolelle. Tämä vaatimus ei riipu käyttäjän näytön tarkkuudesta, ts. tekosyyt, kuten "Anna heidän asettaa korkeampi resoluutio", eivät toimi.

Ikkunaelementtien oikea koon muuttaminen

Ikkunaelementtien kokoa tulee muuttaa tai ne liikkuvat oikein, kun ikkunan kokoa muutetaan, kun ikkuna on suuri ja kun ikkuna palautetaan suurentamisen jälkeen.

Kaikki on aina näkyvissä

Ikkunan koon pienentäminen ei saa johtaa ikkunaelementtien katoamiseen, eikä se saisi mieluiten johtaa itse ikkunan vierityspalkkien (rullarullien) ilmestymiseen. Voit rajoittaa ikkunoiden vähimmäiskokoa niin, että kaikki elementit ovat näkyvissä ja käytettävissä. Jos komponentteja ei voi sijoittaa niin, että ne ovat kaikki näkyvissä ikkunassa, voit jakaa komponentit ryhmiin kirjanmerkkien (kuten PageControl) avulla. Emme myöskään jätä huomiotta näytön resoluutioon liittyviä tekosyitä.

Vihjeitä kaikkialla, vihjeitä aina

Painikkeille, varsinkin työkaluriville (kuten työkaluriville), tulee määrittää vihjeet, jotta on aina selvää, miksi tätä tai toista painiketta tarvitaan.

Värispektri

Lomakkeen komponentteja ei pidä maalata kaikissa sateenkaaren väreissä. Tämä väsyttää silmiä ja häiritsee käyttäjän huomion. Se ei näytä "viileältä". Korostusta käytetään, kun on tarpeen kiinnittää käyttäjän huomio tiettyyn elementtiin tai tiettyyn ikkunan osaan. Esimerkiksi väritietueet, jotka sisältävät virheitä vaaleanpunaisella värillä, tai päinvastoin tietueet, jotka on tarkastettu onnistuneesti vaaleanvihreällä värillä.

Johtopäätös

On olemassa erittäin hyvä menetelmä, jonka avulla voit löytää puutteita ohjelmassa yleensä ja käyttöliittymässä erityisesti. Se on yksinkertaista: kuvittele itsesi käyttäjän paikalle ja yritä puoli tuntia työskennellä hänen tavallaan. On vielä parempi, jos käyttäjäsi on kantaman sisällä (esimerkiksi työskentelee samassa organisaatiossa). Tässä tapauksessa istu hänen viereensä, tai vielä parempaa, hänen sijaansa ja yritä tehdä hänen työnsä. Syötä tiedot, muuta niitä, näytä raportteja jne. Jos et tiedä, miten se tehdään oikein, kysy käyttäjältäsi. Älä tee vain yhtä tai kahta samantyyppistä toimintoa, kuten virheenkorjaustilassa, vaan 20-30 tai jopa useampia eri toimintoa eri järjestyksessä. Unohda kirjoittaa jotain tai kirjoita se väärin ja katso kuinka ohjelma reagoi siihen. Näet nopeasti ohjelmasi heikkoudet.

Artikkelin kirjoittaja automatisoi yliopiston valintalautakunnan työn, ja ensimmäisenä ohjelman käyttöönoton vuonna hän vietti 3-4 tuntia päivässä valintakomiteassa rekisteröiden hakijoita, täyttäen heidän henkilötietojaan ja luovuttaen heille koeraportit. Ja jäljellä olevina työaikoina hän korjasi virheet ja puutteet. Uskokaa minua, ensi vuonna ei käytännössä ole enää ongelmia. Sama tapahtui henkilöstömoduulin käyttöönoton yhteydessä.

Pidä siis käyttökokemus mielessä. Tee heidän työskentelystä ohjelmiesi kanssa helppoa ja miellyttävää.

Olio-ohjelmointi (OOP) sisältää luokan käsitteen lisäksi myös rajapinnan peruskäsitteen.

Mikä on käyttöliittymä ja mitä ominaisuuksia sen kanssa työskentelyssä on Delphi-ohjelmointikielellä?

Käyttöliittymä on semanttinen ja syntaktinen rakennelma ohjelmakoodissa, jota käytetään määrittämään luokan tai komponentin tarjoamat palvelut (Wikipedia).

Pohjimmiltaan rajapinta määrittelee luettelon ominaisuuksista ja menetelmistä, joita tulee käyttää työskennellessäsi tämän rajapinnan toteuttaman luokan kanssa, sekä niiden allekirjoituksen (nimi, tietotyyppi, hyväksytyt parametrit (proseduureille ja funktioille) jne.). Näin ollen luokan, joka toteuttaa tietyn rajapinnan, on toteutettava kaikki sen komponentit. Lisäksi tiukasti sen mukaisesti, miten ne on kuvattu siinä.

Liitäntöjä verrataan usein abstrakteihin luokkiin, mutta kaikista yhtäläisyyksistä huolimatta tämä vertailu ei ole täysin oikea. Abstraktien luokkien avulla voit ainakin hallita jäsenten näkyvyyttä. Samanaikaisesti rajapinnoille ei ole määritelty laajuuksia.

Liitäntöjen avulla voit tehdä arkkitehtuurista joustavamman, koska ne yhdistävät pääsyn johonkin toimintoon ja auttavat myös välttämään useita luokan periytymiseen liittyviä ongelmia (rajapinnat voivat myös periytyä toisiltaan).

Määritä käyttöliittymä Delphissä käyttämällä käyttöliittymäavainsanaa. Tämä on sama avainsana, joka määrittelee moduulin osan, johon pääsee ulkopuolelta (rajapinnan ja toteutusavainsanojen väliltä). Liittymää määritettäessä käytetään kuitenkin eri syntaksia, kuten luokkien ilmoittamisessa.

Delphi/Pascal

IMyNewInterface = liitäntämenettely InterfaceProc; loppu;

IMyNewInterface =käyttöliittymä

menettely InterfaceProc ;

loppu;

Siten itse käyttöliittymän ilmoitussyntaksi ei eroa pohjimmiltaan muista ohjelmointikielistä (Pascaliin perustuvan syntaksin ominaisuuksia ei lasketa). Samanaikaisesti rajapintojen toteutuksella on useita ominaispiirteitä.

Tosiasia on, että Delphi-rajapinnat otettiin alun perin käyttöön tukemaan COM-tekniikkaa. Siksi IIInterface-rajapinta, joka Delphissa on kaikkien muiden liitäntöjen esi-isä (eräänlainen TObject-analogi), sisältää jo kolme perusmenetelmää työskennellä tämän tekniikan kanssa: QueryInterface, _AddRef, _Release. Tämän seurauksena, jos luokka toteuttaa minkä tahansa rajapinnan, sen on myös toteutettava nämä menetelmät. Vaikka tämä luokka ei ole tarkoitettu COM-työhön.

Tästä IIInterface-liitännän ominaisuudesta johtuen Delphissä rajapintojen käyttö johtaa useimmissa tapauksissa ilmeisen käyttämättömien ominaisuuksien lisäämiseen luokkaan.

On olemassa kirjastoluokka TInterfaceObject, joka sisältää jo näiden menetelmien toteutuksen, eikä niistä periytyessään tarvitse niitä itse toteuttaa. Mutta koska Delphi ei tue usean luokan periytymistä, sen käyttö aiheuttaa usein vain lisävaikeuksia jo vaadittujen toimintojen suunnittelussa ja toteutuksessa.

Kaikki tämä johti siihen, että kaikista rajapintojen tarjoamista mahdollisuuksista huolimatta niiden käytännön käyttö Delphissä ei läheskään mennyt pidemmälle kuin työskentely COM:n kanssa.

Koska ne on optimoitu toimimaan pääasiassa tällä tekniikalla, rajapinnat tai pikemminkin niiden toiminnallisuus ja arkkitehtoniset rajoitukset eivät oikeuta itseään muita ongelmia ratkaistaessa.

Siksi monet Delphi-ohjelmoijat ovat edelleen itse asiassa vailla tehokasta ja joustavaa työkalua sovellusarkkitehtuurin kehittämiseen.