- 1. Как да инсталирате Gambas3
- 2. Създайте проект Gambas с DB и докладвайте
- 3. Изпълнение на програмата Gambas
- 4. Дизайн на формуляра за въвеждане на студенти
- 5. Започнахме да кодираме Gambas
- 6. Преглед на съхранените данни
- 7. Създайте формуляр за въвеждане на данни за ученици
- 8. Конфигурирайте търсене на данни
- 9. Програмираме бутона за затваряне
Gambas е среда за разработка, която се разпространява под лиценза GNU GPLС това можем да кажем, че това не е само език за програмиране, извлечен от основния език, но също така е много полезен инструмент при изграждането на визуални приложения за почти всяка GNU / Linux дистрибуция.
В Gambas програмистът има възможността да проектира прозорци графично, да плъзга обекти от кутията с инструменти и след това да пише кода в основата за всеки обект.
Както видяхме по -рано, Gambas се основава на основен интерпретатор с разширения на обекти, подобно на Visual Basic. Но предимството, което имаме с Gambas, е, че можете бързо да проектирате графичното си приложение с QT или GTK +, да получите достъп до MySQL, PostgreSQL, Firebird, ODBC и SQLite бази данни, да управлявате приложения с DBUS, да изграждате Front End на Linux команди, да правите 3D OpenGL приложения , правят CGI уеб приложения, генерират инсталационни пакети за различни дистрибуции, наред с други.
Поради тази причина можем да кажем, че в Gambas това не е копие или клониране на Visual Basic, тъй като въпреки че се основава на basic, това е алтернатива за създаване на програми и приложения за GNU среди. Ако погледнем историята на скаридите, ще открием, че първата версия на скаридите е пусната през 1999 г. от французина Беноа Минизини, създавайки среда, която би ни позволила лесно да програмираме и разработваме приложения с графичен потребителски интерфейс.
Първоначално програмната форма в Gambas беше подобна на тази на Gimp, с няколко прозореца и ориентирана към използването на Qt и KDE. Когато направи скок към 2.x версии през 2008 г., той включваше пълен редизайн на графичния интерфейс за програмиране, интегрирайки всичко в един прозорец и позволявайки използването на GTK +. През 2011 г. скочи до версия 3.x.
Нека започнем с Инсталация на Gambas3.
1. Как да инсталирате Gambas3
Простотата на Gambas го прави лесен за използване, така че не е необходимо да познавате език за програмиране. Просто трябва да имате безплатно ръководство и да отделите известно време за него. Поради тази причина той е идеален за учене, ако тепърва започвате. Е, нека научим как да го инсталираме на нашата операционна система Linux:
Първо, трябва да отворим командния терминал и да въведем тези команди една по една:
sudo add-apt-repository ppa: gambas-team / gambas-daily sudo apt-get update sudo apt-get install gambas3Команди за инсталиране на Gambas
С този команден ред можем да получим най -новата издадена версия на Gambas. В момента те се насочват към 3.8.1, въпреки че препоръчвам да имаме най -стабилната версия, която можем да получим с помощта на тези други команди, но трябва да имаме предвид, че никога не можем да добавим двата PPA едновременно, можем да имаме само един от двете, това е така, защото бихме могли да причиним грешка и ще трябва да започнем отначало да почистваме предишните инсталации.
2. Създайте проект Gambas с DB и докладвайте
Първото нещо, което трябва да направим, е да проектираме базата данни, от която се нуждаем, за да съхраняваме нашата информация. Тази, която предлагам, ще се нарича "студенти" и ще има две таблици (студенти и предмети).
Студентска таблица: ИД, ИД, имена, фамилии, адрес, телефон и имейл. Таблица за теми: id, subject_nameЗа да направим това, използваме много прост мениджър за проектиране на бази данни, наречен SQLite браузър за данни, ние го отваряме и създаваме базата данни, като кликваме върху новия бутон. Ние намираме къде ще го запишем и създаваме таблиците според предишния дизайн.
Веднъж създаден, той ще изглежда така:
Ще оставим полето ID като първичен ключ и в двете таблици. Преди да затворим мини-мениджъра, добавяме към него някои данни, за да проверим работата му, когато проектираме формулярите в програмата. Сега, ако можем да кликнете върху бутона за запазване и да затворите мини мениджър на браузър на данни.
3. Изпълнение на програмата Gambas
Отваряме Gambas и създаваме нов проект, давайки му името и съответния път:
Увеличете
За по -голямо удобство, поставяме базата данни, създадена в папката, създадена за проекта, в този случай папката, наречена GestionEstudiantes, така че ще бъде лесно, когато локализира пътя си в програмата.
„Конфигурираме бутона за изход. Public Sub btnCerrar_Click () Изход КрайСъздадохме две нови формуляри, за постъпване на студенти и за предмети.
Сега конфигурираме бутона за въвеждане на ученици:
Public Sub btnNuevoEstudiante_Click () FMain.Hide FormEstudiantes.Show EndСъщо така конфигурираме бутона за добавяне на тема:
Public Sub btnNuevaAsignatura_Click () FMain.Hide FormCourses.Show EndТака че ще го назначим.
4. Дизайн на формуляра за въвеждане на студенти
За начало поставяме а columnview и два бутона, към които ще поставим новия текст и съответно изход (Свойство на текста).
Можем, ако желаем, да добавим икона към всеки бутон чрез свойството на картината. Към columnview ще го наречем просто "маса" (В името на имота) той е много подобен на всяка таблица и се опитваме да направим този първи проект за база данни възможно най -прост.
Ще извикаме бутоните: btnnew Y излез.
Формулярът ще изглежда така:
Конфигурираме бутона за затваряне на формуляра.
Public Sub btnExit_Click () Me. Затвори КрайСега преминаваме към кодирането.
5. Започнахме да кодираме Gambas
Ще започнем да поставяме някакъв код в нашата програма и ще го коментираме. Първото нещо в базата данни е връзката с нея. За тази цел Gambas ни предоставя Обект на връзка.
Всичко, което се появява с един -единствен апостроф в кода, е коментар, който няма да бъде интерпретиран от програмата.
Пример:
Променлива 'Project Test Private hconn As Connection' за установяване на връзката Private Function ConnectBase () Като булева 'променлива за връзката, връща вярна или невярна стойност Ако hconn Null След това връщане на False' проверяваме дали връзката не е отворена hconn = New Връзка „Инициализираме връзката с новия метод и след това й предаваме параметрите с параметър hconn“ за пътя към базата данни hconn.Host = " / home / test" hconn.Name = "students" 'име на базата данни hconn.Type = " sqlite3 "'тип база данни Опитайте hconn.Open ()' ние се опитваме да отворим връзката, ако не успеем, изпращаме съобщение за грешка и му даваме стойността null Ако грешка Тогава hconn = Null Message.Error (" Неуспешно свързване с базата данни ") Return True Endif Return False EndСлед като сте копирали горния код, щракнете върху опцията Run от менюто Debug. Ако всичко върви добре, не трябва да се появява грешка и екранът на нашия проект ще се появи отново. Което означава, че връзката с нашата база данни е осъществена задоволително.
В случай на грешка, ето възможни причини:
Причини за грешкаНека разгледаме видовете причини:
1. Когато копирате и поставяте кода, трябва да вземете предвид кавичките, които често се променят при копиране и поставяне и поради това не се разпознават от приложението. В този случай е препоръчително да изтриете кавичките и да ги поставите ръчно. Кодът вътре в кавичките трябва да е във фуксия, за да се знае, че е правилен.
2. Друга възможна грешка е, че не сте маркирали съответните опции в раздела Свойства на проекта, които можете да намерите, като щракнете върху менюто Проект, след това Свойства и там в раздела Компоненти проверете дали са маркирани следните опции:
- bg
- gb.db
- gb.db.sqlite3
- gb.form
- gb.db.mysql (Това не трябва да е необходимо за базата данни, която правим, но така или иначе я маркираме)
3. Друга много често срещана грешка е пътят, където имаме както проекта, така и базата данни, където маркираните редове са в кода, който трябва да се копира и постави.
След като коригираме възможните грешки и проверяваме дали приложението ни работи, продължаваме да затваряме връзката, като поставяме следния код в края.
PUBLIC SUB затваряне на връзката () IF hconn = NULL THEN RETURN hconn.Close () hconn = NULL ENDПърво виждаме, че вече не е затворен, ако не, го затваряме .близо
6. Преглед на съхранените данни
Отваряме формата и в рамките на Процес на формуляр и въвеждаме следния код:
(Не забравяйте да проверите кавичките, които при поставяне на кода биха могли да бъдат променени).
Публичен под Form_Open () 'първо декларираме променливите и изчистваме dimview hresul като резултат Резултат Dim ключ като String Dim филтър Като низова таблица Изчистване Ако ConnectBase () След това връщане' ние потвърждаваме връзка с базата данни 'ние дефинираме свойствата за columnview текст "брой за брой колони" за заглавието на ширините за ширината за подравняване на колоните за подравняване на полетата. table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = Таблица "Имена". Колони [1]. Подравняване = Подравняване. Центърна таблица. Колони [1]. Ширина = 120 таблица. Колони [2] .Text = "Фамилия" таблица. Колони [2]. Подравняване = Подравняване. Центърна таблица .Колони [2]. Ширина = 120 таблица. Колони [3] .Text = Таблица "Адрес". Колони [3]. Подравняване = Подравняване. Таблица в центъра. Колони [3]. Ширина = 120 таблица. Колони [4]. Текст = Таблица "Телефон". Колони [4]. Подравняване = Подравняване. Центърна таблица. Колони [4]. Ширина = 120 таблица. Колони [5] .Text = "Пощенска" таблица. Колони [5]. Подравняване = Подравняване. Централна таблица.Колони [5]. Ширина = 120 hresul = hconn.Exec ("изберете * от ученици") 'Тази инструкция търси в базата данни, ако намери данни, прави променливата hresul вярна и следователно налична (Налично) Направете Докато hresul .Available 'след това ще премине през таблицата с цикъл do while въз основа на ключа (Cedula) и ще запълни таблицата с данните. key = hresul ["ID"] 'правим полето ID като основно за търсене в таблица. Добавяне (парола, парола)' добавяме данните, намерени в базата данни. таблица [ключ] [1] = hresul ["имена"] таблица [ключ] [2] = hresul ["фамилия"] таблица [ключ] [3] = hresul ["адрес"] таблица [ключ] [4] = hresul ["телефон"] таблица [ключ] [5] = hresul ["поща"] hresul.MoveNext () 'тази инструкция напредва търсенето към следващия цикъл от данни' Повторно изпълнява инструкциите вътре в цикъла, докато няма повече данни за показване. CloseConnection () 'затваря връзката EndПроцес на формуляр
В края го стартираме и проверяваме работата му, което ще върне следния резултат:
Увеличете
7. Създайте формуляр за въвеждане на данни за ученици
Сега ще създадем нов формуляр, който ни позволява да въвеждаме данни за нови ученици, предложеното име за него е edata.
Той ще има следните обекти: 6 етикета с етикети, 6 текстови полета и два бутона.
Предложеното оформление е както следва:
За да видим дали всичко върви добре, отиваме във формуляра, който показва списъка с ученици и конфигурираме новия бутон, както следва:
Увеличете
Ако няма грешки и всичко върви добре, нека да продължим да конфигурираме новосъздадения формуляр за въвеждане на нови ученически данни. Този формуляр ще получи препратка към обект от тип Връзка, в нашия случай hconn затова го поставяме в началото на нашата форма.
„Файл клас Gambas“ първо конфигурираме връзката Private hconn As Connection ”създаваме метод runnew, който ще бъде извикан от формуляра, който изброява студентите Public Sub runnew (data As Connection) hconn = data“ справка за предишния формуляр Me. ShowModal () 'принуждава да взаимодейства с формуляра, преди да го затвори Край Ние конфигурираме бутона за отмяна: Public Sub btnCancelar_Click () Me.Close (0) End За да въведем нови данни, ще използваме следната инструкция: ОПИТАЙТЕ hconn.EXEC („ вмъкване в mytable стойности (& 1, & 2, & 3, & 4, & 5. & 6) ”, txtid, txtname, txlastname, txtphone, txtmobile, txtcumple) exec Полетата ще бъдат извикани от амперсанд и съответния индекс, както е показано по -долу. (& 1, & 2, & 3, & 4, & 5. & 6)Нека се върнем към предишната форма и конфигурираме бутона за приемане, както следва:
Увеличете
Първо се опитваме да се свържем с нашата база данни, ако не успеем, напускаме. След като връзката беше постигната, ние се обадихме runnewde fdata метод. Тъй като тази форма се показва в модална форма, този код ни чака да въведем данни във fdata или просто я затваряме.
След това затваря връзката и извиква метода form_open, който презарежда данните, за да покаже направените промени. Сега ще видим как да променим запис, например ако приятел смени мобилния телефон, просто редактирайте това поле.
Ще се възползваме от активиращото събитие на нашия контрол colunmview (таблица) за да добавите тази функционалност. Това събитие се задейства чрез двойно щракване върху която и да е колона в таблицата.
Public Sub table_Activate () Dim hresul As Result If table.Current = Null След това връщане If ConnectBase () Тогава връщане hresul = hconn.Edit ("студенти", "ID = & 1", table.Current.Key) edata.runedit ( hresul) 'Извикайте метода runeedit на таблицата с формуляри edata.Current [0] = hresul ["ID"] table.Current [1] = hresul ["first names"] table.Current [2] = hresul ["фамилии "] таблица. Current [3] = hresul [" address "] table.Current [4] = hresul [" phone "] таблица. Current [5] = hresul [" mail "] closeConnection () КрайАктивирайте събитието
Удебеленият ред е този, който извиква edata runedit метод. Тъй като все още не сме създали този метод, ако се опитаме да го стартираме сега, той няма да работи.
Затова нека се върнем към възраст и нека поставим следните променливи в началото на формуляра, така че да са достъпни от целия формуляр.
Частен hconn като връзка частен hresul като резултат частно редактиране като булевТогава нека създадем новия метод, наречен runedit:
Public Sub runedit (данни като резултат) hresul = редактиране на данни = True txtCedula.Text = hresul ["ID"] txtName.Text = hresul ["firstname"] txtName.Text = hresul ["last name"] txtAddress.Text = hresul ["адрес"] txtTelephone.Text = hresul ["телефон"] txtEmail.Text = hresul ["поща"] Me.ShowModal EndТова ни показва edata с данните на избрания запис, за да можем да го редактираме и поставя редактирането на променливата със стойността true. Това е необходимо, за да се използва условен израз при щракване бтна приемам Правете разлика между нови и модифицирайте.
Можем да го тестваме, въпреки че все още няма да работи, все още липсва задайте бутона за приемане, но можем да проверим дали ни отвежда до исканата форма.
Нека конфигурираме бутона за приемане, за да запази промените:
Public Sub btnAccept_Click () Ако редактирате След това опитайте hresul ["cedula"] = txtCedula.Text Опитайте hresul ["names"] = txtNames.Text Опитайте hresul ["фамилии"] = txtSurname.Text Опитайте hresul ["address"] = txtAddress .Text Опитайте hresul ["phone"] = txtTelephone.Text Опитайте hresul ["mail"] = txtEmail.Text Опитайте hresul.Update Else Опитайте hconn.Exec ("вмъкнете в стойностите на учениците (& 1, & 2, & 3 , & 4, & 5, & 6) ", txtCedula.Text, txtName.Text, txtSurname.Text, txtAddress.Text, txtTelephone.Text, txtEmail.Text) 'с това въвеждаме изпратената информация Endif Me.Close () Catch Message.Error ("Невъзможно е да се въведат изпратените данни") КрайВече можем да запазим промените.
8. Конфигурирайте търсене на данни
Нека добавим бутон за търсене и текстово поле към формуляра. Това е новият облик на формуляра:
Увеличете
Конфигурираме бутона за търсене по подобен начин на новия бутон, това е кодът:
Public Sub btnBuscar_Click () Dim hresul As Result Dim key As String Dim filter As String table.Clear If ConnectBase () Тогава връща table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0 ] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = "Tables" Tables.Columns [1] .Alignment = Align.Center table.Columns [1] .Width = 120 таблица. Колони [2] .Text = "Фамилия" Колони [3]. Подравняване = Подравняване.Централна таблица. Колони [3]. Ширина = 120 таблица. Колони [4] .Text = Таблица "Телефон". Колони [4]. Подравняване = Подравняване. Центърна таблица. Колони [4] . Width = 120 table.Columns [5] .Text = "Mail" table.Columns [5] .Alignment = Align.Center table. Columns [5] .Width = 120 filter = txtBuscar.Text hresul = hconn.Exec (" изберете * от ученици, където имена като '"& филтър &"' ") Do While hresul.Available key = hresul [" ID "] table.Add (key, key) table [key] [1] = hresul [" name res "] таблица [парола] [2] = hresul [" фамилия "] таблица [парола] [3] = hresul [" адрес "] таблица [парола] [4] = hresul [" телефон "] таблица [парола] [ 5] = hresul ["поща"] hresul.MoveNext () Loop closeConexion () EndС това, което сме направили, вече можем да сме наясно с процеса, сега ще направим същото с формата за предметите. The предложено оформление е следното:
Както винаги, първото нещо, което ще програмираме, е бутонът за изход:
Public Sub btnExit_Click () Me. Затвори КрайСега ще направим връзката с базата данни:
Частен hconn Като връзка Частна функция connectbase () Като булева стойност Ако hconn Null След това върнете False hconn = Нова връзка hconn.Host = " / home / test" hconn.Name = "студенти" име на база данни hconn.Type = "sqlite3" 'база данни въведете Опитайте hconn.Open () Ако грешка Тогава hconn = Null Message.Error ("Грешка при свързване на база данни") Връщане на истински Endif Връщане на фалшив крайПланираме събитието, за да затворим връзката:
Public Sub closeConexion () Ако hconn = Null След това върнете hconn.Close () hconn = Null EndСега визуализираме данните в columnview, в отвореното събитие на формуляра.
Кодът е следният:
Public Sub Form_Open () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () then Return table2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Име на предмета или курса" hresul = hconn.Exec ("изберете * от теми") Do While hresul.Available key = hresul ["id"] table2.Add (key, key) table2 [key] [1] = hresul ["matter_name"] hresul.MoveNext () Loop closeConnection () EndСега създаваме формуляра за добавяне и / или редактиране на данните от таблицата, предметите или курсовете. Предложеното име е адата. (субекти на данни).
9. Програмираме бутона за затваряне
Public Sub btnCerrar_Click () Me. Затвори КрайНие създаваме препратка към обект от тип връзка, в нашия случай hconn, затова в началото на нашата адата форма ще поставим следния код:
Частен hconn като връзкаОсвен това създаваме метода runnew, който ще бъде извикан от основната форма. Синтаксисът е следният:
Public Sub runnew (данни като връзка) hconn = данни Me.ShowModal () КрайСега отиваме във формуляра за въвеждане на данните на субектите и в btnnuevo click event поставяме следния код:
Public Sub btnNuevo_Click () If connectbase () Тогава връщане adata.runnew (hconn) closeConexion () Form_Open () EndСега можем опитайте нов бутон от посочената форма.
Продължавайки със същия формуляр, ние кодираме метода за промяна на записите, както следва. Ще се възползваме от нашето активиращо събитие контрол на colunmview (таблица) за да добавите тази функционалност. Това събитие се задейства чрез двойно щракване върху която и да е колона в таблицата.
Public Sub table2_Activate () Dim hresul Като резултат If table2.Current = Null Тогава Return Ако connectbase () След това Връщане hresul = hconn.Edit ("subjects", "id = & 1", table2.Current.Key) adata.runedit ( hresul) table2.Current [0] = hresul ["id"] table2.Current [1] = hresul ["name_name"] closeConnection () КрайНе забравяйте, че няма да работи, докато не създадем това събитие във формата adata. Затова нека се върнем към fdata и нека поставим следните променливи в началото на формуляра, така че да са достъпни от целия формуляр.
ЧАСТЕН hconn AS Връзка ЧАСТЕН hresul AS Резултат ЧАСТНО редактиране AS БулевоСъздаваме метода runedit, чийто код е следният:
Public Sub runedit (данни като резултат) hresul = редактиране на данни = True txtAsignaturas.Text = hresul ["subject_name"] Me.ShowModal EndНе забравяйте да тествате, за да проверите дали всичко върви добре. Сега програмираме бутона за приемане както следва:
Публичен под btnAceptar_Click () Ако редактирате След това опитайте hresul ["subject_name"] = txtAsignaturas.Text Опитайте hresul.Update Друго Опитайте hconn.Exec ("вмъкнете в стойности на име_на тема (& 1)", txtAsignaturas.Text) Endif Me.Close () Catch Message.Error ("Не може да се въведат изпратени данни") КрайСега програмираме рутината за търсене на тема:
Public Sub btnBuscar_Click () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () then Return table2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align. ") Do While hresul.Available key = hresul [" id "] table2.Add (key, key) table2 [key] [1] = hresul [" matter_name "] hresul.MoveNext () Loop closeConexion () EndЩе го приготвим.
Заключения относно скаридите
За хора, които са направили приложение във Visual Basic и се интересуват от програмиране, това е един от инструментите, които несъмнено ще ви заинтересуват и е ясен вариант, който трябва да имате предвид.
Благодарение на тестовете, които можем да видим в този урок, можем да видим, че е лесно да се работи и наистина не отнема много време, за да се направи друго просто приложение за Linux.
Както виждаме, автодовършването, което има скариди, е ограничено до обекта, с който работите, а не както в случая с Geany, който може да ви постави всичко. Трябва да му дадем точки, тъй като работи като Java и Netbeans и без допълнителни усложнения.
Така че за тези, които искат да се научат да програмират прости приложения в Linux и са любопитни, препоръчваме ви да опитате Gambas3.