Noutați

Extindeți TMS WEB Core cu bibliotecile JS cu Andrew: FlatPickr (partea 2)

Ultima dată, ne-am uitat la cum să încorporăm FlatPickr într-un proiect TMS WEB Core. Am luat ceea ce ar putea fi considerat abordarea manuală. Un link către un CDN sau altă sursă pentru bibliotecă este adăugat la fișierul Project.html , iar apoi un mic cod JavaScript este folosit pentru a lega manual codul bibliotecii la un element care a fost plasat pe un TWebForm . Acest lucru funcționează destul de bine și, de obicei, folosesc aceasta și multe alte biblioteci JS în proiectele mele. Dar există o altă modalitate care ar putea fi mai în concordanță cu modul în care Delphi este utilizat în mare parte a timpului – prin utilizarea componentelor. Deci, în această postare, vom revizui aceeași bibliotecă JS, dar vom parcurge cum să creați o componentă care va apărea în paleta de componente a IDE-ului Delphi. De acolo, vom putea adăuga controale FlatPickr la orice TWebForm sau oriunde avem nevoie să apară componenta, la fel de ușor ca și cu un TWebLabel sau un TWebEdit . Și vom putea ajusta multe dintre opțiunile pe care dorim să le transmitem la FlatPickr setând proprietăți în Delphi IDE Object Inspector. Motivația. Dincolo de a facilita utilizarea FlatPickr într-o aplicație TMS WEB Core, ideea acestei postări este de a înțelege cum să creați un pachet Delphi care poate include multe astfel de controale. Pe măsură ce ne facem drum prin mai multe biblioteci JS și controalele acestora în postările viitoare, sperăm că vom putea face upgrade acest pachet și cu acele noi comenzi și poate chiar vom arunca și altele pe parcurs. Acest pachet poate fi apoi instalat de oricine lucrează la proiectele TMS WEB Core și, astfel, obțineți acces mai ușor la toate bibliotecile JS pe care le acoperim într-un singur pas simplu. Rețineți că, dacă utilizați o bibliotecă JS într-o situație unică, munca necesară pentru a crea un pachet de componente este probabil să fie substanțial mai mult decât abordarea manuală. Dar există potențialul de a economisi timp și efort în (cel puțin) următoarele scenarii. Când doriți să utilizați mai multe instanțe ale unei componente, poate în mai multe forme. Când doriți să utilizați aceeași componentă în mai multe proiecte. Când nu doriți să fiți nevoit să vă amestecați cu JavaScript sau cu nuanțele bibliotecii JS de bază. Când doriți să creați ceva pentru a fi folosit cu alții, economisindu-le timp și efort. Având aceste tipuri de controale în Delphi, puteți pur și simplu să lucrați așa cum ați proceda în mod normal, fără a fi nevoie să știți că utilizați o bibliotecă JavaScript. Crearea unui pachet. Dar înainte de a crea componente, primul lucru pe care îl vom face este să creăm un pachet care să dețină aceste tipuri de componente. Ieșit de la poartă, avem câteva lucruri de acoperit. Scrierea aplicațiilor TMS WEB Core în Delphi înseamnă că folosim IDE-ul Delphi pentru a face o parte din lucru și apoi transpilăm codul folosind pas2js în culise pentru a produce codul final care rulează într-un browser. Dar Delphi IDE nu știe prea multe despre JavaScript sau HTML sau CSS sau lucruri de genul – este un mediu Delphi, până la urmă. Și odată ce aplicația rulează într-un browser, a uitat în mare măsură de orice legat de Delphi sau Pascal. Când dezvoltăm componente, trebuie, de asemenea, să […]

Read More

Urmărirea criptomonedelor în Delphi cu diagramă FNC

Noi, ca dezvoltatori, căutăm noi API-uri interesante, noi componente care să ofere acel pic în plus sau ceva complet nou și uimitor. În calitate de dezvoltatori de componente, este o încercare zilnică de a introduce caracteristici noi și interesante în componentele noastre și de a le oferi clienților noștri. Acum, cadrul FNC oferă o mulțime de componente pentru a finaliza diverse sarcini. Chiar și atunci când sunteți entuziasmați să creați o mulțime de componente noi, este adesea bine să reflectăm la ceea ce s-a făcut deja și să vedem unde ne putem îmbunătăți. TMS FNC Chart a fost primul produs FNC și a fost o introducere în dezvoltarea cross-platform, cross-framework și cross-IDE. La momentul lansării, VCL și FMX erau acceptate. Ulterior am adăugat suportul Lazarus și TMS WEB Core. A fost nevoie de mai mult timp pentru a suporta mai multe cadre și sisteme de operare și pentru a rezolva toate diferențele. Am avut imediat ideea de a crea mai multe componente UI, ceea ce a dus la varietatea de seturi de componente bazate pe framework FNC pe care le avem astăzi. Între timp, am decis că este timpul să ne întoarcem la început, la primul nostru produs FNC și să vedem ce poate fi îmbunătățit. Astăzi, dorim să dezvăluim câteva funcții noi și interesante care vor apărea în versiunea 2.0, precum și un mic eșantion despre ceea ce înseamnă asta pentru tine ca client/dezvoltator. TMS FNC Chart v2.0 Apare în v2.0 Tipuri moștenite : TTMSFNCChart era singura componentă disponibilă, iar tipurile de serie trebuiau schimbate acolo, de fiecare dată când se folosea o nouă instanță a TTMSFNCChart. În v2.0 introducem tipurile moștenite , ceea ce înseamnă că va exista un tip de clasă descendentă pentru fiecare tip de serie, de exemplu: TTMSFNCBarChart, TTMSFNCLineChart, TTMSFNCPieChart, … . Utilizarea acestui nou set de clase va preseta tipul de serie la creare, adăugarea de noi serii va fi, de asemenea, tipul corect și există o previzualizare în timp de proiectare care va semăna mai mult cu ceea ce ar trebui să reprezinte tipul ales. Aspect și teme de culoare : diagrama afișează diverse elemente, cum ar fi un titlu, axa x, axa y și fiecare dintre aceste elemente poate fi personalizat cu o mulțime de proprietăți. Modificarea aspectului general al diagramei poate dura destul de mult. În v2.0 dorim să introducem un aspect global, care aplică numele fontului, culoarea și capacitatea de a mări toate fonturile din diagramă dintr-o singură mișcare. În plus, am dorit să facem diagrama mai prietenoasă cu culorile și mai dinamică. 2.0 introduce o nouă listă de culori personalizată, stil Excel și culori monocromatice. Import de date : diagrama poate vizualiza în mod evident datele. Datele provin din diferite tipuri de surse și, în prezent, nu există metode de ajutor de niciun fel care să facă acest lucru posibil. În v2.0, va fi posibil să încărcați date din CSV, JSON și matrice de date predefinite cu o mulțime de opțiuni de personalizare. Suport pentru baze de date: În v2.0 oferim și suport pentru baze de date doar pentru citire. TTMSFNCChartDatabaseAdapter va fi disponibil ca o componentă separată și va recunoaște dinamic câmpurile ca serie, cu flexibilitatea de a adăuga personalizare suplimentară. Conectarea la grilă : În pachetul TMS FNC UI , avem componenta TTMSFNCGrid. În v2.0, va fi […]

Read More

Extindeți TMS WEB Core cu JS Libraries cu Andrew: Luxon

