Форум программистов, компьютерный форум CyberForum.ru

Basic для платформы Android - Basic4Android - Basic4Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Basic Найти с заданной точностью корни уравнения http://www.cyberforum.ru/basic4android/thread1146225.html
Вчера пол дня провела в интернете изучая бессик,ни кто не поверит ,но ничего не поняла ,особенно господа программисты)я восхищаюсь их способностями и очень огорчена ,что мне этого не дано,помогите пожалуйста .Из 4 заданных заданий смогла кое как сделать первое и то преподаватель помог .печатаю одно из заданий -Найти с заданной точностью корни уравнения соs2/X-sin1/X=1/X=0 в интервале изменения...
Basic Ищу информацию по MobileBASIC Есть что-нибудь по mobilebasic? http://www.cyberforum.ru/basic4android/thread1144060.html
Basic Найти ошибку в программе
подскажите где ошибка: друг попросил написать прогу на бейсике в универ, хз как там с синтаксисом READ STUDENTS TOTAL=0 FOR I=1 TO STUDENTS STEP 1 READ STEPENDIYA TOTAL=TOTAL+STEPENDIYA NEXT І MID=TOTAL/STUDENTS
Программирование вычислений по простейшим формулам Basic
Определить длину вектора и угол между ним и координатными осями при заданных координатных концах вектора. Помогите написать программу пожалуйста!
Basic Выбор бесплатного компилятора Basic http://www.cyberforum.ru/basic4android/thread1131601.html
Всем добрый день! В институте я изучал старенькие VB и QBasic, и сегодня хотел бы применить знание бейсика в деле, получая за это денежку. Подскажите, пожалуйста, бесплатный компилятор языка, идущий в ногу с современностью. Именно компилятор, так как моя работа ближе к разработке отдельных мини-программ, нежели к написанию макросов или .net-приложений. С уважением, Сергей aka Shull
Basic Программа для определения количества цифр для нумерации квартир Программа спрашивает у пользователя, сколько квартир нужно пронумеровать. Результат работы : вывод на экран информации о том, сколько потребуется цифр 0,1,2...9 Нужна консолька :) подробнее

Показать сообщение отдельно
Pro_grammer
Модератор
 Аватар для Pro_grammer
5828 / 1988 / 379
Регистрация: 24.04.2011
Сообщений: 3,377
Записей в блоге: 9
24.04.2014, 19:34  [ТС]     Basic для платформы Android - Basic4Android
Дополним нашу программу возможностью сохранять текст в файл, загружать ранее сохранённый текст и удалять текстовые файлы.
Для работы нам понадобится библиотека Dialogs. Она содержит набор стандартных диалогов в котором есть выбор файлов. В основном окне проекта справа есть вкладка, где по умолчанию показаны все модули и процедуры нашего проекта. Правая нижняя вкладка называется Libs. Открываем её, вам представится полный список доступных библиотек и ода из них, а именно Core уже отмечена галочкой. Найдите в списке Dialogs и отметьте галочкой. Если такой библиотеки нет, то см. http://www.cyberforum.ru/basic/threa...ml#post6062619, я там подсказал, как искать.

Далее объявляем все нужные переменные в Globals. Переменные будут доступны из всех процедур нашей Активности (Аctivity)
Для доступности переменных из всех модулей ( если будут таковые), их надо объявлять в процедуре Process_Globals



Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
    Dim EditText1 As EditText
    Dim fd As FileDialog
    fd.FastScroll = True
    fd.KeyboardPopUp = False
    fd.FilePath = File.DirRootExternal 'Корневая папка SD карты
    fd.FileFilter = ".txt" ' Фильтр, несколько типов через запятую ".jpg,.png" 
End Sub
Внимательно смотрите на код, если нет красных символов, то значит всё сделали правильно.
DirRootExternal - Корневая папка SD карты, доступна как для чтения, так и для записи любым приложениям.
DirAssets - Собственная папка программы, внутри .apk архива. Доступна только для чтения и только вашей программой. В неё мы поместили иконки при работе с дизайнером ( помните - папка Files?).

