Programa su grafine sąsaja. Grafinės sąsajos sukūrimas naudojant Qt. Sąsajos kūrimas iš C# kodo

1.1. Sveiki Qt!

Užveskite pelės žymeklį po paprasčiausios Qt programos tekstu:

1 #įtraukti 2 #įtraukti 3 int main(int argc, char *argv) 4 ( 5 QApplication programa(argc, argv); 6 QLabel *label = new QLabel("Sveiki, Qt!", 0); 7 app.setMainWidget(etiketė); 8 etiketė ->show(); 9 return app.exec(); 10 ) Čia, 1 ir 2 eilutėse, įtrauktos QApplication ir QLabel klasės.

5 eilutėje sukuriamas QApplication klasės egzempliorius, kurį tvarko programos ištekliai. QApplication konstruktorius perduoda argumentus argc ir argv, Qt apvalkalai gali apdoroti komandinės eilutės argumentus.

6 eilutėje sukuriamas QLabel vaizdinis komponentas, kuriame rodoma „Sveiki, Qt!“. Qt terminologijoje vadinami visi vaizdiniai komponentai, kurie turės grafinę sąsają valdikliai(Valdikliai). Mygtukai, meniu, slenkantys sūkuriai ir įvairūs rėmeliai – visa tai yra valdikliai. Kai kurie valdikliai gali būti naudojami savo valdikliuose, pavyzdžiui, „smutty“ programos – akivaizdžiausias valdiklis, kurį gali naudoti „QMenuBar“, „QToolBar“, „QStatusBar“ ir kt. null) indikatorius, nurodantis, kad šis valdiklis neturi „liniuotės“. neprisijunkite naudodami kitą valdiklį.

7 eilutėje priskiriamas programos valdiklis „galva“. Jei koristuvach uždaro programos valdiklį „galva“ (pavyzdžiui, aš paspaudžiu mygtuką „X“ prie lango pavadinimo), programa baigia savo darbą. Jei programa neatpažįsta galvos valdiklio, uždarius langą, ji ir toliau lauks fono režimo.

8 eilutėje matomas ženklas. Valdikliai visada daromi nematomi, todėl programuotojas netenka galimybės reguliuoti rodymo parametrų prieš pasirodant smarvei.

9 eilutėje išjungtas Qt bibliotekos priežiūros perdavimas. Nuo šio momento programa persijungs į atpažinimo režimą, jei nieko nedarysite, o tiesiog patikrinsite ratuką, pavyzdžiui, paspausdami klavišą arba pelės mygtuką.

Be-yaka diya koristuvacha neršti podiumas(kitaip tariant - "pažanga"), programos atveju galite spustelėti vieną ar kelias funkcijas. Šia prasme priedai su grafine sąsaja yra radikaliai modifikuojami įvairiose programose, apdorojant duomenis paketiniu būdu, tarsi priėmę įvestį kaip koristuvachą, jie savarankiškai apdoroja jogą, mato rezultatus ir užbaigia savo darbą be tolesnio jo dalyvavimo. žmonių.

Kūdikis 1.1. Vikno programos, skirtos Windows XP


Dabar laikas perrašyti mūsų programos robotą. Visų pirma – būtina turėti įdiegtą Qt 3.2 (arba naują versiją) ir pakeisti PATH kelią į bin katalogą. („Windows“ sistemoje pakeisto PATH nustatymas automatiškai išjungiamas diegiant Qt biblioteką)

Nukopijuokite programos tekstą iš failo, pavadinimu hello.cpp, iš katalogo hello.

Eikite į kitą katalogą ir išduokite komandą:

Qmake -project sukurti nuo platformos nepriklausomą projekto failą (hello.pro), tada duokite šią komandą: qmake hello.pro Ši komanda sukurs Makefile pagal projekto failą. Suteikite komandą make, kad sukurtumėte programą, tada paleiskite її įvesdami Sveiki(„Windows“ sistemoje) arba ./Sveiki(„Unix“) arba atidarykite hello.app(„Mac OS X“). Jei dirbate su Windows ir naudojate Microsoft Visual C++, turėtumėte pakeisti komandą make ir išleisti komandą nmake. Kaip alternatyvą, galite sukurti Visual Studio projektą iš failo hello.pro, vykdydami komandą: qmake -tp vc hello.pro ir tada sukompiliuokite programą Visual Studio.

Kūdikis 1.2. Etiketė su formatuotu tekstu.