Ultimele postări au acoperit FlatPickr , o bibliotecă JS populară și foarte capabilă de datepicker. Ne-am uitat la multe dintre opțiunile sale și am analizat două moduri complet diferite de a-l adăuga la proiectele noastre TMS WEB Core. În ceea ce nu ne-am aprofundat prea mult este întreaga zonă a formatelor de dată și oră, fusuri orare, internaționalizare și diferențele dintre gestionarea datei în Delphi și JavaScript. Ei bine, am făcut puțin, dar suficient pentru a trece prin câteva exemple. De data aceasta, vom intra în mai multe detalii și vom introduce, de asemenea, cea mai recentă bibliotecă JS în repertoriul nostru – Luxon – care se descrie ca „un înveliș puternic, modern și prietenos pentru datele și orele JavaScript”. Nu sunt deloc sigur că cumpăr bitul „prietenos”, dar este într-adevăr puternic și modern, așa că să vedem unde se potrivește. Motivația. Dezvoltatorii Delphi de lungă durată sunt probabil să fie destul de familiarizați cu TDateTime și cu diferitele sale avantaje și deficiențe. Și chiar dacă ești relativ nou în Delphi și nu ai avut prea multă oportunitate de a interacționa cu TDateTime, nu există prea multe lucruri care să te împiedice și, în general, nu este probabil să atragă prea multă atenție de la sine . Acesta este un lucru bun, desigur. Când aveți de-a face cu JavaScript, totuși, frumosul și confortabilul TDateTime este înlocuit cu un format de dată JavaScript destul de sinistru, care nu este niciunul dintre aceste lucruri. Sigur, este destul de ușor să începeți cu o dată JavaScript, dar este într-adevăr o fiară complet diferită. Deplasarea între cele două poate fi o provocare și chiar și doar încercarea de a face cea mai mică parte de formatare poate fi uneori mult mai multe probleme decât ar putea părea posibil. Deci, în această postare, vom trece peste o grămadă de astfel de lucruri. Scoateți totul dintr-o singură lovitură, smulgeți aparatul, ca să spunem așa, ca să putem trece cu sinceritate și încredere la alte subiecte, dar să avem asta în buzunarul din spate atunci când avem nevoie. Și crede-mă, vom avea nevoie de el! Epocă epică. Să ne scufundăm mai întâi degetul în capătul superficial și să trecem rapid peste ce este TDateTime. Delphi folosește clasa TDateTime pentru a codifica, în mod natural, o dată și o oră. Face acest lucru într-un mod foarte simplu – prin utilizarea unui număr în virgulă mobilă (în special, un dublu), în care întreaga parte a numărului reprezintă numărul de zile de la 1899-12-30, iar partea fracțională a numărului reprezintă timpul ca o fracțiune de zi. Amiaza ar fi reprezentată ca .5, 18:00 ar fi reprezentată ca .75 și așa mai departe. Alegerea lui 1899-12-30 este oarecum arbitrară, dar am dat peste acest link care a descris-o astfel: Se pare că motivul pentru Delphi începând cu 30 decembrie 1899 este acela de a-l face cât mai compatibil cu Excel și, în același timp, nu adoptă incorectitudinea Excel cu privire la date. Din punct de vedere istoric, Excel a jucat al doilea lăutar în fața lui Lotus 1-2-3. Lotus (care poate să fi primit această eroare de la Visicalc) a considerat în mod incorect 1900 ca fiind un an bisect, prin urmare, o valoare de 60 vă oferă 29 februarie 1900 în Excel, dar este interpretat ca 28 februarie 1900 în […]

Read More

Extindeți TMS WEB Core cu bibliotecile JS cu Andrew: CodeMirror

Doriți să afișați sau să editați codul direct în aplicația dvs. TMS WEB Core? Atunci aceasta este postarea pentru tine. De data aceasta, ne aruncăm cu capul întâi în CodeMirror 5 , care se descrie ca „un editor de text versatil implementat în JavaScript pentru browser”. Ceea ce cu siguranță este. Pe lângă faptul că este doar un editor de text, este conștient în mod nativ de peste 100 de limbaje de programare diferite. În plus, are numeroase suplimente și opțiuni configurabile pentru a imita numeroasele stiluri și convenții ale altor editori cu care ați putea fi deja familiarizați, cum ar fi Vim, Emacs și așa mai departe. Și folosirea acestuia într-un proiect TMS WEB Core este la fel de ușoară ca oricare dintre celelalte biblioteci JS pe care le-am acoperit până acum. Motivația. De ce avem nevoie de un editor de cod? Primul beneficiu al unui editor de cod, în comparație cu un simplu editor de text sau un câmp editabil TWebMemo, de exemplu, este că de obicei vine cu evidențiere de sintaxă care este configurată pentru limbajul de programare pe care îl editați. Pentru Pascal, aceasta înseamnă că începutul și sfârșitul sunt afișate automat într-o culoare diferită, precum și orice alte cuvinte cheie rezervate legate de Pascal. Acest lucru înseamnă, de obicei, că diferitele tipuri de paranteze sunt afișate într-un mod care facilitează găsirea perechilor de paranteze potrivite sau că comentariile apar într-o culoare sau stil diferit. Poate că nu pare mult, dar dacă ați încercat vreodată să scrieți cod fără acest lucru, este o experiență foarte diferită. Desigur, probabil că ești foarte familiarizat cu acest tip de lucruri, deoarece IDE-ul Delphi face exact acest lucru (și mult, mult mai mult!) atunci când editează codul. Uneori este chiar util să afișați alt text folosind acest tip de mecanism, dacă nu există niciun alt motiv decât pentru a-l face puțin mai frumos de privit. Dacă aveți fișiere jurnal care sunt potențial vizibile pentru utilizatorii dvs., de exemplu, acestea pot fi configurate astfel încât să fie vizualizate prin CodeMirror. Poate că setat la ceva de genul SQL (preferința mea personală) va face fișierele jurnal puțin mai ușor de citit, în funcție de modul în care au fost formatate, cu datele și numerele și alte lucruri afișate potențial într-o culoare diferită. Sau poate doriți să afișați text care are numere de rând lângă el. Sau, poate, cel mai comun dintre toate, doriți să editați sursa HTML și să aveți etichetele afișate într-o culoare diferită. Vom arunca o privire atât la Summernote , cât și la SunEditor într-o postare viitoare, ambele utilizând CodeMirror pentru a oferi funcționalitatea de „editare sursă HTML”. CodeMirror 5 vs. CodeMirror 6. Înainte de a merge mai departe, hai să rezolvăm rapid asta. În mod normal, sunt 100% all-in când vine vorba de a folosi marginea de vârf a oricărei biblioteci JS, cu gândul că va avea probabil cel mai bun suport pentru cele mai recente browsere și cele mai active eforturi de dezvoltare, în comparație. la versiuni mai vechi ale aceleiași biblioteci. Și acest lucru se aplică într-adevăr și aici. Cu toate acestea, în acest moment sunt puțin prea departe de vârf. Până acum, CodeMirror 6 este într-adevăr o colecție de module care nu pot fi încărcate direct (poate cu ușurință ar fi mai precis) într-o aplicație […]

Read More

Tkinter vs DelphiFMX în fluxul Embarcadero Open Source

Începem ceva nou și sunt destul de încântat de asta. Acesta este primul dintr-o serie de fluxuri live regulate care discută cele mai recente proiecte open source. Ambele proiecte sponsorizate de Embarcadero și proiecte cheie din comunitate. Voi fi gazda și mi se vor alătura membri ai comunității, dezvoltatori implicați în aceste proiecte open source, precum și membri ai Embarcadero și Idera’s Product Management. Primul nostru flux, săptămâna viitoare, este axat pe Tkinter vs DelphiFMX pentru dezvoltarea GUI Python, deci vizează în mod direct dezvoltatorul Python. Joi, 2 iunie 2022 la 10:00 CDT (Reveniți la această postare după webinar pentru link-uri, diapozitive și reluare.) Aceste fluxuri servesc mai multe scopuri: Colaborați pentru mine cu alți manageri de proiect de la Embarcadero și Idera pentru a modela foaia de parcurs și modul în care sprijinim aceste proiecte Distribuiți conversațiile din culise cu comunitatea acestor conversații Modelați în colaborare viitorul acestor proiecte open source Actualizări regulate pentru noutățile acestor proiecte și ale comunității Scopul este să se rotească prin proiecte în fiecare săptămână și să includă o temă în proiect. De exemplu, săptămâna aceasta discutăm despre biblioteca GUI DelphiFMX pentru Python și o comparăm cu Tkinter, biblioteca existentă de facto GUI Python. Aceasta este o oportunitate bună de a vedea lacune în care DelphiFMX se poate îmbunătăți, în timp ce vedem ce face DelphiFMX pentru a îmbunătăți viața dezvoltatorului Python. Vorbind despre dezvoltarea GUI Python, avem o nouă . Ne vom uita, de asemenea, la unele dintre proiectele conexe pentru Python: Agenda pentru flux: Tkinter vs. DelphiFMX Prezentare generală și comparare a celor două biblioteci Unde se poate îmbunătăți DelphiFMX? Ce este nou în DelphiFMX Probleme de revizuire și solicitări de tragere Răspundeți la întrebări Alți feedback sau colaboratori Planificați o foaie de parcurs pentru schimbările viitoare Fluxurile viitoare vor acoperi alte proiecte din ecosistemul nostru Python, proiecte non-Python și chiar proiecte comunitare pe care le iubim! Aceasta este cea mai recentă hartă a ecosistemului tău Python. L-am împărțit în două părți, jumătatea de sus este proiecte pentru dezvoltatorii Python și este punctul central al fluxului pe 2 iunie. Planificăm pe 9 iunie să ne concentrăm asupra proiectelor pentru dezvoltatorii Delphi care includ biblioteci Python pentru o dezvoltare simplă bazată pe Open Pascal. Sunt foarte încântat să arăt la ce lucrăm acolo. Iată o listă cu alte biblioteci open source pe care le putem discuta în fluxurile viitoare: SonarDelphi Pluginul Sonar-Delphi folosit pentru a analiza proiecte Delphi cu SonarQube Bold pentru Delphi – O arhitectură de driver de model (și bibliotecă ORM) pentru Delphi Dev-C++ – Un IDE C/C++ rapid, portabil, simplu și gratuit Jocuri arcade C++ – 4 jocuri arcade dezvoltate în C++Builder cu FireMonkey pentru Windows, macOS, iOS și Android DelphiArcadeGames – 4 jocuri arcade dezvoltate în Delphi cu FireMonkey pentru Windows, macOS, iOS și Android DelphiBigNumbers – Numere întregi și cu virgulă mobilă foarte mari în Delphi Kastri – Biblioteca Delphi de uz general skia4delphi – Bibliotecă GUI 2D pentru VCL și FireMonkey Hashload Boss – Manager de dependențe pentru Delphi și Lazarus Și deschis la sugestiile comunității Ca parte a fluxului live, voi împărtăși documente mai detaliate despre proiect, dar iată câteva statistici ca o previzualizare. Sper să ne vedem online pentru seminariul web de joi, 2 iunie 2022, la ora 10:00 CDT .

Read More

Marcaje și Navigator sunt disponibile pentru RAD Studio 11!

Marcaje și Navigator, cunoscute inițial sub numele de pluginuri Parnassus, sunt unele dintre cele mai solicitate suplimente IDE ale noastre. Suntem foarte bucuroși să vă anunțăm că acestea sunt acum disponibile în GetIt pentru RAD Studio 11. Pentru a instala, mergeți la meniul Instrumente din IDE, GetIt Package Manager și selectați secțiunea IDE Plugins din selectorul de categorii din stânga: Marcaje este un supliment favorit de dezvoltatori care înlocuiește marcajele încorporate ale editorului, cu un număr nelimitat de marcaje, o comandă rapidă la îndemână (Ctrl+B), evită suprascrierea accidentală a marcajelor, marcaje cu cursor pentru comutarea rapidă a locației și navigarea inversă/stivă, un sistem andocat. fereastră care arată contextul marcajelor și multe altele. Navigator este un plugin asociat care vă ajută să navigați rapid oriunde în codul dvs .: apăsați Ctrl+G și tastați pentru a filtra pentru a afișa toate elementele utile din unitatea curentă. Puteți tasta, de exemplu, „prop Foo” (sau chiar mai scurt, „p f” sau chiar „f” dacă aveți suficient de puține elemente pentru a face acest lucru util: filtrează mai multe pe măsură ce tastați mai multe) pentru a găsi proprietăți cu Foo în lor nume, sau găsiți câmpuri de citire/scriere de proprietate sau metode legate de acea proprietate… sau pentru a naviga la clase, înregistrări, enumerari și alte tipuri; secțiuni de unitate precum clauzele de utilizare; metode; variabile și multe altele. Orice lucru util în unitatea dvs. este afișat în Navigator și este rapid accesibil. De asemenea, adaugă o minimahartă la editorul IDE care arată unde vă aflați în cod. RAD Studio 11 afișează pluginurile Marcaje și Navigator ambele în uz: marcajele sunt afișate în editor și fereastra andocata în colțul din dreapta jos, în timp ce pluginul Navigator oferă minimapa în partea dreaptă a editorului și fereastra de navigare plutitoare unde am caut o metoda Marcajele și Navigatorul sunt de obicei disponibile imediat odată cu lansarea, iar acest lucru nu s-a întâmplat pentru RAD Studio 11. Cu toate acestea, am configurat versiunea noastră internă astfel încât aceste plugin-uri să fie întotdeauna disponibile în viitor: adică, puteți fi sigur că avem configurați pentru a nu repeta întârzierea. Al treilea plugin Parnassus, Debugger, ar trebui să apară și el în câteva zile. Pluginurile sunt disponibile atât pentru RAD Studio 11.0, cât și pentru 11.1; de fapt, captura de ecran de mai sus este făcută cu RAD Studio 11.0. Vă mulțumim pentru răbdarea de a aștepta aceste plugin-uri și sperăm că IDE-urile Delphi și C++Builder sunt și mai productive și mai plăcute de utilizat cu aceste extensii! Nu uitați – sunt disponibile chiar acum în GetIt. Codare fericită!

Read More

Patch de depanare Windows 11 Win32 pentru RAD Studio 11.1

Există un nou patch (sau remediere rapidă) disponibil pentru RAD Studio 11.1. Patch-ul abordează o problemă specifică depanării aplicațiilor Win32 pe Windows 11, unde IDE-ul pare să înghețe uneori. Situațiile tipice în care puteți observa înghețarea includ evaluarea ceasurilor cu efecte secundare, deschiderea vizualizării Fire pentru a comuta firele, atașarea la un proces și alte acțiuni comune de depanare. Problema este cauzată de obținerea lanțului de așteptare a firului (GetThreadWaitChain()), care uneori durează până la un minut. Se rezolvă prin dezactivarea caracteristicii lanțului de așteptare a firelor din depanator. Cauza exactă a întârzierii lanțului de așteptare a firului de execuție este necunoscută, dar pare să fie legată de un fir de execuție care are un soclu deschis, eventual unde firul de execuție așteaptă să termine IO-ul rețelei. Informațiile lanțului de așteptare a firelor sunt dezactivate pentru Win32 atât pe Windows 10, cât și pe Windows 11. Există o variabilă de mediu pentru a o reactiva dacă aveți nevoie de caracteristica: setați DBK_ENABLE_WAITCHAIN=1 pe un prompt de comandă și rulați RAD Studio (alternativ, setați-l variabilă de mediu la nivel global pentru Windows.) Numai Windows 11 este afectat de problemă, așa că trebuie să instalați corecția doar pe Windows 11. Instalare Puteți descărca acest lucru în GetIt (tehnica noastră recomandată; de asemenea, se va afișa ca disponibil pe Pagina de întâmpinare când porniți IDE-ul) sau îl puteți instala manual după descărcare de pe my.embarcadero.com (fișierul zip conține un program de instalare a fișierelor batch.) Ecranul de întâmpinare RAD Studio 11.1 care arată butonul „Correcție disponibilă”. Faceți clic pe acesta pentru a instala patch-uri, inclusiv pe acesta. Depanare la distanță Deoarece acest lucru corectează depanatorul, dacă faceți depanare la distanță, va trebui, de asemenea, să actualizați PAServer pe mașina de la distanță. Programul de instalare a corecțiilor înlocuiește (locația de instalare a RAD Studio) fișierul PAServersetup_paserver.exe, dar va trebui să îl copiați pe mașina de la distanță și să îl instalați. Există detalii complete în patch-ul readme.

Read More

Studiu de referință: ce platforme țintă acceptă Electron și Delphi?

Ce platforme țintă acceptă Delphi și Electron? Cartea albă „ Descoperirea celui mai bun cadru multiplatform prin comparație ” evaluează două cadre care sprijină dezvoltarea de aplicații desktop multiplatformă: Delphi și Electron . Delphi Delphi, încapsulat în Rapid Application Development (RAD) Studio IDE, este produsul emblematic al Embarcadero Technologies. O versiune proprietară a limbajului Object Pascal, Delphi oferă dezvoltare de aplicații grafice cu componente „drag and drop”, un vizualizator WYSIWYG pentru majoritatea platformelor mobile și opțiuni de stil robuste, inclusiv palete standard și unice pentru platformă, care oferă un aspect și o senzație complet personalizate. Printre alte caracteristici, bibliotecile incluse oferă controale GUI, manageri de acces la baze de date și sisteme de operare hardware și platforme țintă cu acces direct. Cadrul Delphi FireMonkey (FMX) va compila proiecte în cod nativ pentru Windows pe 32 și 64 de biți, macOS, Android, iOS și Linux, permițând utilizatorilor să dezvolte și să mențină o bază de cod care să ajungă la cea mai mare parte a pieței. Delphi este disponibil de peste 25 de ani. Electron Electron este un cadru open-source (licență MIT), bazat pe Chromium, care utilizează tehnologii web pentru a crea aplicații desktop pe Windows, macOS și Linux. Este dezvoltat și întreținut de GitHub, o subsidiară a Microsoft. Electron combină motorul de randare bazat pe Chromium cu un mediu server Node.js. Ca atare, interfața de utilizator pentru o aplicație Electron este disponibilă prin HTML5 și CSS. În general, Electron funcționează cu majoritatea cadrelor Javascript, cum ar fi Angular, Vue.js și React. Tehnologiile bazate pe HTML5, CSS și Javascript găsite în Chromium oferă un ecosistem bogat de personalizare a utilizatorilor, familiar oricărui dezvoltator web. În ciuda vârstei sale relativ fragede de cinci ani, comunitatea sa se mândrește cu pachete open source pentru acces la baze de date, interacțiuni cu sistemul de operare și alte sarcini comune. Valori de referință Această postare face parte dintr-o serie de postări de blog care analizează mai îndeaproape fiecare dintre valorile individuale utilizate în studiu și modul în care Delphi și Electron s-au descurcat fiecare cu privire la aceste valori. Primul poate fi găsit aici. Descărcați documentul complet aici Categoria de referință: flexibilitate Flexibilitatea cadrului a fost examinată calitativ prin cercetări și conversații cu experți din Delphi și Electron și a căutat să analizeze aplicarea fiecărui cadru la problemele și cerințele de afaceri. Avantajul major al Delphi în categoria de flexibilitate este capacitatea sa de a implementa un singur corp de cod sursă pe orice platformă desktop sau mobilă majoră ca un executabil binar nativ, maximizând acoperirea pe piața aplicațiilor, minimizând în același timp durerile de cap de întreținere/upgrade din cauza dublării codului. Cadrul susține proiecte de orice scară, de la controlere logice pentru automatizare industrială până la gestionarea inventarului la nivel mondial și funcții din fiecare nivel, de la back-end-uri grele de baze de date la servicii la nivelul clientului. În cele din urmă, bibliotecile standard Delphi oferă acces simplificat la majoritatea produselor de baze de date, acceptă pe deplin Unicode și alte standarde moderne și extind accesul la funcționalitatea sistemului de operare pe fiecare platformă, precum și la dispozitivele și senzorii I/O. Electron este un cadru open-source care vizează toate sistemele de operare desktop prin baza sa Chromium. De obicei, se concentrează pe aplicații centrate pe web, pe partea clientului, dar poate realiza servicii […]

Read More

10 algoritmi de învățare automată nesupravegheați: ce sunt aceștia și cum să îi creăm

Învățarea automată este unul dintre cele mai fierbinți subiecte de dezvoltare de software în acest moment. Algoritmii și tehnicile care permit învățarea automată au început să se maturizeze cu adevărat și au trecut de la „idei interesante” la furnizarea de putere autentică și capabilități care permit în aplicațiile noastre, care uneori pot părea magice la fel de mult pe cât de utile. Python a apărut foarte repede ca un limbaj de facto pentru învățarea automată. Există un set bogat de biblioteci de învățare automată disponibile pentru Python, oferind capacitatea de a face totul, de la recunoașterea imaginilor până la analize științifice complicate. Cum să utilizați bibliotecile de învățare automată în Delphi Știați că este simplu să folosiți niște biblioteci Python cu adevărat excelente pentru a vă stimula dezvoltarea aplicației Delphi pe Windows ? Toată acea gamă minunată de bunătăți de învățare automată Python vă este, de asemenea, ușor disponibilă ca programator Delphi. Adăugarea Python la setul dvs. de instrumente pentru codul Delphi vă poate îmbunătăți dezvoltarea aplicației prin introducerea de noi capabilități care vă permit să oferiți soluții inovatoare și puternice utilizatorilor aplicației dvs., combinând tot ce este mai bun din Python cu puterea supremă low-code și fără egal a dezvoltării Windows native care Delphi oferă. Căutați cum să construiți o interfață grafică pentru o bibliotecă puternică de învățare automată nesupravegheată? Puteți construi o soluție de învățare nesupravegheată de ultimă generație cu scikit-learn pe Delphi. Acest articol va demonstra cum să creați o aplicație GUI Delphi dedicată bibliotecii scikit-learn. Urmărește acest videoclip de Jim McKeeth pentru o explicație detaliată a motivului pentru care poți iubi atât Delphi, cât și Python în același timp: Ce este biblioteca de învățare automată scikit-learn? sigla scikit-learn (sursa: scikit-learn.org). scikit-learn este o bibliotecă open-source Python de învățare automată. scikit-learn are instrumente simple și eficiente pentru analiza predictivă a datelor, care sunt construite pe SciPy, NumPy și Matplotlib. Mașinile vectoriale de suport, pădurile aleatorii, creșterea gradientului, k-means și DBSCAN sunt printre algoritmii disponibili în scikit-learn pentru clasificare, regresie și grupare. În acest articol, vom vorbi în mod specific despre algoritmii de grupare. Ce este învățarea automată nesupravegheată? Învățarea nesupravegheată, cunoscută și sub denumirea de învățare automată nesupravegheată, analizează și grupează seturi de date neetichetate folosind algoritmi de învățare automată. Fără intervenția umană, acești algoritmi descoperă modele ascunse sau grupări de date. Capacitatea sa de a detecta asemănările și diferențele de date îl face o soluție ideală pentru analiza exploratorie a datelor, strategiile de vânzare încrucișată, segmentarea clienților și recunoașterea imaginii (sursa: IBM Cloud Education, 2020). Ce este clustering-ul și cum are legătură cu învățarea automată? Clusteringul este un tip de problemă de învățare nesupravegheată. Analiza cluster este un alt nume pentru această tehnică. Este frecvent utilizat ca tehnică de analiză a datelor pentru a descoperi modele interesante în date, cum ar fi grupurile de clienți bazate pe comportamentul lor. Există numeroși algoritmi de clustering disponibili și nu există un singur cel mai bun algoritm de clustering pentru toate cazurile. În schimb, este o idee bună să experimentați cu diverși algoritmi de grupare și configurații diferite pentru fiecare algoritm. Un cluster este deseori o zonă densă în spațiul de caracteristici în care exemplele din domeniu (observații sau rânduri de date) sunt mai aproape de cluster decât de alte clustere. Clusterul poate avea ca centru un eșantion sau […]