В виду того, что наша программа будет работать с картой памяти необходимо проверить при запуске её доступность. По аналогии с VB6, где есть процедура Form_Load() здесь есть процедура Activity_Create(FirstTime As Boolean)
В неё и вставим код проверки
Visual Basic
1
2
3
4
If File.ExternalWritable = False Then
        Msgbox("Нет доступа к записи на карту памяти.", "MyNotepad") ' Упс! надо выходить из программы
    Activity.Finish      'Прекращаем работу программы 
End If
Внимание! Проверте в вашем эмулятре, есть ли поддержка SD карты? Иначе программа не запустится!

Тут же добавляем в программу пункты меню
Visual Basic
1
2
3
4
   Activity.AddMenuItem3("Загрузить файл","mnuOpen",LoadBitmap(File.DirAssets,"1398157499_folder-open.png"),True) ' Adds menu 
    Activity.AddMenuItem3("Сохранить файл","mnuSave",LoadBitmap(File.DirAssets,"1398157588_save.png"),True) ' Adds menu 
    Activity.AddMenuItem3("Удалить файл ","mnuDel",LoadBitmap(File.DirAssets,"1398157685_file_delete.png"),True) ' Adds menu 
    Activity.AddMenuItem3("Новый/Очистить текст ","mnuNew",LoadBitmap(File.DirAssets,"1398157679_file_add.png"),True) ' Adds menu
Уже можно запустить код на выполнение и проверить, как отображается меню в эмуляторе.

Basic для платформы Android - Basic4Android

У вас может быть совсем по-другому, в зависимости от версии Андроид и размеров. Если меню не умещается целиком, возможно отображение только части рисунков, а остальное в виде текста.

Далее дописываем процедуры, которые обрабатывают действия, при выборе пунктов Меню
Visual Basic
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Sub SaveStringExample
    Dim EText As String
    DateTime.DateFormat = "ddMMyyHHmmss"
    now = DateTime.now
    dt = DateTime.Date(now) ' файл вида 210414200150
 
    EText = EditText1.Text
         File.WriteString(File.DirRootExternal, dt & "_MyN.txt",EText)
      ToastMessageShow("Сохранён файл - " & dt & "_MyN.txt", False)
End Sub
Sub ReadStringExample
    Dim EText As String
    ret = fd.Show("Посмотреть заметку", "Отменить", "Нет", "Да", Null)  
    If ret = -2 Then
 
      EText = File.ReadString(File.DirRootExternal,fd.ChosenName)
      EditText1.Text = EText
    Else
    ToastMessageShow("Загрузка " & fd.ChosenName & " отменена!", False) 
    End If
    
    
End Sub
 
Sub mnuOpen_Click
   ReadStringExample
End Sub
 
Sub mnuSave_Click
   SaveStringExample
End Sub
Sub mnuNew_Click
  EditText1.Text =""
End Sub
 
 
Sub mnuDel_Click
    
    ret = fd.Show( "Удалить файл", "Отменить", "Нет","Да", Null)    
    If ret = -2 Then
             If  File.Delete(File.DirRootExternal,fd.ChosenName) Then 
                   ToastMessageShow("Удаление" & fd.ChosenName & " успешно!", False)    
             End If
     
    Else
    ToastMessageShow( "Удаление" & fd.ChosenName & " отменено!", False) 
    End If
End Sub
Код процедур простой, кто пишет программы на Basic тому разобраться не сложно. Поясню принцип сохранения файла. Процедура SaveStringExample
Генерирует имя файла из текущей даты и времени вида 210414200150_MyN.txt _MyN это как визитная карточка нашей программы. Преимущество этого подхода в быстром сохранении файла – нет надобности набирать имя файла в ручную.

Примечание! Переменные now,dt,ret в коде светятся «красным». Формально это ошибка, мы их не задекларировали при помощи DIM. Но т.к. мы сразу после использования им присвоили значения, то они ошибку при компиляции не вызывают и так делать допустимо.

Для настройки различных параметров работы и совместимости в виде планшета и телефона есть на основной вкладке Дизайнера форм кнопка Add Variant. Добавляем 480х320, т.е планшетный вариант и растягиваем EditText1 на всю ширину экрана.

Вот и весь код. Можно компилировать, собирать в режиме Релиз и пользоваться.
Готовый код не даю, пусть будет стимул вам для самостоятельного повторения.


Ну вот, Блокнот написали. теперь очередь за Paint. Ждите, в следующем уроке будем делать подобие Виндовской Рисовалки.
 
Текущее время: 09:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru