ഡെൽഫി, ഫയർമങ്കി, ഓൾ-ആക്സസ്, മറ്റ് ആഹ്ലാദകരമായ ആശ്ചര്യങ്ങൾ. Delphi, FireMonkey, All-Access, മറ്റ് ആഹ്ലാദകരമായ ആശ്ചര്യങ്ങൾ എന്നിവ പരിഗണിക്കേണ്ട കാര്യങ്ങൾ

Viber ഔട്ട് 31.10.2021
Viber ഔട്ട്

FireMonkey എന്ന പദം കൂടുതലോ കുറവോ പരിചിതമായതിന് ശേഷം മതിയായ സമയം കടന്നുപോയി, എല്ലാ ഡെവലപ്പർമാർക്കും ഇല്ലെങ്കിൽ, ഡെൽഫി ഉപയോഗിക്കുന്നവർക്കെങ്കിലും. ഈ സമയത്ത്, ഫയർമങ്കിയെക്കുറിച്ചുള്ള പുസ്തകങ്ങൾ, ഫയർമങ്കിയെക്കുറിച്ചുള്ള ലേഖനങ്ങൾ, നിരവധി ബ്ലോഗുകളിൽ ഫയർമങ്കിയെക്കുറിച്ചുള്ള എൻട്രികൾ എന്നിവ ഉണ്ടായിരുന്നു. ഇതെല്ലാം വായിക്കുന്നത് വളരെ രസകരമാണ്. എന്നാൽ ഒരു സിദ്ധാന്തത്തിനും പരിശീലനത്തിന് പകരം വയ്ക്കാൻ കഴിയില്ല. മുമ്പത്തെ പലരെയും പോലെ, ഫയർമങ്കി ഉപയോഗിച്ച് എന്തെങ്കിലും എഴുതാൻ ശ്രമിക്കാൻ എനിക്കും ഒരു ചൊറിച്ചിൽ ഉണ്ടായിരുന്നു.

അങ്ങനെ ചെയ്യുമ്പോൾ, ഒരു പ്രശ്നം ഉയർന്നു. ചില കാരണങ്ങളാൽ, വളരെ സങ്കീർണ്ണമല്ലാത്ത ചില വർക്കിംഗ് പ്രോജക്റ്റ് നടപ്പിലാക്കണമെന്ന് ഞാൻ തീരുമാനിച്ചു.

എന്തുകൊണ്ടാണ് ഇത് എനിക്ക് ഒരു പ്രശ്‌നമായി മാറിയതെന്ന് വിശദീകരിക്കാൻ, കുറച്ച് (ഒരാൾ എഴുതാൻ ആഗ്രഹിക്കുന്നു, ഗാനരചന) വ്യതിചലനം എടുക്കും. ഒരു ഡെവലപ്പർ എന്ന നിലയിൽ എന്റെ ഭൂതകാലത്തിലേക്ക് ഒരു ഉല്ലാസയാത്ര. ഡെൽഫി ഉപയോഗിച്ച് പ്രോഗ്രാമിംഗിനെക്കുറിച്ചുള്ള എന്റെ ചില കാഴ്ചപ്പാടുകൾ വിശദീകരിക്കുക.

ഞാൻ വിൻഡോസ് 3.1 ൽ ഡെൽഫി ഉപയോഗിക്കാൻ തുടങ്ങി, അതായത് ആദ്യ പതിപ്പിൽ നിന്ന്. അന്നുമുതൽ ഞാൻ വിസിഎൽ പഠിക്കുന്നു. ഒറിജിനലിൽ പഠിച്ചു, അങ്ങനെ പറയാം. സോഴ്‌സ് കോഡുകൾ കണ്ടു, അഭിസംബോധന ചെയ്തു, കണ്ടെത്തി. വീണ്ടും വീണ്ടും.

വിവിധ സമയങ്ങളിൽ ഡെൽഫിയിൽ നിന്ന് കയറ്റുമതി ചെയ്ത ഘടകങ്ങളുടെ കൂട്ടത്തിൽ VCL-ലെ വിടവുകൾ നികത്തേണ്ട മൂന്നാം കക്ഷി ഘടകങ്ങൾ ഉൾപ്പെട്ടിരുന്നുവെന്നും ഉൾപ്പെടുത്തുന്നതിന് മുമ്പ് ഏതെങ്കിലും തരത്തിലുള്ള ഗുണനിലവാര നിയന്ത്രണത്തിലൂടെ കടന്നു പോയിരിക്കാമെന്നും അറിയാം. ഈ ഘടകങ്ങളിൽ ചിലത് ഇന്നും വിതരണം ചെയ്യുന്നത് തുടരുന്നു. അതേ ഇൻഡി തന്നെ എടുക്കുക. ആരെയും വ്രണപ്പെടുത്താൻ ഞാൻ ആഗ്രഹിക്കുന്നില്ല, ഇത് പൂർണ്ണമായും എന്റെ വ്യക്തിപരമായ അഭിപ്രായമാണ്, ഇത് ഒരു ഘടക ഡെവലപ്പർ എന്ന നിലയിൽ എനിക്കും ബാധകമാണ്: ഒരു സെറ്റ് പോലും ഇത്രയും ആഴത്തിൽ ചിന്തിച്ച് നടപ്പിലാക്കിയിട്ടില്ല, അതുപോലെ തന്നെ ബൃഹത്തായതും വൈവിധ്യപൂർണ്ണവുമായ VCL. ഇല്ല, ഞാൻ ആത്യന്തിക സത്യമായി നടിക്കുന്നില്ല, തീർച്ചയായും, VCL-ൽ തന്നെ ധാരാളം പിശകുകൾ ഉണ്ട്, തെറ്റിദ്ധാരണ ഉണ്ടാക്കുന്ന, തിരസ്കരണത്തിന് കാരണമാകുന്ന, നിങ്ങൾ വിയോജിക്കാൻ ആഗ്രഹിക്കുന്ന തീരുമാനങ്ങൾ. എന്നാൽ എനിക്ക് എല്ലായ്പ്പോഴും ഒരു പ്രത്യേക ശൈലിയുടെ മതിപ്പ് ലഭിച്ചു. VCL-ൽ ഉണ്ട്, എന്റെ അഭിപ്രായത്തിൽ, മുഴുവൻ ഡെൽഫി ഡിസൈനിനെയും പിന്തുണയ്ക്കുന്ന മനോഹരവും ശക്തവുമായ ഒരു കോർ ഉണ്ട്, അതിന് ചുറ്റും സോഫ്റ്റ്‌വെയർ ഇൻഫ്രാസ്ട്രക്ചറും ഡെവലപ്പർ കമ്മ്യൂണിറ്റിയും തന്നെ നിർമ്മിച്ചിരിക്കുന്നു. VCL-ന് നന്ദി, വീണ്ടും, എന്റെ അഭിപ്രായത്തിൽ, ഡെൽഫിയുടെ മരണത്തെക്കുറിച്ചുള്ള കിംവദന്തികൾ ഇപ്പോഴും കിംവദന്തികളാണ്. വിസിഎൽ ഡെലിവറിയിൽ മൂന്നാം കക്ഷി ഘടകങ്ങൾ ഉൾപ്പെടുത്തിയപ്പോൾ, അത് ഉടനടി ശ്രദ്ധയിൽപ്പെട്ടു, അവ വ്യത്യസ്തമായിരുന്നു.

എന്നാൽ ആ നിമിഷം വരുന്നു, വിസിഎൽ കാലഹരണപ്പെട്ട ഒരു സാങ്കേതികവിദ്യയാണെന്ന് ഞാൻ കേൾക്കുന്നു. ഭൂതകാലത്തിൽ ഉപേക്ഷിക്കേണ്ട ഒരു സാങ്കേതികവിദ്യ. ഡെവലപ്പർമാർ അവരുടെ എല്ലാ പുതിയ പ്രോജക്റ്റുകളും FireMonkey-ൽ നടപ്പിലാക്കണം, എന്നാൽ പഴയവയെക്കുറിച്ച് ... പുതിയ റെയിലുകളിലേക്ക് മാറ്റുന്നത് നന്നായിരിക്കും. ഫയർമങ്കി എല്ലായിടത്തും എപ്പോഴും ഉണ്ട്. ഞാൻ അത് വ്യത്യസ്ത ഉറവിടങ്ങളിൽ നിന്ന് കേൾക്കുന്നു. ഒപ്പം തികച്ചും സ്ഥിരതയോടെ. ഇല്ല, ആരും VCL-നെ കൊല്ലുന്നില്ല. അവൻ നമ്മോടുകൂടെ താമസിക്കുന്നു. എന്നാൽ അവൻ ഇപ്പോൾ ഒന്നാം നമ്പർ അല്ല. അവൻ ഒരു സ്റ്റാൻഡ്-ഇൻ ആയിരിക്കണം. ഉൽപ്പന്നത്തിന്റെ ഭാവിയെക്കുറിച്ച് എന്താണ് പറയുന്നതെന്ന് കുറഞ്ഞത് അങ്ങനെയാണ് ഞാൻ മനസ്സിലാക്കുന്നത്.

തത്വത്തിൽ, ഈ വിന്യാസം ഞാൻ മനസ്സിലാക്കുന്നു. മൾട്ടി-പ്ലാറ്റ്‌ഫോമിനായി ഒരു കോഴ്‌സ് എടുത്തിട്ടുണ്ട്, അതിലും പ്രധാനമായി, ക്രോസ്-പ്ലാറ്റ്‌ഫോമിനായി. എല്ലാത്തിനുമുപരി, എന്താണ് VCL? വിഷ്വൽ ഘടക ലൈബ്രറി. വിഷ്വൽ ഘടകങ്ങളുടെ ലൈബ്രറി. നിങ്ങൾ ഇതിനോട് യോജിക്കുന്നില്ലായിരിക്കാം. ഉദാഹരണത്തിന്, ഞാൻ എല്ലായ്പ്പോഴും ഒരുപാട് വിഷ്വൽ ഇതര ഘടകങ്ങളെ പരിഗണിച്ചിട്ടുണ്ട്, ഘടകങ്ങളല്ല, മറിച്ച് ക്ലാസുകൾ, വിസിഎല്ലിന്റെ അവിഭാജ്യ ഘടകമാണ്, കൂടാതെ ധാരാളം മൂന്നാം കക്ഷി ക്ലാസുകളും ഘടകങ്ങളും - ഒരു തുടർച്ച, വിസിഎല്ലിന്റെ വിപുലീകരണം . ശരി, എനിക്ക് TDataset-ന്റെ അവകാശികളെ VCL-ന്റെ ഭാഗമല്ലെന്ന് കണക്കാക്കാനാവില്ല. എന്നിരുന്നാലും, ഉദാഹരണത്തിന്, DBExpress ലൈബ്രറി എന്ന പദം അത് ഒരു വിസിഎൽ അല്ലെന്ന് പറയുന്നു. പ്രത്യക്ഷത്തിൽ, Embarcadero യഥാർത്ഥത്തിൽ മോണോലിത്തിക്ക് വിഭജിക്കുന്നു, എന്റെ കാഴ്ചപ്പാടിൽ, VCL-നെ വ്യത്യസ്ത ലൈബ്രറികളായി വിഭജിക്കുന്നു. ഇല്ല, തീർച്ചയായും, പൂർണ്ണമായും വേർതിരിക്കപ്പെട്ടിട്ടില്ല, എന്നിരുന്നാലും. നിങ്ങൾ ഈ കാഴ്ചപ്പാട് എടുക്കുകയാണെങ്കിൽ, ഫയർമങ്കി VCL-ന്റെ വിഷ്വൽ ഭാഗം മാറ്റിസ്ഥാപിക്കാൻ ഉദ്ദേശിച്ചുള്ളതാണ് (ഞാൻ ഇപ്പോഴും സമ്പൂർണ്ണ ക്ലാസും ഘടക ലൈബ്രറിയും, ഒരുപക്ഷെ ബോർലാൻഡ് ഘടക ലൈബ്രറിയെ എങ്ങനെ വിളിക്കണം?).

ചുറ്റും നിർമ്മിച്ച ലൈബ്രറിയുടെ ദൃശ്യ ഘടകങ്ങൾ എന്തൊക്കെയാണ്? ഓപ്പറേറ്റിംഗ് സിസ്റ്റം നൽകുന്ന താഴ്ന്ന നിലയിലുള്ള അടിസ്ഥാന ഘടകങ്ങൾ. വിൻഡോ ഹാൻഡിലുകൾ, ഫോണ്ടുകൾ, വിൻഡോകൾ, ഇൻപുട്ട് ഘടകങ്ങൾ, സന്ദേശങ്ങൾ, ഉപകരണ സന്ദർഭങ്ങൾ എന്നിവയും അതിലേറെയും - ഇവ ഡെൽഫിയിൽ വരുന്ന ലൈബ്രറിയുടെ ആശയങ്ങളല്ല, ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന്റെ ആശയങ്ങളാണ്. അതെ, അത് ശരിയാണ്, വിൻഡോസ്. നിങ്ങൾക്ക് ഒരു ക്രോസ്-പ്ലാറ്റ്ഫോം ലൈബ്രറി നിർമ്മിക്കണമെങ്കിൽ, ലൈബ്രറി ഉപയോഗിച്ച് എഴുതിയ പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യുന്ന ഓപ്പറേറ്റിംഗ് സിസ്റ്റം വാഗ്ദാനം ചെയ്യുന്ന ഇൻഫ്രാസ്ട്രക്ചർ നിരസിക്കുന്നത് യുക്തിസഹമാണ്.

ഇതാണ് ഫയർമങ്കി ചെയ്യാൻ ശ്രമിക്കുന്നത്. ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ തന്നെ വാഗ്ദാനം ചെയ്യുന്ന സേവനത്തെ മാറ്റിസ്ഥാപിക്കാൻ കഴിയുന്ന വിവിധ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ പിന്തുണയ്ക്കുന്ന അടിസ്ഥാന സംവിധാനങ്ങളെ അടിസ്ഥാനമാക്കി ഒരു ഇൻഫ്രാസ്ട്രക്ചർ സൃഷ്ടിക്കാൻ അവർ ശ്രമിക്കുന്നു.

ഉണ്ടാക്കാൻ ശ്രമിച്ചത് പലരും ഓർക്കുന്നുക്രോസ്-പ്ലാറ്റ്ഫോം ലൈബ്രറി മാത്രമല്ല, ഡെൽഫി തന്നെ. ഡെൽഫി 6-ന് സമാന്തരമായി, കൈലിക്സ് ഉൽപ്പന്നവും CLX ലൈബ്രറിയും പുറത്തിറങ്ങി. ലിനക്സിനായി വികസിപ്പിക്കുന്നതിന് വേണ്ടിയാണ് ഇതെല്ലാം ചെയ്തത്. എന്നിരുന്നാലും, വിൻഡോസ് ചെയ്യുന്ന അടിസ്ഥാന GUI വിൻഡോയിംഗ് ആശയങ്ങൾ ലിനക്സിന് ഇല്ല. ലിനക്സിനുള്ള വിൻഡോ ഇന്റർഫേസ് പൊതുവെ ഒരു നേറ്റീവ് പ്രതിഭാസമല്ല. ഇതൊരു ഓപ്ഷണൽ ആപ്ലിക്കേഷനാണ്. എനിക്ക് ഒരുതരം സിന്തറ്റിക് ലൈബ്രറി എഴുതേണ്ടി വന്നു. അതിന്റെ സഹായത്തോടെ, വിൻഡോസിനും ലിനക്സിനും വേണ്ടി ഒരു പ്രോഗ്രാം എഴുതാൻ സാധിച്ചു. എന്നിരുന്നാലും, CLX-ൽ നിന്നുള്ള വിഷ്വൽ ഘടകങ്ങളുടെ അനലോഗ് ഉപയോഗിക്കാൻ ശ്രമിച്ചപ്പോൾ ഞാൻ അനുഭവിച്ച ആ വികാരം, നിരാശയല്ല, അലോസരപ്പെടുത്തുന്ന അസൌകര്യം ഞാൻ ഇപ്പോഴും ഓർക്കുന്നു. ഞാൻ ഒരുപാട് കാണാതെ തുടങ്ങി. വി‌സി‌എൽ ഉപയോഗിച്ച് വികസിപ്പിക്കുമ്പോൾ ഞാൻ ചിന്തിക്കാതെ ചെയ്യുന്നത് ബുദ്ധിമുട്ടുള്ളതും വളരെ വ്യത്യസ്തവും അല്ലെങ്കിൽ സി‌എൽ‌എക്‌സ് ഉപയോഗിച്ച് ചെയ്യാൻ കഴിയാത്തതും ആയി മാറി.

BDE-യിൽ നിന്ന് DBExpress-ലേക്ക് മാറുമ്പോൾ എനിക്കും അങ്ങനെ തന്നെ തോന്നി. ഫീൽഡ് ടെസ്റ്റ്-എ ബിഡിഇയിൽ നിന്ന് പരിചിതമായ പഴയത് (ബോർലാൻഡ് പിന്നീട് ഇത് വിൻഡോസിനായുള്ള ക്വാട്രോ പ്രോയിലും വിൻഡോസിനായുള്ള പാരഡോക്സിലും ഉപയോഗിച്ചിരുന്നു, ഇതിനെ ഒഡിഎപിഐ എന്നും പിന്നീട് ഐഡിഎപിഐ എന്നും വിളിച്ചിരുന്നു, എന്റെ അഭിപ്രായത്തിൽ മൈക്രോസോഫ്റ്റിന്റെ ഒഡിബിസി മുകളിലായിരുന്നു) കാലഹരണപ്പെട്ട സാങ്കേതികവിദ്യ പ്രഖ്യാപിച്ചു, അത് പുതിയ പ്രോജക്റ്റുകളിൽ ഒരു പുതിയ ലൈബ്രറിയിലേക്ക് വഴിമാറണം. എനിക്ക് ആദ്യം DBExpress-ൽ എന്തെങ്കിലും നഷ്‌ടമായിരുന്നു, പ്രത്യേകിച്ച് അറിവ്.

അതേ സമയം, മുകളിൽ ലിസ്റ്റുചെയ്തിരിക്കുന്ന ലൈബ്രറികളെയോ അവയുടെ രൂപത്തിലേക്ക് നയിച്ച തീരുമാനങ്ങളെയോ ശകാരിക്കാനോ വിമർശിക്കാനോ ഞാൻ ആഗ്രഹിക്കുന്നില്ല. ഇത് എന്റെ ഇംപ്രഷനുകളെക്കുറിച്ചാണ്, ചിലപ്പോൾ ആദ്യ ഇംപ്രഷനുകൾ.

ഇപ്പോൾ, ഒരുപക്ഷേ, ഫയർമങ്കി ഉപയോഗിച്ച് ഒരു ചെറിയ വർക്കിംഗ് പ്രോജക്റ്റ് എഴുതാനുള്ള തീരുമാനം നിരവധി പ്രശ്നങ്ങൾ കൊണ്ടുവന്നത് എന്തുകൊണ്ടാണെന്ന് കുറച്ചുകൂടി വ്യക്തമാകും. നിരവധി വർഷങ്ങളായി, പ്രോജക്ടുകൾ, പ്രോജക്ടുകൾ, പ്രോജക്ടുകൾ എന്നിവയുടെ വികസനത്തിൽ, ഒരു പ്രത്യേക സ്റ്റീരിയോടൈപ്പ് രൂപപ്പെട്ടു, എന്തുചെയ്യണം, എങ്ങനെ ചെയ്യണം എന്നതിന്റെ ഒരു പ്രത്യേക ടെംപ്ലേറ്റ്. എന്റെ കാര്യത്തിൽ, ടെംപ്ലേറ്റ് മാറ്റേണ്ടതുണ്ടെന്ന വസ്തുത എനിക്ക് അഭിമുഖീകരിക്കേണ്ടി വന്നു. കാരണം, വിസിഎൽ ഉപയോഗിച്ച് നിങ്ങൾ പരിചിതമായതെല്ലാം FireMonkey-ൽ നിർമ്മിച്ച ഒരു പ്രോജക്റ്റിലേക്ക് മാറ്റാൻ നിങ്ങൾക്ക് കഴിയില്ല.

പ്രോജക്‌റ്റിന്റെ തുടക്കത്തിൽ, എനിക്ക് ദേജാവുവിന്റെ ഒരു പ്രത്യേക ബോധം അനുഭവപ്പെട്ടു. അതായത്, അസ്വസ്ഥതയുടെ ഒരു തോന്നൽ. ഉദാഹരണത്തിന്, സാധാരണ ഇൻപുട്ട് ഘടകങ്ങൾക്ക് ധാരാളം ഗുണങ്ങൾ ഇല്ല. ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന്റെ ചില സവിശേഷതകളെക്കുറിച്ചുള്ള അറിവുമായി ബന്ധപ്പെട്ട തന്ത്രങ്ങളെ അടിസ്ഥാനമാക്കി, പ്രായോഗികമായി ദൃഢമായി സ്ഥാപിതമായ തന്ത്രങ്ങൾ ഒരു പുതിയ സന്ദർഭത്തിൽ പ്രവർത്തിക്കില്ല. ചില ഘടകങ്ങൾ സമൂലമായി മാറിയെന്ന് പറയേണ്ടതില്ല.

ശരി, മറ്റൊരു പ്രധാന ന്യൂനൻസ്. കംപൈലറുകൾ, മോഡലിംഗ് സംവിധാനങ്ങൾ, അല്ലെങ്കിൽ വളരെ ശാസ്ത്രീയമായ മറ്റെന്തെങ്കിലും എന്നിവയുമായി (ജോലി) ബന്ധപ്പെട്ടിട്ടില്ലെങ്കിൽ, സാധാരണയായി ഏത് തരത്തിലുള്ള പ്രോജക്റ്റുകളാണ് ജോലിസ്ഥലത്ത് ചെയ്യേണ്ടത്? മിക്കവർക്കും ഇത് ഡാറ്റാബേസുകൾ ഉപയോഗിക്കുന്നത് ഉൾപ്പെടുന്ന എന്തെങ്കിലും വികസിപ്പിക്കുന്നതിനെക്കുറിച്ചാണെന്ന് ഞാൻ കരുതുന്നു. മാത്രമല്ല, വളരെ ശാസ്ത്രീയമായ എന്തെങ്കിലും DBMS നൽകുന്ന സേവനങ്ങൾ ഉപയോഗിക്കാനും കഴിയും.

ഇവിടെ മറ്റൊരു പതിയിരുന്ന് എന്നെ കാത്തിരിക്കുന്നു. ചില കാരണങ്ങളാൽ, ഡാറ്റാബേസിൽ സംഭരിച്ചിരിക്കുന്ന ഡാറ്റയുമായി പ്രവർത്തിക്കുന്നതിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്ന ഘടകങ്ങൾ ഫയർമങ്കിയിൽ അടങ്ങിയിട്ടില്ലെന്ന് നിങ്ങൾ പ്രായോഗികമായി കാണുമ്പോൾ, നിങ്ങൾ ഇതിന് തയ്യാറല്ല (മിതമായ രീതിയിൽ പറഞ്ഞാൽ). ഞാൻ ഇതിനെക്കുറിച്ച് ഇതിനകം പലതവണ വായിച്ചിട്ടുണ്ടെങ്കിലും (സൈദ്ധാന്തികമായി) നിങ്ങൾ എന്താണ് ഉപയോഗിക്കേണ്ടതെന്ന് നിങ്ങൾക്കറിയാം. ഇത് ലൈവ് ബൈൻഡിംഗുകളെക്കുറിച്ചാണ്.

യഥാർത്ഥ രസകരമായ പ്രോഗ്രാമർമാർ db-aware ഘടകങ്ങൾ ഉപയോഗിക്കണോ വേണ്ടയോ എന്നതിനെക്കുറിച്ചുള്ള ഒരു തർക്കത്തിൽ ഏർപ്പെടാൻ ഞാൻ ആഗ്രഹിക്കുന്നില്ല. പ്രദർശിപ്പിക്കുക, എഡിറ്റുചെയ്യുക, ആത്യന്തികമായി സംരക്ഷിക്കുക. വീണ്ടും, അത് മോശമോ നല്ലതോ അല്ല. അതെനിക്ക് അങ്ങനെ സംഭവിച്ചു.

ഇത് എന്റെ ആദ്യ ഇംപ്രഷൻ പോസ്റ്റ് അവസാനിപ്പിക്കുന്നു. പ്രോജക്റ്റിൽ പ്രവർത്തിക്കുമ്പോൾ അവർ എന്ത്, എങ്ങനെ മറികടന്നുവെന്നതിനെക്കുറിച്ചുള്ള കഥകളാണ് അടുത്തത്.

കഴിഞ്ഞ സെപ്റ്റംബറിൽ പുറത്തിറങ്ങിയ Delphi XE2-ൽ റെക്കോർഡ് എണ്ണം പുതുമകൾ അടങ്ങിയിരിക്കുന്നു.
Delphi XE2 ഫീച്ചറുകളെ കുറിച്ചുള്ള സംക്ഷിപ്ത അവലോകനങ്ങൾ ഹബ്രെയിൽ ഇതിനകം പ്രസിദ്ധീകരിച്ചിട്ടുണ്ട്. പക്ഷേ, വ്യക്തമായും, FireMonkey പ്ലാറ്റ്‌ഫോം ഏറ്റവും ശ്രദ്ധേയമായ പുതുമയായി മാറിയിരിക്കുന്നു, ഇവിടെ ഞാൻ അതിൽ അൽപ്പം ശ്രദ്ധിക്കാൻ ആഗ്രഹിക്കുന്നു.
ഈ പ്ലാറ്റ്‌ഫോമിനെക്കുറിച്ച് കൂടുതലോ കുറവോ മതിയായ ആശയം ലഭിക്കാൻ നിങ്ങളെ സഹായിക്കുമെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്ന മെറ്റീരിയലുകളിലേക്കുള്ള ലിങ്കുകളുടെ ഒരു ചെറിയ തിരഞ്ഞെടുപ്പ് ഞാൻ നടത്തിയിട്ടുണ്ട്. എന്നാൽ ആദ്യം, അറിവില്ലാത്തവർക്കായി, ഫയർമങ്കി എന്താണെന്ന് ഞാൻ ചുരുക്കമായി വിവരിക്കും.
Windows, Mac, iOS എന്നിവയ്‌ക്കായി പൂർണ്ണ ഫീച്ചർ ചെയ്‌ത ബിസിനസ്സ് ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കുന്നതിനുള്ള ഒരു പ്ലാറ്റ്‌ഫോമായി Embarcadero Technologies ഫയർമങ്കിയെ സ്ഥാനീകരിക്കുന്നു. അതേ സമയം, ഈ പ്ലാറ്റ്ഫോം ഓരോ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്കും നേറ്റീവ് ആണ്, അതായത്. FireMonkey ഉപയോഗിച്ച് സൃഷ്‌ടിച്ച ഒരു അപ്ലിക്കേഷൻ പ്രവർത്തിപ്പിക്കുമ്പോൾ, അധിക ആഡ്-ഓണുകളൊന്നും ഉപയോഗിക്കില്ല.
FireMonkey നേരിട്ട് OpenGL അല്ലെങ്കിൽ DirectX പോലുള്ള ഒരു നേറ്റീവ് (OS-wise) ഗ്രാഫിക്സ് ലൈബ്രറിയിലേക്ക് ലിങ്ക് ചെയ്യുന്നു. അങ്ങനെ, GPU- യുടെ വീക്ഷണകോണിൽ നിന്നുള്ള മികച്ച പരിഹാരം നിർദ്ദേശിക്കപ്പെടുന്നു.
ഫയർമങ്കി ആർക്കിടെക്ചറിന്റെ കാതൽ ഒരു ശക്തമായ ക്ലാസ് ലൈബ്രറിയാണ് (വിഷ്വൽ ഘടകങ്ങൾ ഉൾപ്പെടെ).
സമാഹരിക്കുന്ന സമയത്ത് ടാർഗെറ്റ് പ്ലാറ്റ്ഫോം തിരഞ്ഞെടുത്തു.
FireMonkey-യുടെ ആദ്യ പതിപ്പ് Win32, Win64, MacOSX, iOS എന്നിവയെ മാത്രമേ പിന്തുണയ്ക്കൂ, ഭാവിയിൽ ഇത് മറ്റ് നിരവധി പ്ലാറ്റ്‌ഫോമുകളിലേക്ക് പോർട്ട് ചെയ്യാൻ Embarcadero പദ്ധതിയിടുന്നു.

എന്താണ് പരിഗണിക്കേണ്ടത്?

FireMonkey പ്ലാറ്റ്‌ഫോം 3D ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കുന്നതിനുള്ള വിപുലമായ ടൂളുകൾ നൽകുന്നുണ്ടെങ്കിലും, ഇത് ഒരു ഗെയിം എഞ്ചിൻ ആയി കണക്കാക്കാനാവില്ല. ബിസിനസ്സ് ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കുന്നതിനുള്ള ഒരു പ്ലാറ്റ്ഫോം എന്ന നിലയിലാണ് FireMonkey കൃത്യമായി സ്ഥാപിച്ചിരിക്കുന്നത്.
ഇപ്പോൾ ഉൽപ്പന്നം അതിന്റെ പരിണാമത്തിന്റെ പ്രാരംഭ ഘട്ടത്തിലാണ്. ഫയർമങ്കിയുടെ പല പ്രവർത്തനങ്ങളും ഗുണപരവും അളവ്പരവുമായ മാറ്റങ്ങൾക്ക് വിധേയമായിക്കൊണ്ടിരിക്കുകയാണ്.

പുതിയ പ്ലാറ്റ്‌ഫോമിന്റെ പ്രധാന സവിശേഷതകൾ മനസ്സിലാക്കാൻ ചുവടെയുള്ള ലിങ്കുകൾ നിങ്ങളെ സഹായിക്കുമെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു.
Embarcadero വെബ്സൈറ്റിലെ ഔദ്യോഗിക ഉൽപ്പന്ന പേജ് (റഷ്യൻ)

ഇംഗ്ലീഷ് ഭാഷയിലുള്ള മെറ്റീരിയലുകളിൽ, പരമ്പര (ഇംഗ്ലീഷ്) ഹൈലൈറ്റ് ചെയ്യാൻ ഞാൻ ആഗ്രഹിക്കുന്നു

എന്താണ് കാണേണ്ടത്?

ഡെൽഫിയുടെ ഏറ്റവും പുതിയ പതിപ്പിനെ സംബന്ധിച്ചിടത്തോളം, ഉൽപ്പന്നത്തിന്റെ സവിശേഷതകൾക്കും അതുമായി പ്രവർത്തിക്കുന്നതിനുള്ള രീതികൾക്കും വേണ്ടി നീക്കിവച്ചിരിക്കുന്ന ധാരാളം വീഡിയോ മെറ്റീരിയലുകൾ എന്നത്തേക്കാളും കൂടുതൽ ഉണ്ട്. എംബാർകാഡെറോയിൽ നിന്നുള്ള ഔദ്യോഗികവും സ്വതന്ത്ര ഡെവലപ്പർമാരിൽ നിന്നും. ഫയർമങ്കിയെക്കുറിച്ച് YouTube-ൽ ധാരാളം വീഡിയോകൾ ഉണ്ട്, നിങ്ങൾക്ക് തിരയൽ ഉപയോഗിക്കാം. ഈ മെറ്റീരിയലിന്റെ സമൃദ്ധിയിൽ, മാർക്കോ കാന്റു - RAD ഇൻ ആക്ഷൻ ലാൻഡിംഗ് പേജിൽ നിന്നുള്ള മൂന്ന് വീഡിയോകളുടെ ഒരു പരമ്പര ഞാൻ ഒറ്റപ്പെടുത്തും. അങ്ങനെ, എന്റെ ഗവേഷണത്തിന് ഉപയോഗപ്രദമായ ഒരു വെക്റ്റർ നൽകുന്നു.

03/06/2013 12:46 pm

FireMonkey-ൽ ഒരു ബ്രൗസർ ഘടകത്തിന്റെ അഭാവം കാരണം ഞാൻ ഒരുപാട് കഷ്ടപ്പെട്ടു. പ്രസിദ്ധമായ ഡെൽഫി ക്രോമിയം എംബഡഡ് പ്രോജക്റ്റിൽ ഏറ്റവും പുതിയ ബിൽഡിൽ FMX പിന്തുണ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഒരുപാട് സമയം കടന്നുപോയി എന്ന വസ്തുത ഉണ്ടായിരുന്നിട്ടും, എഫ്എംഎക്സ് 2 പിന്തുണ ചേർക്കാൻ രചയിതാവിന് തിടുക്കമില്ല. അവസാനം എനിക്ക് കാര്യങ്ങൾ എന്റെ കൈയിലെടുക്കേണ്ടി വന്നു.

ഔദ്യോഗിക അസംബ്ലിയിൽ നിന്നുള്ള TChromiumFMX ഘടകം FireMonkey-ൽ (XE2-ൽ) നന്നായി പ്രവർത്തിക്കുന്നു, എന്നാൽ ഇത് FMX2-ൽ പോലും കംപൈൽ ചെയ്യുന്നില്ല. ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് എനിക്ക് കുറച്ച് മനസിലാക്കുകയും അത് പരിഹരിക്കുകയും ചെയ്യേണ്ടിവന്നു. ഭാഗ്യവശാൽ, വലിയ മാറ്റങ്ങളൊന്നും ആവശ്യമില്ല.

FMX2-ൽ, ഘടകത്തിന് ആവശ്യമായ രണ്ട് കാര്യങ്ങൾ മാറി.

ആദ്യം, TBitmap-ൽ ഇനി സ്കാൻലൈൻ, സ്റ്റാർട്ട്ലൈൻ പ്രോപ്പർട്ടികൾ ഇല്ല. TBitmap ഉള്ളടക്കത്തിലേക്കുള്ള നേരിട്ടുള്ള ആക്‌സസ് പുനർരൂപകൽപ്പന ചെയ്‌തു (എന്തുകൊണ്ടാണെന്ന് ഞാൻ അത്ഭുതപ്പെടുന്നു) കൂടാതെ TBitmap.Map രീതി നൽകുന്ന TBitmapData ക്ലാസിലൂടെ ഇപ്പോൾ ലഭ്യമാണ്.

ശരി, രണ്ടാമത്തേത്, കൂടുതൽ അറിയപ്പെടുന്ന പ്ലാറ്റ്‌ഫോം .* ഇനി ഇല്ല, ഇപ്പോൾ നിങ്ങൾ TPlatformServices.GetPlatformService വഴി ആവശ്യമുള്ള ഇന്റർഫേസ് നേടേണ്ടതുണ്ട്. ഇവിടെ എല്ലാം വളരെ ലളിതമാണ്, പ്രശ്നങ്ങളൊന്നുമില്ല.

ഞാൻ ഇത് പ്രത്യേക ചാതുര്യത്തോടെ പരീക്ഷിച്ചില്ല, പക്ഷേ ഘടകം എന്റെ ആവശ്യങ്ങൾക്ക് തികച്ചും അനുയോജ്യമാണ് - നിങ്ങൾക്ക് അതിലൂടെ സൈറ്റുകൾ കാണാൻ കഴിയും. അത് ഡൗൺലോഡ് ചെയ്യുക. എന്നിട്ടും, ഒരുപക്ഷേ, ഞാൻ എന്റെ എഡിറ്റുകൾ രചയിതാവിന് അയയ്ക്കും, ഒരുപക്ഷേ അവ ഔദ്യോഗിക പതിപ്പിലേക്ക് ചേർക്കേണ്ടത് ആവശ്യമാണെന്ന് അദ്ദേഹം കരുതിയേക്കാം.

07/30/2012 2:43 am

നേറ്റീവ് വിൻഡോസ്/ഒഎസ്എക്സ് നിയന്ത്രണങ്ങൾക്കായി ഒരു കൂട്ടം ഫയർമങ്കി റാപ്പറുകൾ വികസിപ്പിക്കാൻ ജേസൺ സൗത്ത്വെൽ നിർദ്ദേശിക്കുകയും അതിനായി പണം സ്വരൂപിക്കുകയും ചെയ്യുന്നു. ആരംഭിക്കുന്നതിന് $20,000 സമാഹരിക്കാൻ അദ്ദേഹം പദ്ധതിയിടുന്നു.

ആശയം വ്യക്തമാണ്. നിലവിലുള്ള FireMonkey ഘടകങ്ങൾ ആദ്യം മുതൽ തന്നെ ഡെൽഫി ടൂളുകൾ ഉപയോഗിച്ചാണ് വരച്ചിരിക്കുന്നത്, ഇത് ഒരു വശത്ത് അവയുടെ ക്രോസ്-പ്ലാറ്റ്ഫോം ഉറപ്പാക്കുന്നു, എന്നാൽ മറുവശത്ത്, നിലവിൽ പിന്തുണയ്ക്കുന്ന രണ്ട് പ്രവർത്തനങ്ങളിലും സ്വാഭാവികമായി തോന്നാത്ത ഘടകങ്ങൾ ഞങ്ങൾക്ക് ലഭിക്കുന്നു. സംവിധാനങ്ങൾ. ഇത് അത്ര മോശമല്ല - രൂപത്തിന് പുറമേ, ഈ ഘടകങ്ങളുടെ യുക്തി നിങ്ങൾ സ്വതന്ത്രമായി വികസിപ്പിക്കേണ്ടതുണ്ട്. ഉദാഹരണത്തിന്, RichEdit തികച്ചും സങ്കീർണ്ണമാണ്, FireMonkey-ൽ അതിന്റെ യുക്തി ആവർത്തിക്കുന്നത് നിസ്സാരമായ കാര്യമല്ല. VCL ഉം CLX ഉം സൈക്കിളുകൾ കണ്ടുപിടിച്ചില്ല, പകരം റെഡിമെയ്ഡ് ഉപയോഗിച്ചു.

ഇപ്പോൾ മോശം വാർത്തയും. എല്ലാം റൺടൈമിൽ പ്രവർത്തിക്കുന്നു, എന്നാൽ ഇനങ്ങളുടെ ഡിസൈനറിലേക്ക് എന്റെ പുതിയ ടാബ് തരം ചേർക്കുന്നതിനുള്ള മാർഗമൊന്നും ഞാൻ കണ്ടെത്തിയില്ല. എല്ലാ ലിസ്റ്റ് നിയന്ത്രണങ്ങൾക്കും ഒരേ പ്രശ്‌നമുണ്ടെന്ന് തോന്നുന്നു: TListBox, TGrid മുതലായവ. ആദ്യം, അവ നടപ്പിലാക്കുന്നതിനുള്ള സമീപനം എനിക്ക് ശരിക്കും ഇഷ്ടപ്പെട്ടു, പക്ഷേ ഇപ്പോൾ ഞാൻ എങ്ങനെയെങ്കിലും സംശയിക്കുന്നു. ഈ പ്രശ്നം ഞാൻ ഒറ്റയ്ക്കല്ലെന്ന് ഇന്റർനെറ്റ് സെർച്ചിൽ കണ്ടെത്തി.

സഹായം നിശബ്ദമാണ്, ഞാനും കോഡിൽ ഒന്നും കണ്ടെത്തിയില്ല. ശരിക്കും വഴിയില്ലേ? ഇത് അങ്ങേയറ്റം അലോസരപ്പെടുത്തും.

ഈ ബ്ലോഗിന്റെ പശ്ചാത്തലത്തിൽ, ഈ പ്രോജക്റ്റ് പ്രാഥമികമായി രസകരമാണ്, കാരണം ഇത് FireMonkey-ൽ നടപ്പിലാക്കുകയും ഈ പ്ലാറ്റ്‌ഫോമിന്റെ കഴിവുകളുടെ അതിശയകരമായ പ്രകടനവുമാണ്. അതിനാൽ, കഴിഞ്ഞ ആഴ്ച, ഉൽപ്പന്നത്തിന്റെ പൊതു ബീറ്റ പുറത്തിറങ്ങി. അങ്ങനെ, ബ്ലോഗ് വായനക്കാർക്ക് ശരിക്കും സങ്കീർണ്ണമായ "അനുഭവിക്കാൻ" കഴിയും തീക്കുരങ്ങ്അനുബന്ധം.

പ്രോഗ്രാമിനെക്കുറിച്ച് കുറച്ച് വാക്കുകൾ. ഒന്നാമതായി, സ്ഫിയറിന്റെ നിലവിലെ പതിപ്പ് അൽപ്പം വ്യത്യസ്തമായ സ്ഥാനത്താണ് എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്. അതെ, ചിലപ്പോൾ അത് സംഭവിക്കുന്നു ...

പുതിയത് സ്ഫിയർ ലൈവ്ഇത് മറ്റൊരു സന്ദേശവാഹകനല്ല. ഒന്നാമതായി, വിദ്യാഭ്യാസ പ്രക്രിയ ഫലപ്രദമായി സംഘടിപ്പിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു ഉപകരണമാണിത്. ഇത് വിദൂര പ്രഭാഷണങ്ങൾ, സ്വകാര്യ കൺസൾട്ടേഷനുകൾ, വ്യക്തിഗത പാഠങ്ങൾ, മറ്റ് സമാന ഇവന്റുകൾ എന്നിവ അനുവദിക്കുന്നു. അതേ സമയം, ജോലിക്ക് ആവശ്യമായ മിക്കവാറും എല്ലാം സജ്ജീകരിച്ചിരിക്കുന്നു. ഒരു അദ്വിതീയ ഫയൽ ട്രാൻസ്ഫർ സിസ്റ്റത്തിൽ ആരംഭിച്ച് ശക്തമായ ബില്ലിംഗ് സബ്സിസ്റ്റത്തിൽ അവസാനിക്കുന്നു.

ഈ ഘട്ടത്തിൽ, ഉൽപ്പന്നം ഉപയോഗിക്കുന്നതിനുള്ള വിലകൾ തികച്ചും ജനാധിപത്യപരമാണ്. പരിമിതമായ എണ്ണം ശ്രോതാക്കൾക്കും ചെറിയ അളവിലുള്ള വിഭവങ്ങൾക്കും വിധേയമായി, ഉൽപ്പന്നം സൗജന്യമായി ഉപയോഗിക്കാം.

സ്വാഭാവികമായും, ഗോളം പ്രധാന നേട്ടം ഉപയോഗിക്കുന്നു തീക്കുരങ്ങ്- ക്രോസ്-പ്ലാറ്റ്ഫോം. ഇപ്പോൾ ആപ്ലിക്കേഷൻ Windows, MacOS പതിപ്പുകളിൽ ലഭ്യമാണ്. ആൻഡ്രോയിഡ് പതിപ്പ് ഏത് ദിവസവും പ്രതീക്ഷിക്കാം.

എന്നിരുന്നാലും, എന്നെ സംബന്ധിച്ചിടത്തോളം, SphereLive രസകരമാണ്, ഒന്നാമതായി, യഥാർത്ഥ പരിഹാരങ്ങളുടെ മുഴുവൻ ശ്രേണിയും ഉള്ള ഒരു നൂതന ഉൽപ്പന്നം എന്ന നിലയിൽ. ചിലപ്പോൾ "... കൊള്ളാം, നിങ്ങൾ അത് എങ്ങനെ ചെയ്തു?" വഴിയിൽ, സ്ഫിയറിന്റെ ഡവലപ്പർമാരിൽ ഒരാൾ ഫയർമങ്കി ഫോറത്തിലെ ചർച്ചകളിൽ സജീവമായി പങ്കെടുക്കുന്നു. സ്വയം, ആപ്ലിക്കേഷൻ ഡൌൺലോഡ് ചെയ്യാനും രചയിതാവുമായി നേരിട്ട് സാങ്കേതിക പ്രശ്നങ്ങൾ ചർച്ച ചെയ്യാനും ഇത് ഒരു കാരണമായിരിക്കാം. എന്നെ വിശ്വസിക്കൂ, കാണാൻ ചിലതുണ്ട്, പഠിക്കാനുണ്ട്.

TListViewഒരു മൊബൈൽ ആപ്ലിക്കേഷൻ ഇന്റർഫേസ് നിർമ്മിക്കുന്നതിനുള്ള പ്രധാന ഘടകങ്ങളിലൊന്നാണ് തീക്കുരങ്ങ്. ഈ ഘടകം ഉപയോഗിക്കാൻ എളുപ്പമുള്ളതല്ല, പലപ്പോഴും ഗണ്യമായ അളവിൽ കോഡ് ഉൾപ്പെടുന്നു, എന്നാൽ ഡവലപ്പർക്ക് കാര്യമായ പ്രവർത്തന സ്വാതന്ത്ര്യം നൽകുന്നു. തീർച്ചയായും, ആപ്ലിക്കേഷനുകളും ഉപയോഗിക്കാം TListBoxഅവിടെ എല്ലാം വളരെ എളുപ്പമാണ്. പക്ഷേ TListBox, ഒരു നിശ്ചിത എണ്ണം റെക്കോർഡുകൾ പ്രദർശിപ്പിക്കുന്നതിന്, ഡാറ്റ ഉറവിടങ്ങളിൽ നിന്നുള്ള ഡാറ്റ പ്രദർശിപ്പിക്കുന്നതിന്, നിങ്ങൾ തീർച്ചയായും ഉപയോഗിക്കേണ്ടതാണ് TListView.

TListView ഉം TListBox ഉം തമ്മിലുള്ള പ്രധാന വ്യത്യാസങ്ങൾ ഇവയാണ്:

  1. TListBoxItem- നിയന്ത്രണം, TListViewItem- ഇല്ല
  2. എ.ടി TListBoxItemപാരന്റ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഏത് നിയന്ത്രണങ്ങളും ചേർക്കാം. എ.ടി TListVIewItem- ഇല്ല.
  3. TListVIewItemസംഭരിക്കുന്ന ഡാറ്റ മാത്രം പ്രദർശിപ്പിക്കുന്നു
  4. TListVIewItemസ്വയം സംഭരിച്ച ഡാറ്റയുടെ റെൻഡറിംഗ് രീതിയിലൂടെ നിർവഹിക്കുന്നു റെൻഡർ ചെയ്യുക
  5. TListVIewItem-ലെ യഥാർത്ഥ മാനുവൽ റെൻഡറിംഗ് കാരണം, വേഗതയിൽ വർദ്ധനവും കുറഞ്ഞ മെമ്മറി ഉപഭോഗവും കൈവരിക്കാനാകും (യഥാർത്ഥ ഡാറ്റ മാത്രം സംഭരിക്കുന്നു)
  6. സ്വന്തമായി സൃഷ്ടിക്കാൻ TListViewItem, നിങ്ങളുടേതായ ഇനം ക്ലാസ് സൃഷ്ടിക്കുകയും അതിൽ ആവശ്യമായ ഡാറ്റ നടപ്പിലാക്കുകയും വേണം (ഉദാഹരണത്തിന്, സമയം) സമയം എഡിറ്റ് ചെയ്യുന്നതിനും രജിസ്റ്റർ ചെയ്യുന്നതിനും മറ്റും ഒരു ഇൻ-പ്ലേസ് എഡിറ്റർ സൃഷ്ടിക്കുക.

സ്വയം, പ്രകടനം മെച്ചപ്പെടുത്തുന്നതിനും മെമ്മറി ഉപഭോഗം കുറയ്ക്കുന്നതിനുമുള്ള വസ്തുത ഉപയോഗിക്കുന്നതിന് അനുകൂലമായ ശക്തമായ വാദമാണ് TListView. എന്നാൽ മറ്റൊന്നുണ്ട്.

പലതിലും ആൻഡ്രോയിഡ്അപ്ലിക്കേഷനുകൾ, ലിസ്റ്റുകളുടെ ഇനിപ്പറയുന്ന നടപ്പാക്കൽ ഞാൻ കണ്ടു. നിങ്ങൾ ഒരു ലിസ്റ്റ് ഇനത്തിൽ ക്ലിക്കുചെയ്യുമ്പോൾ (ഇനം, നിങ്ങൾ തിരഞ്ഞെടുത്ത ടെർമിനോളജിയിൽ ഉറച്ചുനിൽക്കുകയാണെങ്കിൽ), ഒരു നിശ്ചിത പ്രവർത്തനം നടത്തുന്നു. സാധാരണയായി ഡാറ്റ എഡിറ്റുചെയ്യാൻ ഒരു പുതിയ ഫോം വിളിക്കുന്നു. എന്നാൽ നിങ്ങൾ അമർത്തി പിടിക്കുമ്പോൾ (ലോംഗ് ടാപ്പ്), തികച്ചും വ്യത്യസ്തമായ ഒരു പ്രവർത്തനം നടക്കുന്നു. കൂടാതെ, ഈ സംഭവങ്ങൾ പരസ്പരം ബന്ധിപ്പിക്കുന്നില്ല. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, Android ആപ്ലിക്കേഷനുകൾക്ക് "ലോംഗ് പ്രസ്സ്", "സാധാരണ" എന്നിവ തമ്മിൽ വ്യക്തമായി വേർതിരിച്ചറിയാൻ കഴിയും. മാത്രമല്ല, ലിസ്റ്റ് സ്ക്രോൾ ചെയ്യുമ്പോൾ ഈ ഇവന്റുകളൊന്നും ട്രിഗർ ചെയ്യപ്പെടുന്നില്ല. Yandex Mail ലെ അക്ഷരങ്ങളുടെ പട്ടികയാണ് ഒരു നല്ല ഉദാഹരണം.

ഒന്നാമതായി, കഴിഞ്ഞ അവധി ദിവസങ്ങളിൽ ബ്ലോഗിന്റെ എല്ലാ വായനക്കാരെയും അഭിനന്ദിക്കാനും വരും വർഷത്തിൽ നിങ്ങൾക്ക് എല്ലാ ആശംസകളും നേരാനും ഞാൻ ആഗ്രഹിക്കുന്നു.

മനസ്സിലാക്കാവുന്ന സാഹചര്യങ്ങൾ കാരണം, ഞാൻ ഒരു പരമ്പരാഗത പുതുവത്സര റിപ്പോർട്ട് തയ്യാറാക്കിയിട്ടില്ല, അതുപോലെ തന്നെ വർഷത്തേക്കുള്ള പദ്ധതികളൊന്നും ആസൂത്രണം ചെയ്തില്ല. എന്നിരുന്നാലും, ജീവിതം നിശ്ചലമല്ല, ജോലി നടക്കുന്നു, ഡെൽഫി ലോകത്ത് ചില സംഭവങ്ങൾ നടക്കുന്നു. സമീപഭാവിയിൽ ക്രിസ്മസ് അവധിക്കാലത്ത് നഷ്‌ടമായ "ഡെൽഫിയുടെ ലോകത്ത് നിന്നുള്ള വാർത്തകൾ" പ്രസിദ്ധീകരിക്കാൻ ഞാൻ ഏറ്റെടുക്കുന്നു. അതിനിടയിൽ, ഞാൻ വാങ്ങിയ പുതിയ ഉപകരണത്തെക്കുറിച്ച് ഞാൻ നിങ്ങളോട് പറയും.

ഔദ്യോഗിക വെബ്സൈറ്റിൽ നിങ്ങൾക്ക് സ്പെസിഫിക്കേഷനുകൾ കണ്ടെത്താം. കൂടാതെ ആത്മനിഷ്ഠമായ മതിപ്പ് വളരെ മനോഹരമാണ്. നിർമ്മാതാവിൽ നിന്നുള്ള കുത്തക സോഫ്‌റ്റ്‌വെയർ ഉപയോഗിച്ച് ഉപകരണം അക്ഷരാർത്ഥത്തിൽ തിങ്ങിനിറഞ്ഞിരിക്കുന്നു എന്നത് ശ്രദ്ധേയമാണ്. അതെ, വിൽപ്പനക്കാരിൽ നിന്ന് ഒരു മികച്ച സോഫ്റ്റ്വെയർ സമ്മാനമായി ലഭിച്ചു. പ്രവർത്തനത്തിൽ, സ്മാർട്ട്ഫോൺ മതിയായ വേഗതയുള്ളതും അതിന്റെ വിലയെ പൂർണ്ണമായും ന്യായീകരിക്കുന്നു (ഏകദേശം $ 200). 2 വർഷം മുമ്പ് ഞാൻ എന്റെ മുമ്പത്തെ GSmart 1362 ഫോൺ അതേ പണത്തിന് വാങ്ങി. പക്ഷേ, നിങ്ങൾ ഊഹിച്ചതുപോലെ, എന്റെ പ്രധാന താൽപ്പര്യം എങ്ങനെ എന്നതായിരുന്നു തീക്കുരങ്ങ്അപേക്ഷകൾ.

ടൈമറിനെക്കുറിച്ചുള്ള കഥ തുടരുന്നതിന് മുമ്പ് - രണ്ട് വാർത്തകൾ.

ആദ്യം, ആദ്യത്തെ XE7 അപ്‌ഡേറ്റ് പുറത്തിറങ്ങി. പാരമ്പര്യമനുസരിച്ച്, രജിസ്റ്റർ ചെയ്ത ഉപയോക്താക്കൾക്ക് ഇത് ലഭ്യമാണ്. നിങ്ങൾക്ക് സ്ഥിരമായ ബഗുകളുടെ ഒരു ലിസ്റ്റ് കണ്ടെത്താം. അപ്ഡേറ്റ് ചെയ്ത പരിതസ്ഥിതിയിൽ ആപ്ലിക്കേഷൻ എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് കാണാൻ ഞാൻ ആഗ്രഹിച്ചു. യഥാർത്ഥത്തിൽ, പരീക്ഷണങ്ങൾക്കുള്ള ഫീൽഡ് അവശേഷിച്ചെങ്കിലും, തിരുത്തലുകൾ വരുത്തേണ്ടതില്ല.

രണ്ടാമത്തെ വാർത്ത. Embarcadero പ്രത്യേക ഓഫറുകൾ വർഷാവസാനം വരെ നീട്ടി:

ശരി, ഇപ്പോൾ നേരിട്ട് പോസ്റ്റിന്റെ വിഷയത്തിലേക്ക്. തത്വത്തിൽ, Android-നായി ഇതിനകം സൃഷ്‌ടിച്ച ഒരു ആപ്ലിക്കേഷൻ പ്രവർത്തിപ്പിക്കാൻ ശ്രമിക്കുക മാത്രമാണ് ഞങ്ങൾക്ക് അവശേഷിക്കുന്നത്. ഇതിനായി, മുൻ പോസ്റ്റുകളിൽ ഞാൻ എഴുതിയത് ഞങ്ങൾ ഉപയോഗിക്കുന്നു. അതായത്, പുതിയത്. ഞാൻ ഈ ആപ്ലിക്കേഷൻ ഡീബഗ്ഗ് ചെയ്തു Nexus 7, അതനുസരിച്ച് ആൻഡ്രോയിഡ് 7″ ടാബ്‌ലെറ്റിന്റെ കാഴ്‌ച ചേർത്തു. ഡിസൈൻ അല്പം മാത്രം "ട്വീക്ക്" ചെയ്യേണ്ടതുണ്ട്.

ഒരുപക്ഷേ മടിയന്മാർ മാത്രം അവരുടെ ടൈമർ എഴുതിയില്ല. മൊബൈൽ പ്ലാറ്റ്‌ഫോമുകൾക്കുള്ള വികസന പിന്തുണയുടെ പശ്ചാത്തലത്തിൽ, ഡെൽഫിയിൽ ഒരു ടൈമർ എഴുതാനുള്ള ചുമതല പൊതുവെ ഒരു ആരാധനയായി കണക്കാക്കാം. അപ്പോൾ ഞാൻ ചിന്തിച്ചു, എന്തുകൊണ്ട് വികസനത്തിന്റെ ഉദാഹരണമായിക്കൂടാ തീക്കുരങ്ങ്ആപ്ലിക്കേഷനുകൾ ടൈമർ കൃത്യമായി പാഴ്‌സ് ചെയ്യുന്നില്ല. ആൻഡ്രോയിഡിന് കീഴിൽ, തീർച്ചയായും. തീർച്ചയായും, ഇത് ചുമതലയെക്കുറിച്ചുള്ള എന്റെ കാഴ്ചപ്പാടായിരിക്കും, പ്രത്യേകിച്ച് ബുദ്ധിമുട്ടുള്ളതല്ലെങ്കിലും, ഇപ്പോഴും അതിന്റേതായ സൂക്ഷ്മതകളുണ്ട്. ഒരുപക്ഷേ നിങ്ങൾക്ക് എന്തെങ്കിലും അഭിപ്രായങ്ങളോ നിർദ്ദേശങ്ങളോ ഉണ്ടായിരിക്കാം, അവ അഭിപ്രായങ്ങളിൽ ചർച്ച ചെയ്യുന്നത് വളരെ മികച്ചതായിരിക്കും. ഞാൻ ഒരു തരത്തിലും മൊബൈൽ ആപ്ലിക്കേഷനുകൾ എഴുതുന്നതിൽ ഒരു വിദഗ്ദ്ധനല്ല, അതിനാൽ നിങ്ങളുടെ ഏതെങ്കിലും അഭിപ്രായങ്ങൾ എനിക്ക് വിലപ്പെട്ടതായിരിക്കും.

ഈ പദത്തിന്റെ ഇംഗ്ലീഷ് അർത്ഥത്തിൽ ഞങ്ങൾ കൃത്യമായി ടൈമർ വികസിപ്പിക്കും. അതായത്, സ്‌ക്രീൻ ഒരു ഡയലും നാല് ബട്ടണുകളും പ്രദർശിപ്പിക്കും - “ആരംഭിക്കുക”, “താൽക്കാലികമായി നിർത്തുക”, “നിർത്തുക”, “റദ്ദാക്കുക”. കൗണ്ട്ഡൗൺ മുന്നോട്ട് പോകും (അതായത് സമയം വർദ്ധിക്കും). ഇംഗ്ലീഷ് ടെർമിനോളജിയിൽ സമയം സജ്ജീകരിക്കുകയും കൗണ്ട്ഡൗൺ നടക്കുകയും ചെയ്യുന്ന ഓപ്ഷനെ സ്റ്റോപ്പ് വാച്ച് എന്ന് വിളിക്കുന്നു, ഒരുപക്ഷേ ഞാൻ അത് പിന്നീട് നടപ്പിലാക്കാൻ ശ്രമിക്കാം. ഞങ്ങൾ കൈകാര്യം ചെയ്യുന്ന ആപ്ലിക്കേഷൻ ഒരു സ്റ്റോപ്പ് വാച്ചിന്റെ പ്രവർത്തനക്ഷമതയിൽ അടുത്താണ്.

ഡെൽഫി XE7 വികസന പ്രക്രിയയെ ഗണ്യമായി ലഘൂകരിക്കാൻ ഞങ്ങളെ അനുവദിക്കുന്നു, കാരണം ഇപ്പോൾ നമുക്ക് Win32 നായി ഒരു യഥാർത്ഥ ആപ്ലിക്കേഷൻ സൃഷ്ടിക്കാനും ഡീബഗ് ചെയ്യാനും കഴിയും, തുടർന്ന് ആവശ്യമായ മൊബൈൽ ഉപകരണങ്ങൾക്കായി ഫോം കാഴ്‌ചകൾ ചേർക്കുകയും കുറച്ച് ക്രമീകരണത്തിലൂടെ ഒരു പ്രവർത്തിക്കുന്ന മൊബൈൽ നേടുകയും ചെയ്യാം. അപേക്ഷ. സത്യമാകാൻ വളരെ നല്ലതായി തോന്നുന്നുണ്ടോ? ഒരുപക്ഷേ. എന്നാൽ ചുമതല മനസ്സിലാക്കി ഈ പ്രസ്താവന പരിശോധിക്കാനും ഞാൻ ആഗ്രഹിക്കുന്നു.

എന്റെ സഹപ്രവർത്തകരോട് സ്വകാര്യ സംഭാഷണങ്ങളിൽ മൊബൈൽ ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കാൻ കഴിയുമോ എന്ന് എന്നോട് കൂടുതൽ തവണ ചോദിക്കാറുണ്ട്. തീക്കുരങ്ങ്അല്ലെങ്കിൽ ഇത് ഒരു പ്രൊഡക്ഷൻ സൊല്യൂഷനേക്കാൾ ഒരു പ്രോട്ടോടൈപ്പ് ആണോ?

സന്ദേഹവാദികളെപ്പോലും ഇപ്പോൾ എനിക്ക് ഉറപ്പാക്കാൻ കഴിയുമെന്ന് ഞാൻ കരുതുന്നു.

എന്റെ സുഹൃത്തും സഹപ്രവർത്തകനുമായ ടാഗിർ യുമാഗുസിൻ വളരെക്കാലം മുമ്പ് അദ്ദേഹം പങ്കെടുത്ത പ്രോജക്റ്റിനെക്കുറിച്ച് എന്നോട് പറഞ്ഞു. ഇപ്പോൾ, ഈ പ്രോജക്റ്റ് പ്രീ-റിലീസ് അവസ്ഥയിലായിരിക്കുമ്പോൾ, ഈ വിവരണം ഡെൽഫി സമൂഹത്തിന് രസകരമായിരിക്കുമെന്ന് ഞങ്ങൾ തീരുമാനിച്ചു. ചുരുക്കത്തിൽ, ഇത് എഫ്എമ്മിൽ നടപ്പിലാക്കിയ ഒരു വലിയ പദ്ധതിയാണ്. നമ്മൾ സംസാരിക്കുന്നത് സ്ഫിയർ ലൈവ് പ്രോജക്റ്റിനെക്കുറിച്ചാണ്. ആ പ്രോജക്റ്റിനായി സമർപ്പിച്ചിരിക്കുന്ന ഒരു ചെറിയ ലേഖനം ഈയിടെ Habrahabr.ru-ൽ പ്രസിദ്ധീകരിച്ചു, ' ' വികസന വകുപ്പ് മേധാവി, എന്റെ ബ്ലോഗിന്റെ പ്രേക്ഷകരെ കണക്കിലെടുത്ത് പദ്ധതിയെക്കുറിച്ച് കൂടുതൽ പറയാൻ സമ്മതിച്ചു.

എ.ബി.- അലക്സി, പൊതുവേ, നിങ്ങളുടെ പ്രോജക്റ്റ് എന്താണ്?

എ.ജി.:- ആശയം ഉടനടി പ്രത്യക്ഷപ്പെട്ടില്ല. 'സ്‌ഫിയർ' പ്രോജക്റ്റിന് മുമ്പ് ഞങ്ങളുടെ ടീം സ്ട്രീം ഓഡിയോ/വീഡിയോ സാങ്കേതികവിദ്യകൾ നടപ്പിലാക്കിയ പ്രോജക്റ്റിൽ പ്രവർത്തിച്ചിരുന്നു. ഫീഡ്‌ബാക്ക് ഉൾപ്പെടെ പരിധിയില്ലാത്ത ഉപയോക്താക്കൾക്ക് മൾട്ടിമീഡിയ സ്ട്രീമുകൾ എത്തിക്കാൻ കഴിയുന്ന സോഫ്‌റ്റ്‌വെയർ ഞങ്ങൾ പിന്നീട് സൃഷ്‌ടിച്ചു. എന്നാൽ ഞങ്ങൾക്ക് ഒരു ബില്ലിംഗ് ഫീച്ചർ ഉൾപ്പെടുത്തേണ്ടതുണ്ട്.
അപേക്ഷയ്ക്ക് നിരവധി ആവശ്യകതകൾ പാലിക്കേണ്ടതുണ്ട്. ആദ്യം, കോൺഫറൻസുകളുടെ പരമാവധി ലളിതമായ ഓർഗനൈസേഷൻ അല്ലെങ്കിൽ പങ്കെടുക്കുന്നവർക്ക് പ്രക്ഷേപണം ചെയ്യുന്ന തുക നമുക്ക് പ്രവചിക്കാൻ കഴിയില്ല. രണ്ടാമതായി, ഏറ്റവും പ്രധാനപ്പെട്ടത്, ഞങ്ങളുടെ ക്ലയന്റുകൾക്ക് ഞങ്ങളുടെ ആപ്ലിക്കേഷൻ ഉപയോഗിച്ച് സമ്പാദിക്കാനുള്ള അവസരം നൽകുകയും സിസ്റ്റത്തിന്റെ സങ്കീർണ്ണത കുറയ്ക്കുകയും ചെയ്യുക, ലക്ഷ്യത്തിലെത്താൻ ആവശ്യമായ ഉപകരണങ്ങളുടെ അളവ് കുറയ്ക്കുക എന്നതാണ്. കോഴ്‌സുകളുടെ ഓർഗനൈസേഷന്റെ എളുപ്പം, വെബിനാർ അല്ലെങ്കിൽ ഒരു കൺസൾട്ടേഷൻ.

സംബന്ധിച്ച് ഒരു ചെറിയ മെമ്മറി നോച്ച് FireDACനിലവിലെ പതിപ്പിൽ ഡെൽഫി XE6. എന്നാൽ ആദ്യം, ഇത് സംബന്ധിച്ച ചോദ്യങ്ങൾക്ക് ഉത്തരം എവിടെ കണ്ടെത്തണം എന്നതിനെക്കുറിച്ചുള്ള കുറച്ച് വാക്കുകൾ തീക്കുരങ്ങ്. റഷ്യൻ സംസാരിക്കുന്ന ഉപയോക്താക്കൾ ഇവിടെ ഒരു പ്രത്യേക സ്ഥാനത്താണ്.

RAD സ്റ്റുഡിയോ XE5 വേൾഡ് ടൂറിന്റെ ഭാഗമായി ഖാർകിവ് ഇവന്റിനായി തയ്യാറെടുക്കുമ്പോൾ, ഞാൻ പ്രവർത്തിക്കുന്നതിൽ ഒരു ചെറിയ പ്രശ്നം നേരിട്ടു SQLiteഉപയോഗിച്ച് FireDAC. വിൻഡോസ് ആപ്ലിക്കേഷനിൽ പൂരിപ്പിച്ച ഡാറ്റാബേസ് ആപ്ലിക്കേഷനോടൊപ്പം കൈമാറുകയാണെങ്കിൽ ആൻഡ്രോയിഡ്, ഡാറ്റാബേസിലെ സിറിലിക് ലൈനുകൾ ഇനി വായിക്കാനാകില്ല (അക്ഷരങ്ങൾക്ക് പകരം ചോദ്യചിഹ്നങ്ങൾ പ്രദർശിപ്പിക്കും). എന്നിരുന്നാലും, നിങ്ങൾ ഒരു മൊബൈൽ ഉപകരണത്തിൽ നേരിട്ട് ഡാറ്റാബേസ് പൂരിപ്പിക്കുകയാണെങ്കിൽ, റഷ്യൻ അക്ഷരങ്ങൾ ശരിയായി വായിക്കും. ഒരു മൂന്നാം കക്ഷി ആപ്ലിക്കേഷനിൽ പൂരിപ്പിച്ച ഡാറ്റാബേസിൽ നിന്നുള്ള ഡാറ്റ, അല്ലെങ്കിൽ ഇൻ ഡെൽഫിമറ്റ് ഡാറ്റ ആക്സസ് ഘടകങ്ങൾ ഉപയോഗിക്കുന്ന ഒരു ആപ്ലിക്കേഷനും സാധാരണയായി പ്രദർശിപ്പിക്കും. ഒരു പരിഹാരം കണ്ടെത്തുന്നതിൽ റാലി പരാജയപ്പെട്ടു, എനിക്ക് ഒരു അറിയപ്പെടുന്ന ഉക്രേനിയൻ ഫുട്ബോൾ സ്പെഷ്യലിസ്റ്റിനെ ഉദ്ധരിക്കേണ്ടി വന്നു: "ഞങ്ങൾ അത് കണ്ടുപിടിക്കും!"

രണ്ടാമത്തേതിൽ നിന്ന് വ്യത്യസ്തമായി, വിവരിച്ച പ്രശ്നം കൈകാര്യം ചെയ്യാൻ എനിക്ക് കഴിഞ്ഞു. സ്ഥിരസ്ഥിതിയായി, കണക്റ്റുചെയ്യുമ്പോൾ SQLiteഇൻ FireDAC ANSI സ്ട്രിംഗ് ഫോർമാറ്റ് ഉപയോഗിക്കുന്നു.

നിങ്ങൾ യൂണികോഡ് നിർബന്ധിച്ചാൽ, എല്ലാം ശരിയായി പ്രവർത്തിക്കും. എന്നാൽ അസുഖകരമായ ഒരു നിമിഷം കൂടിയുണ്ട്. ലൈനുകളുടെ ഫോർമാറ്റ് മാറ്റിയ ശേഷം, എല്ലാ ഡാറ്റാ സെറ്റുകളിലെയും ഫീൽഡുകളുടെ ലിസ്റ്റ് നിങ്ങൾ പുനർനിർമ്മിക്കേണ്ടതുണ്ട്, അതുപോലെ തന്നെ ഡാറ്റ പ്രദർശിപ്പിക്കുന്നതിനും നൽകുന്നതിനും ഉത്തരവാദിത്തമുള്ള ഘടകങ്ങളെ വീണ്ടും ബന്ധിപ്പിക്കേണ്ടതുണ്ട്. അതിനാൽ, എൻകോഡിംഗ് ഉടനടി ശ്രദ്ധിക്കുന്നതാണ് നല്ലത്.

ഈ മിനി-സീരീസിന്റെ മുൻ ഭാഗങ്ങളിൽ, ഒരു ഡാറ്റാബേസ് സൃഷ്ടിക്കുന്നതും അതിന്റെ ഘടനയും ഡെൽഫിയിൽ നിന്ന് അതിലേക്ക് കണക്റ്റുചെയ്യുന്നതും ഞങ്ങൾ കൈകാര്യം ചെയ്തു. ഈ ഭാഗത്ത്, പട്ടികകളിൽ നിന്ന് ഡാറ്റ പ്രദർശിപ്പിക്കുന്നത് കൈകാര്യം ചെയ്യാൻ ഞാൻ നിർദ്ദേശിക്കുന്നു, ഏറ്റവും ലളിതമായ കേസിൽ നിന്ന്.

ഒരു ലളിതമായ ടേബിൾ ഡാറ്റ എഡിറ്റർ സാധാരണയായി ഒരു സങ്കീർണ്ണ ആപ്ലിക്കേഷന്റെ ഭാഗമാണ്. പട്ടികകൾ എഡിറ്റുചെയ്യാൻ, ഞാൻ സാധാരണയായി ഒരു പ്രത്യേക ഫോം ഉപയോഗിക്കുന്നു. ഉൽപ്പന്നങ്ങളുടെ പട്ടികയിൽ നിന്ന് ആരംഭിക്കാം. ഒന്നാമതായി, പട്ടിക ഡാറ്റ ആക്‌സസ് ചെയ്യുന്നതിന് ഞങ്ങൾ ഒരു ഡാറ്റാസെറ്റ് സൃഷ്‌ടിക്കേണ്ടതുണ്ട്. ഞങ്ങളുടെ കാര്യത്തിൽ, ഘടകം ഉപയോഗിക്കുന്നത് തികച്ചും സാദ്ധ്യമാണ് TADTable. DataModule-ൽ ഇട്ട് വസ്തുവിന്റെ മൂല്യം വ്യക്തമാക്കാം കണക്ഷൻ. പ്രോപ്പർട്ടി എഡിറ്ററിൽ പട്ടികയുടെ പേര്പട്ടികകളുടെ ഒരു ലിസ്റ്റ് ദൃശ്യമാകും, അതിൽ നിന്ന് ഞങ്ങൾ ഒരു പട്ടിക തിരഞ്ഞെടുക്കുന്നു ഉൽപ്പന്നങ്ങൾ. നിങ്ങൾ എല്ലാം ശരിയായി ചെയ്തുവെങ്കിൽ, നിങ്ങൾക്ക് സ്വത്ത് നൽകാം സജീവമാണ്യഥാർത്ഥ മൂല്യം. ഘടകം ഉടനടി പുനർനാമകരണം ചെയ്യുന്നതാണ് നല്ലത് (ഉദാഹരണത്തിന്, ADTPproduct). അതിനുശേഷം, ഞാൻ സാധാരണയായി ഡാറ്റാസെറ്റിനായി ഒരു കൂട്ടം ഫീൽഡുകൾ സൃഷ്ടിക്കുന്നു. ഞങ്ങൾ ഫീൽഡ് എഡിറ്ററിനെ വിളിക്കുന്നു (ഘടകത്തിൽ ഇരട്ട-ക്ലിക്കുചെയ്യുക) കൂടാതെ സന്ദർഭ മെനുവിലെ എല്ലാ ഫീൽഡുകളും ചേർക്കുക ഇനം തിരഞ്ഞെടുക്കുക.

അറിയാത്തവർക്കായി, ഈ പ്രവർത്തനത്തിന്റെ സാരാംശം ഞാൻ വിശദീകരിക്കും. ഇവിടെ ഞങ്ങൾ ഡാറ്റാസെറ്റ് ഫീൽഡുകളുടെ ഒരു മുൻനിശ്ചയിച്ച സെറ്റ് സൃഷ്ടിക്കുന്നു. ഡിസൈൻ മോഡിൽ ഞങ്ങൾ ഇത് സ്വമേധയാ ചെയ്യുന്നില്ലെങ്കിൽ, തത്വത്തിൽ, ഭയാനകമായ ഒന്നും സംഭവിക്കില്ല. റൺടൈമിൽ, ഈ സെറ്റ് സ്വയമേവ സൃഷ്ടിക്കപ്പെടും. എന്നാൽ ഇത് സ്വമേധയാ സൃഷ്ടിക്കാൻ ഞാൻ ഇപ്പോഴും ഇഷ്ടപ്പെടുന്നു. ഇതിന് നിരവധി കാരണങ്ങളുണ്ട്. ഒന്നാമതായി, ഒരു കൂട്ടം ഫീൽഡുകൾ കൈകാര്യം ചെയ്യുന്നത് കൂടുതൽ സൗകര്യപ്രദമാണ്, കാരണം നമുക്ക് ഡിസൈൻ മോഡിൽ അധിക (കണക്കെടുത്ത അല്ലെങ്കിൽ ലുക്ക്അപ്പ്) ഫീൽഡുകൾ സൃഷ്ടിക്കാൻ കഴിയും. ഫീൽഡുകളുടെ ഗുണങ്ങളും നമുക്ക് മാറ്റാം. കൂടാതെ, TField ഘടകത്തിന്റെ പേരിൽ കോഡിലെ ഫീൽഡുകൾ റഫർ ചെയ്യാനുള്ള അവസരം ഞങ്ങൾക്ക് ലഭിക്കുന്നു, ഇത് എന്റെ അഭിപ്രായത്തിൽ, കോഡ് എഴുതുന്നത് വളരെ ലളിതമാക്കുന്നു.

VCL ആപ്ലിക്കേഷന്റെ കാര്യത്തിലെന്നപോലെ, ഞങ്ങൾ ഡാറ്റാസെറ്റിലേക്ക് ഘടകം ബന്ധിപ്പിക്കും TDataSource. ഈ ഘടകം ഡാറ്റാസെറ്റും വിഷ്വൽ നിയന്ത്രണങ്ങളും തമ്മിലുള്ള ലിങ്ക് നൽകും. ഘടകത്തിന്റെ ഡാറ്റാസെറ്റ് പ്രോപ്പർട്ടി ഞങ്ങളുടെ ഡാറ്റാ സെറ്റിനെ (ADTPproduct) റഫർ ചെയ്യണം. ചുവടെ ഞാൻ DFM ഫയലിന്റെ ഒരു ഭാഗം നൽകുന്നു

ഒബ്ജക്റ്റ് ADTPproduct: TADTable IndexFieldNames = "ID" കണക്ഷൻ = ADConnection UpdateOptions. UpdateTableName = "ഉൽപ്പന്നം" TableName = "ഉൽപ്പന്നം" ഇടത് = 64 മുകളിൽ = 192 ഒബ്ജക്റ്റ് ADTPproductID: TADAutoIncField FieldName = "ID" ഉത്ഭവം = "ID" പ്രൊവൈഡർഫ്ലാഗുകൾ = [pfInWhere, pfInWhere, pfInKe-Where, pfInKe-Truductitnly ADTP വായിക്കുന്നു] ഉത്ഭവം = "ശീർഷകം" വലുപ്പം = 50 അവസാന ഒബ്‌ജക്റ്റ് dsProduct: TDataSource DataSet = ADTP ഉൽപ്പന്നം ഇടത് = 120 മുകളിൽ = 192 അവസാനം

ഒരു കൗതുകകരമായ സവിശേഷത ശ്രദ്ധിക്കുക, DataModule ഫോം ഫയൽ ഒരു സാധാരണ FireMonkey ഫോം പോലെ FMX ഫോർമാറ്റിലല്ല, മറിച്ച് VCL പോലെയുള്ള DFM ഫോർമാറ്റിലാണ്.

ഒരു ഡാറ്റാസെറ്റ് തുറക്കുന്നതിനുള്ള ഒരു നടപടിക്രമം സൃഷ്ടിക്കുക എന്നതാണ് അടുത്ത ഘട്ടം, പ്രോഗ്രാം ആരംഭിക്കുമ്പോൾ ഞങ്ങൾ റൺടൈമിൽ വിളിക്കേണ്ടതുണ്ട്. അതേ DataModule-ൽ തന്നെ ഉണ്ടാക്കാം. നടപടിക്രമ കോഡ് വളരെ ലളിതമാണ്:

നടപടിക്രമം TDM. ConnectToDB ; ADകണക്ഷൻ ആരംഭിക്കുക. തുറന്ന (); ADT ഉൽപ്പന്നം. തുറന്ന (); അവസാനിക്കുന്നു ;

DataModule-നുള്ള OnCreate ഇവന്റ് ഹാൻഡ്‌ലറിൽ നടപടിക്രമ കോൾ സ്ഥാപിക്കും.



വായിക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു

മുകളിൽ