Read More

Cum să detectați și să extrageți text din imagini cu Amazon Text

Textul este peste tot! Textul nu este întotdeauna acolo unde ne dorim sau în formatul de care avem nevoie. De multe ori avem nevoie de textul din imagini. Este posibil să aveți un document scanat care conține informații financiare, cum ar fi o factură pe care doriți să o introduceți într-un sistem de conturi, sau poate construiți o arhivă de fotografii pe care doriți să le indexați în funcție de orice text detectat? Oricare ar fi cazul dvs. de utilizare, dacă aveți nevoie să obțineți ceva text dintr-o imagine, puteți realiza acest lucru cu ușurință în software-ul de programare Delphi folosind Amazon Texttract folosind cea mai recentă versiune de Appercept AWS SDK pentru Delphi. Ce este Amazon Texttract și ce face? Amazon Texttract oferă detectarea și analiza textului pentru documentele imagine. Texttract poate analiza relațiile dintre obiectele text detectate și poate oferi informații referitoare la formulare, documente financiare și de identitate. Să detectăm un text… program DetectText; {$APPTYPE CONSOLE} implementation uses AWS.Textract; var Client: ITextractClient; Request: ITextractDetectDocumentTextRequest; Response: ITextractDetectDocumentTextResponse; begin Request := TTextractDetectDocumentTextRequest.Create; Request.Document := TTextractDocument.FromFile(‘C:image.png’); Client := TTextractClient.Create; Response := Client.DetectDocumentText(Request); if Response.IsSuccessful then begin for var LBlock in Response.Blocks do WriteLn(Format(‘Detected %s: %s’, [LBlock.BlockType, LBlock.Text])); end; end. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 program DetectText ;   { $ APPTYPE CONSOLE }   implementation   uses   AWS . Textract ;   var   Client : ITextractClient ;   Request : ITextractDetectDocumentTextRequest ;   Response : ITextractDetectDocumentTextResponse ;   begin   Request : = TTextractDetectDocumentTextRequest . Create ;   Request . Document : = TTextractDocument . FromFile ( ‘C:image.png’ ) ;     Client : = TTextractClient . Create ;   Response : = Client . DetectDocumentText ( Request ) ;   if Response . IsSuccessful then   begin     for var LBlock in Response . Blocks do       WriteLn ( Format ( ‘Detected %s: %s’ , [ LBlock . BlockType , LBlock . Text ] ) ) ;   end ; end . Există un exemplu de utilizare a Amazon Texttract? Pentru a vă ajuta să experimentați și să începeți, consultați demonstrația Texttract din depozitul AWS SDK pentru Delphi Samples . Despre Appercept AWS SDK pentru Delphi Appercept AWS SDK pentru Delphi este disponibil exclusiv pe GetIt cu abonamente active Enterprise sau Architect pentru Embarcadero Delphi sau RAD Studio . Puteți instala SDK-ul prin GetIt Package Manager din Delphi sau RAD Studio dacă aveți un abonament activ.

Read More