O dabar sulaužykime trochą. Pakeitėme etiketės išvaizdą, pridėdami teksto formatavimą HTML stiliumi. Kam pakeisti eilutę

QLabel *label = new QLabel("Sveiki, Qt!", 0); on QLabel *label = new QLabel("

Sveiki " "Qt!

", 0); ir iš naujo pasirinkite programą.


1.2. Signalų veikimas.

Įžeidžiantis užpakalis rodomas – kaip organizuoti programos reakciją į dії koristuvach. Tsya programa paspausti mygtuką, paspaudus ant jako, programa užsidaro. Išorinis tekstas jau panašus į priekinį užpakalį dėl to, kad dabar, kaip pagrindinis valdiklis, QLabel pakeičia QPushButton ir papildomą kodą, kuris tarnauja kaip puolimo faktas.

Kūdikis 1.3. Baigti programą.


1 #įtraukti 2 #įtraukti 3 int main(int argc, char *argv) 4 ( 5 QApplication programa(argc, argv); 6 QPushButton *mygtukas = new QPushButton("Quit", 0); 7 QObject::connect(mygtukas, SIGNALAS(spustelėta()) ), 8 &app, SLOT(quit())), 9 app.setMainWidget(button);10 mygtukas->show(); signalus, pasakoja Jogo apie tuos, kuriuos koristuvach padarė, ar tai būtų darbai, ar apie tuos, kurie pakeis savo stovyklą. Pavyzdžiui, QPushButton klasės egzempliorius programai siunčia signalą clicked () paspaudus mygtuką. Signalas gali būti „prijungtas“ prie funkcijų tvarkyklės (tokios Qt tvarkyklės vadinamos laiko tarpsniai). Tokiu būdu, jei valdiklis viršija signalą, lizdas automatiškai iškviečiamas. Programos sujungė spustelėjusį () signalą, kaip mygtuką, prie quit() lizdo, QApplication klasės egzemplioriaus. Vikiai SIGNAL() ir SLOT() yra makrosignalai, apie juos papasakosime kitame skyriuje.

Dabar paimkime programą. Spėju, kad jau sukūrėte quit katalogą ir išplatinote quit.cpp failą. Duok komandą qmake Norėdami sukurti projekto failą, o tada staiga - sukurti Makefile:

Qmake -project qmake quit.pro Dabar uždarykite programą naudodami komandą padaryti ir pradėti jogą. Nesvarbu, ar paspausite mygtuką „Quit“, ar klaviatūroje paspauskite „Problema“ mygtuką, programa baigia savo darbą.

Prie puolimo užpakalio parodyta, kaip galima laimėti signalus ir lizdus dviejų valdiklių sinchronizavimui. Tsya programa proponuє koristuvachevі zaprovaditi svіy vіk. Tai galite padaryti naudodami mygtukus, skirtus valdyti lichnik, arba sviedinio pagalba.

Kūdikis 1.4. Amžiaus programa.


Pridėkite tris valdiklius: QSpinBox, QSlider ir QHBox (horizontaliojo išdėstymo sritis). Pagrindinis programos valdiklis yra QHBox. QSpinBox ir QSlider komponentai yra QHBox viduryje ir є atitinkantis , Kaip vėlai.

Kūdikis 1.5. Valdikliai amžiui.


1 #įtraukti 2 #įtraukti 3 #įtraukti 4 #įtraukti 5 int main (int argc, char *argv) 6 ( 7 QApplication programa (argc, argv); 8 QHBox *hbox = naujas QHBox (0); 9 hbox->setCaption ("Įveskite savo amžių"); 10 hbox-> setMargin(6); 11 hbox->setSpacing(6); 12 QSpinBox *spinBox=new QSpinBox(hbox); 13 QSlider *slider=new ); 15 slankiklis->setRange(0, 130); 16 QObject::connect(spinBox, SIGNAL(valueChanged(int)), 17 slankiklis, SLOT(setValue(int))); (valueChanged(int)), 19 spinBox, SLOT(setValue(int))), 20 spinBox->setValue(35); 21 app.setMainWidget(hbox); 22 hbox->show(); 23 grąžinti app.exec( );24) 8–11 eilutės sukuria ir uždaro QHBox. Norėdami įvesti tekstą prie lango pavadinimo, skambinkite setCaption(). Tada mes atkursime tuščią vietą (6 pikseliai) šalia jos tarp tinkamų valdiklių.

12 ir 13 eilutėse sukuriami QSpinBox ir QSlider, o QHBox priskiriamas kaip Vlasnik.

Nenustebina tie, kurie aiškiai nenustatė nei padėties, nei QSpinBox ir QSlider valdiklių išplėtimo, smarvė dailiai pasklido QHBox viduryje. Vlasne for tsgogo i paskyrimų QHBox. Vіn vykonuє automatiškai įdėkite atitinkamus valdiklius, priskirdami jiems išdėstymo ir vietos koordinates, pūdymą vіd ​​їkhnіh galėtų tą vlaštuvan. Qt turi daug klasių, panašių į QHBox, kurios padeda mums atliekant įprastą darbą rankiniu būdu reguliuojant padėtį ir keičiant vaizdinių komponentų dydį.

14 ir 15 eilutėse įrengiami leistini lichniko ir silfono sukeitimai. (Galime drąsiai pripažinti, kad mažai tikėtina, kad mūsų trumpaplaukis vaikinas galėtų aplenkti 130 metų.) Du connect() wiki, 16–19 eilutėse, sinchronizuoja vardo vėliavėlę, tad kodėl smarvė visada turėtų turėti tą pačią reikšmę. Kai pasikeičia vieno iš valdiklių reikšmė, jis siunčia signalą valueChanged(int), kad atitiktų kito valdiklio angą setValue(int).

20-oje eilutėje įdiegta pirminė lichniko vertė (35). Kai jis perduodamas, kintamasis nepaiso signalo valueChanged(int) , remiantis įvesties argumento verte, lygia 35. Šis skaičius perduodamas į QSlider valdiklio setValue(int) lizdą, kuris nustato valdiklio reikšmę. Valdiklis lygus 35. Jei signalo valueChanged(int) jau išsiųstas Kai kurios jo reikšmės labai pasikeitė, tokiu būdu iškviečiant setValue(int) lizdą į QSpinBox valdiklį. Pirmą kartą lichilnikas nesiuntė signalo, jo reikšmės šukės ir taip pat 35. Tokiu būdu išsaugoma rekursinė rekursija. Malyunok 1.6 iliustruoja situaciją.

Kūdikis 1.6. Vienos reikšmės pakeitimas reikalauja pakeisti kitą.


22 QHBox eilėje stenkitės būti matomi (tuo pačiu metu naudodami valdiklius).

Qt sąsajos formavimo metodas yra dar paprasčiau suprantamas ir nepaprastai lankstus. Laukiniu būdu programuotojas pasirenka reikalingus valdiklius, įdėdamas juos į išdėstymo sričių (išdėstymo) vidurį, tarsi iš savo eilutės perimtų valdiklių išdėstymo įrišimus ir valdiklių galią. Paskutiniame etape sukuriami abipusiai valdiklių ryšiai per signalų ir lizdų mechanizmą, tarsi jie įgarsina garsiakalbio sąsajos elgesį.

1.3. Robotas iš pažangios sistemos.

Dovidkov sistema Qt - galbūt svarbiausias bet kurio mažmenininko įrankis. Vaughn aprašo visas šios bibliotekos klasės funkcijas. (Qt 3.2 dokumentacijoje yra daugiau nei 400 klasių ir 6 000 funkcijų aprašymai.) Šioje knygoje yra daug Qt klasių ir funkcijų, tačiau ji toli gražu nėra išsami. Todėl būtina savarankiškai susipažinti su pažangia Qt sistema.

Valdiklių stiliai
Ekrano kopijos, yakі mi bachili, buli otrimani Windows XP. Tačiau dabartinė valdiklių išvaizda keičiasi priklausomai nuo platformos, kurioje programa paleista. Kita vertus, Qt gali imituoti seną bet kokių palaikomųjų platformų išvaizdą.



Šiame straipsnyje aprašomas paprasčiausių priedų kūrimo iš labiausiai paplitusių mano C ++ formų aprašymas. Dar kartą noriu aiškiai pasakyti: tarp Microsoft Visual Studio bus pristatytas "formos" C ++ priedų kūrimas (jį pamatys pagrindinis konkurentas Borland Software). Tai reiškia, kad „Visual Studio“ turi du būdus kurti papildymus su formomis, sprendimas priimamas kuriant naują projektą.

Pirmoji iš jų – Windows Forms, kuri įdiegia grafinę sąsają ir yra suderinama su Microsoft.NET Framework. Šis vadovas leis pasiekti „Microsoft Windows“ sąsajos elementus ir sukurti „Win32“ API paketą branduolio kode. Norint išreikšti savo mintis protingesne forma, daniškas pidkhidas yra dar panašesnis į pokonsolinį priedą, bet šiek tiek labiau sulankstytas. vikoristinė forma.

Kitas būdas remtis „Microsoft Foundation Classes“ (MFC) bibliotekomis yra imtis programos struktūros kūrimo. Visų pirma, MFC išimtas vicorist modelis MVC (Model-View-Cont roller). Danija yra labiau sulankstoma nei pirmoji, tačiau spirale įjungę naująjį, galite lengvai sukurti papildomų priedų, pavyzdžiui, teksto rengyklės, sistemą arba susukti juostelės komponentą ir sukurti meniu, kaip matote MS Office 2010. .

Programos kūrimas MS Visual Studio

Sukurkime naują programą: Failas->Naujas->Projektas. Iš pirmo žvilgsnio turėtumėte išsiaiškinti ir pasirinkti Windows Forms taikomąją programą, suteikti pavadinimą (app1) ir patvirtinti naują projektą bei patvirtinti savo kūrimą paspausdami mygtuką „OK“.

Visų pirma, rozpochat be tarpinio programavimo, šalia suprasti, kas yra būdas. Podiya tse diya, scho vіdbuvaєtsya dainuojantiems protams. Paprasčiausias (ir plačiausias ir), kurį galite naudoti, įkelti, spustelėti... pažvelkime į kai kuriuos iš jų:

  • Aktyvuota – podia, kuri nustato elemento aktyvavimo valandą.
  • Spustelėjimas – kaltas vienu elemento paspaudimu.
  • DoubleClick – spustelėkite elementą.
  • PagalbaRequested – pagalba paspaudus klavišą .
  • Dažai – Vinikatuokite, jei elementas perdažytas.
  • MouseLeave - podіya spratsovuє, jei žymeklis paliekamas tarp elemento.

Nepamirškite, kad galios elementas turėtų būti tokio tipo. Norėdami peržiūrėti visas turimas objekto formas, turėtumėte jį pamatyti ir įgaliojimų lange pasirinkti lizdinės plokštelės piktogramą. Žemiau pateikiamas dalinis Form1 elemento poskyris. Kadangi įkelti paprogramei galima bachiti, pasirinkta funkcija Form1_Load, todėl užfiksavus formą bus paspaudžiamas kodas, kuris yra įdėtas į šią funkciją.

Atidarykite Form1.h failą, ten bus toks kodas:

Privatus: System::Void Form1_Load(Sistema::Objektas^ siuntėjas, Sistema::EventArgs^ e)( )

Tai pati funkcija Form1_Load, nes ji veikia, kai užfiksuojama forma. Pakeiskime dalykus į formą pridėdami TextBox komponentą.

Kam, atidarykite šaltinio formą ir žiūrėkite jogą. Tada pasirinkite įrankių dėžės skydelį ir vilkite TextBox komponentą į formą. Pakeiskite funkciją Form1_Load taip:

Privatus: System::Void Form1_Load(System::Object^ siuntėjas, Sistema::EventArgs^e) (textBox1->Text = "Sveikas, pasauli!"; //textBox1 yra teksto, kurį įtraukėte į laukelį, pavadinimas)

Vykdykite projektą, rezultatuose gali būti rodomas toks pranešimas:

Viskas kol kas, tęskite būsimose pamokose.

Paskutinis atnaujinimas: 2019-05-26

Xamarin.Forms vaizdinė sąsaja susideda iš trijų pusių. Puslapis yra puslapių klasės objektas, jis užima visą ekrano vietą. Tobto tie, kurie yra mobiliojo priedo ekrane, yra ta pati pusė. Programa gali turėti vieną arba kelias puses.

Puslapis paprastai priima vieną iš konteinerio išdėstymų, kuriame yra standartiniai vaizdiniai elementai, tokie kaip mygtukai ir teksto laukai, taip pat kiti išdėstymo elementai.

Apsvarstykite daugelio temų kūrinius, HelloApp projektą (kitaip kuriame naują). Už užrakto visa sąsaja sukuriama App klasėje, kuri yra App.xaml.cs faile ir atspindi srauto programą:

Jogo užrakto kodas:

Sistemos naudojimas; naudojant Xamarin.Forms; naudojant Xamarin.Forms.Xaml; vardų sritis HelloApp ( vieša dalinė klasė Programa: programa ( viešoji programa() ( InitializeComponent(); MainPage = new MainPage(); ) protected override void OnStart() ( // Tvarkyti, kai programa paleidžiama ) Protect override void OnSleep() ( / / Tvarkyti, kai programa miega ) Protected override void OnResume() ( // Tvarkyti, kai programa atnaujinama ) ) )

Programų klasės darbuotojas pradeda konstruktorių, iškviečia metodą InitializeComponent(), kuris atlieka objekto inicijavimą, tada nustato pagrindinio puslapio autoritetą. Naudojant App klasės autoritetą, įdiegiama pagrindinė programos pusė. Šiuo atveju jai priskiriama HelloApp.MainPage klasė, kuri yra ta pati klasė, kuri priskirta failams MainPage.xaml ir MainPage.xaml.cs.

Alecey būdas nėra vienas. Xamarin.Forms leidžia sukurti vaizdinę sąsają, pvz., pagalbos C# kodą, taip pat deklaratyvų būdą, padedantį perkelti xaml, panašų į html, arba jį sujungti.

Sąsajos kūrimas iš C# kodo

Dodamo į HelloApp projektą su C# klase pavadinimu StartPage.

Šioje klasėje reikšminga tokia vieta:

Naudojant Xamarin.Forms; vardų sritis HelloApp ( klasė StartPage: ContentPage ( viešas pradžios puslapis() ( Etiketės antraštė = new Label() ( Tekstas = "Hi, Xamarin Forms" ); this.Content = header; ) ) )

Ši klasė reiškia pusę, kuri patenka į „ContentPage“ klasę. Konstruktorius sukuria etiketę su tekstu, nes jis yra nustatytas kaip pusė (this.Content = antraštė).

Norėdami nurodyti pagrindinį puslapį kaip pradžios puslapį, pakeiskite programos klasę:

Naudojant Xamarin.Forms; vardų sritis HelloApp ( viešoji dalinė klasė Programėlė: programa ( viešoji programa() ( InitializeComponent(); MainPage = new StartPage(); ) protected override void OnStart() ( // Tvarkyti, kai programa paleidžiama ) Protected override void OnSleep() ( / / Tvarkyti, kai programa miega ) Protected override void OnResume() ( // Tvarkyti, kai programa atnaujinama ) ) )

Dabar pagrindinio puslapio galia nukreipta į sumaniai sulankstytą pradžios puslapio pusę.

Tai taip pat reiškia, kad „Visual Studio“ ruošia šabloną, skirtą pridėti naujų klasių kraštų su paprasčiausiu kodu. Taigi, norėdami pridėti naują puslapį, pridedant naują elementą turite pasirinkti turinio puslapio šabloną (C#):

Ši klasė pridedama prie pagrindinio sprendimo projekto (HelloApp atveju).

Pridėkite klasės pusėje kitą kodą:

Sistemos naudojimas; vicorist Sistema.Kolekcijos.Bendra; naudojant System.Linq; vikoristas Sistema.Atspindys.Emit; naudojant System.Text; naudojant Xamarin.Forms; vardų sritis HelloApp ( viešoji klasė 1 puslapis: turinio puslapis ( viešas puslapis 1() ( Turinys = Naujas StackLayout ( Vaikai = ( Nauja etiketė ( Tekstas = " Sveiki puslapis " ) ) ) ) ) )

Ši klasė taip pat skiriasi nuo bazinės klasės „ContentPage“ ir yra praktiškai tokia pati kaip „MainPage“ klasės kūriniai.

O programos klasėje šią pusę taip pat galite nustatyti kaip pradinę:

Naudojant Xamarin.Forms; vardų sritis HelloApp ( vieša dalinė klasė Programa: programa ( viešoji programa() ( InitializeComponent(); MainPage = new Page1(); ) //........... ) )

5

Sukūriau daug skirtingų Nintendo DS GUI sistemos versijų, pvz., mygtukų, teksto laukų ir proporcijų, bet man taip pat reikėjo būdo, kaip šias klases prijungti prie vienos Gui klasės, kad galėčiau akimirksniu nupiešti viską ekrane iš karto, o vieną kartą apverčiau visus mygtukus, taigi perevіriti, chi paspaudė be-kaip mygtukus. Mano maistas yra geriausias būdas suskirstyti visas klases (pavyzdžiui, mygtukus ir teksto laukus) į vieną GUI klasę?

Ašis yra vienakryptė, kaip ir maniau, bet nežinau tinkamo:

Redaguoti: Esu pergalingas C++.

Class Gui (vieša: void update_all(); void draw_all() const; int add_button(Button *button); // Grąžina mygtuko ID void remove_button(int mygtuko_id); private: Button *mygtukai; int mygtukų skaičius; )

Dėl šio kodo gali kilti tam tikrų problemų, bet aš tik noriu pranešti apie tas, kurių noriu.

  • 5 žingsniai
  • Rūšiavimas:

    Veikla

2

Turinys panašesnis į tuos, kuriuos renkuosi publikuoti, tik manasis atpažįstamas už Sony PSP programavimą.

Jau kelias valandas naršiau, konsultavau kai kurias knygas ir VTM, ką daryti ir ko negalima dėl paprastų UI sistemų idėjos.

Klasė uiElement() ( ... virtualus void Update() = 0; virtualus void Draw() = 0; ... ) klasė uiButton() public: uiElement ( ... virtualus void Update(); virtualus void Draw() ... (); void Draw(); void AddElement(uiElement *Element); void RemoveElement(uiElement *Element); std::list elementai; ... ) void uiWindow::Update() ( ... for (list ::iteratorius it = Elements.begin(); tai! = Elements.end(); it++) it->Atnaujinti(); ... ) void uiWindow::Draw() ( ... for (sąrašas ::iteratorius it = Elements.begin(); tai! = Elements.end(); it++) it->Draw(); ... )

principas - lango sukūrimas ir branduolio sąsajos elementų pritraukimas prie naujo, bei mažųjų iškvietimas ir svarbiausių pagrindinių funkcijų metodų atnaujinimas.

Vis dar neturiu ką veikti, nes turiu problemų su dažymo kodu. Naudodamas skirtingas PC ir PSP API, peržiūriu OpenGL ir psp gu įvyniojimo kodą.

Tikiuosi padėti.

0

Viena pagrindinė strategija, kaip priminimas, galbūt sudėtinis modelis. Esant žemam lygiui, galime leisti lengviau apdoroti visus GUI objektus (tą objektų rinkinį) juos sukūrus. Bet aš nežinau, ką bendro turi GUI grafinės sąsajos dizainas, tik tai yra vieta, kur reikia žinoti teisingą kryptį, projekto šaltinio kodą. „WxWidgets“ yra kelių platformų grafinė sąsaja su prieinamu išėjimo kodu. Sėkmės įgyvendinant projektą!

0

3

Kad būtų tylu, hto zatsіkavleniya, axis my z vіdkritim vіhіdnym kodas, BSD licencijuotas GUI įrankių rinkinys, skirtas DS:

Gerai pranešti apie temą2k, bet aš rimtai rekomenduočiau motininį kodą atkeršyti už vaikų sąsajos elementus uiElement bazinėje klasėje. Tse srazok, kuriam siuvau pas Vupsi.

Yakscho wi ne Atnaujinkite kodą į bazinę klasę dėl rimtų problemų, kai bandote įdiegti sulankstymą, nuleiskite teksto laukelį ir mygtuką. Pavyzdžiui:

  • Lentelinės plokštės gali būti modeliuojamos kaip mygtukų krūva, sugrupuota į vieną koristuvos sąsajos elementą, o tai užtikrina abipusį viniatkovistinį pasirinkimą;
  • Radijo stočių grupės (su valanda);
  • Smogi slinkimas gali būti pateiktas kaip slankiklis/vamzdis ir mygtukai aukštyn/žemyn;
  • Slenkamieji sąrašai gali būti pateikti konteinerio rodinyje, o lipdukų elementai – „coristuvach“ sąsajoje.

Be to, atminties saugykla, DS gali turėti 66 MHz dažnio procesorių ir 4 MB operatyviosios atminties, kuri gali būti naudojama ir jūsų programai išsaugoti, ir parsisiųsti (DS diskai įkeliami į RAM prieš juos paleidžiant). Tikrai esate kaltas, jei žiūrite, kaip sistema buvo sukurta, o tai reiškia, kad STL neveikia. Atsisiunčiau STL iš Woopsi ir išsaugojau 0,5 MB priartinimą. Ne toks turtingas už grindų standartus, bet vis tiek 1/8 labiausiai prieinamos DS atminties, spozhivaya STL-smіttya.

Apie visą koristuvach sąsajos rašymo procesą pranešiau savo tinklaraštyje:

Jame yra aprašyti du algoritmai, kuriuos sugalvojau perdažyti ekraną, o tai yra sudėtinga grafinės sąsajos kūrimo dalis (vienas yra tik stačiakampių padalijimas į kalną ir matomų sričių prisiminimas, o kitas yra BSP vicorist medis, kuris yra efektyvesnis ir paprastesnis suprasti), toscho d.

Windows 7