forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Помогите начинаешему ЯВеру! (http://forum.boolean.name/showthread.php?t=3789)

BASSON XVI 30.06.2007 17:05

Помогите начинаешему ЯВеру!
 
Здрасе я очень плохо знаю паскаль да и вообще языки программирования!
Вот появилась идея написания простенького мидлета так сказать TXT EDITOR-a
Почитал справку от МидлетПаскаля немного не понял да там и всего толком не написано!
Вообщем решился написать вот 2 часа бездарной работы и я заглох на этом !!!

ВОТ КОД В ФОРМАТЕ TXT ВСТАВЛЯЕМ ЕГО В ПАСКАЛЬ И ПРОВЕРЯЕМ!!!

Скомпилировать не получилось оно и понятно написано не бох весть что!(да еще и в первы раз, так сказать первы блин комом!) Выдола 2 ошибки и 9 игноров! Что делать Помогите Плиз!!!
Везде писал коды клавиш такие CM_EXIT и так далее потому что не знаю как назначить на софт клавиши для Моторолы функции! Так же не знаю как сделать что бы из мидлета выходило и сохраняло файл под своим названием где по желаешь!
Можете подсказать как органезовать на правую софт клавишу удаление одной буквы ну типа BacSpace! Так же как организовать открытие файла txt! Так же не знаю как сделать что бы менялся текст то есть итап обычный рус., англ. у меня картинки их есть так что мне надо только код для этого!

Вот что требовалось от мидлета!
Зайти =>пописать(выйти без сохр. по надобности! )=>Сохранить =>Выйти!
Зайти =>Открыть сохр txt =>Пописать по редактировать =>Сохранить =>Выйти!

Не предлагать мне приложение Microsoft Word оно у меня не идет да и не нравиться оно мне! Хотя принципе сделано на высшем уровне просто не для меня!

Очь прошу сильно не пинайте и не ругайте только начинаю делать Ява на паскале лучше помогите чем могите! Заранее спасибо!

ViNT 30.06.2007 17:32

Re: Помогите начинаешему ЯВеру!
 
Вложений: 2
Без библиотек это на MP не сделать.
Минимум, нужна MFS-для файловой системы(если моторола).
Софт-кнопки в mp не детектируются, хотя гдето видел соотв. либу.
Вот мой пример на работу с MFS, может поможет.

BASSON XVI 30.06.2007 23:28

Re: Помогите начинаешему ЯВеру!
 
У меня ессть все баблиотек на Моторолу это и IO и FileSystemAccessor посмотрю на твои може что полуситься! Ты знаеш где сть хороший учебник на МИдлет паскаль а то стандарт это только пару просцедур и функций!

ViNT 30.06.2007 23:58

Re: Помогите начинаешему ЯВеру!
 
В стандартном описано все что есть. А остальные только через либы.

BASSON XVI 01.07.2007 00:59

Re: Помогите начинаешему ЯВеру!
 
Понятно вообщем жду ещё помощи!!!

BASSON XVI 03.07.2007 22:11

Re: Помогите начинаешему ЯВеру!
 
Люди ну помогите пожайлуста загорелось мне постичь МР!! Я обновил код! Теперь 2 ошибки и 1 варинг! Помогите найти в чом дело? Так же ну помогите с ФС как сохранять и открывать текстовые файлы с тела обьясните хоть в краце!

ViNT 03.07.2007 22:53

Re: Помогите начинаешему ЯВеру!
 
Читаешь файл в строку, грузишь в textbox, редактируешь, сохраняешь содержимое textbox'а в строку, пишешь строку в файл.
Поиск файлов в папке есть в моем примере.

BASSON XVI 04.07.2007 01:40

А ты ба не мог не много по понятней с маленьким примером это обьяснить!! Так как у меня даже нет пыта работы на паскале!

И по чему у меня нельзя писать названия русские на клавиши! МР рууский может из за того что шерифт смнеил! если да то скади какой у тебя стоит!

ViNT 04.07.2007 15:28

Re: Помогите начинаешему ЯВеру!
 
Пример работы с текстом:

program text;
uses mfs;

var

buf,fname:string;
efile:integer;
ok,cancel,clicked:command;

begin
showform;
ok:=createcommand('OK',cm_ok,0);
cancel:=createcommand('Отмена',cm_cancel,0);
addcommand(ok);
addcommand(cancel);
efile:=formaddtextfield('Файл:','',128,tf_any);
repeat
clicked:=getclickedcommand;
if clicked=cancel then halt;
delay(100);
until clicked=ok;
fname:=formgettext(efile);
buf:=mfs.read_file(fname);
showtextbox('Редактирование',buf,20000,tf_any);
repeat
clicked:=getclickedcommand;
if clicked=cancel then halt;
delay(100);
until clicked=ok;
showform;
buf:=gettextboxstring;
repeat
clicked:=getclickedcommand;
if clicked=cancel then halt;
delay(100);
until clicked=ok;
fname:=formgettext(efile);
mfs.write_file(fname,buf);
end.

Примерно так(могут быть небольшие опечатки).

На счет русского-скорее всего проблема в ленгпаке мобилы.

BASSON XVI 04.07.2007 16:49

Re: Помогите начинаешему ЯВеру!
 
Все вечерком посижу по думаю! По тестю!

BASSON XVI 06.07.2007 07:27

Re: Помогите начинаешему ЯВеру!
 
Пример работы с текстом:
program text;
uses mfs;

var
........
Этот вот пример что то не работает! Пробовал сделал его приложением закинул на диск /c/ тексьовый документ p.txt там написанно было жве буквы латиницой!! В мидлете как только не прописывал и так /c/p.txt и так /c/p! В текст в мидлете не отображался и даже еслия пытался это сохранить документ не сохранялся! я кидал в папку классы IO мотороловские!
Обьясните почему не чего не получилось!!!
И еще скажте как мне это все разбить на три процедуры:
Код:

procedure textopen;
// Здесь надо открать текстовый документ
procedure textBox;
//Здесь надо надо его оттобразить в форме и отредоктировать!
procedure textSave;
//Зедсь на до его сохранить!


ViNT 06.07.2007 13:25

Re: Помогите начинаешему ЯВеру!
 
А какая мобила?

BASSON XVI 06.07.2007 15:54

Re: Помогите начинаешему ЯВеру!
 
Моторола Л6! У неё помойму MOTOFS!

ViNT 06.07.2007 16:03

1. Если нет exception на обращение к классам, то скорее всего motofs.
2.Необходимо дать приложению доступ к ФС.
3.Нужно точно соблюдать регистр(нельзя писать file.TXT вместо file.txt.

Вот кое что исправил(синим цветом) но это на суть не влияет, всеравно надо дать доступ к ФС:

Код:

program text;
uses mfs;

var

buf,fname:string;
efile:integer;
ok,cancel,clicked:command;

begin
showform;
ok:=createcommand('OK',cm_ok,0);
cancel:=createcommand('Отмена',cm_cancel,0);
addcommand(ok);
addcommand(cancel);
efile:=formaddtextfield('Файл:','/a/mobile/text.txt',128,tf_any);
repeat
clicked:=getclickedcommand;
if clicked=cancel then halt;
delay(100);
until clicked=ok;
fname:=formgettext(efile);
buf:=mfs.read_file(fname);
showtextbox('Редактирование',buf,2000,tf_any);

addcommand(ok);
addcommand(cancel);


repeat
clicked:=getclickedcommand;
if clicked=cancel then halt;
delay(200);
until clicked=ok;
showform;

buf:=gettextboxstring;

repeat
clicked:=getclickedcommand;
if clicked=cancel then halt;
delay(200);
until clicked=ok;
fname:=formgettext(efile);


if mfs.file_exists(fname)=1 then
mfs.delete_file(fname);//иначе просто допишет текст в конец файла


mfs.write_file(fname,buf);
end.


BASSON XVI 06.07.2007 17:56

Что значит дать доступ к Фс у меня на прошивке доступ к ФС открыт! Я также забрасывал туда что требовал эмулятор а именно! IO com=>motorola=>io=>falesys......!!!!!! Ща потестю что ты исправил!

Не не все равно неработает! регистр соблюдал! У же кодрировал и в ANSI И в Уникоде! Не помогает! А у тебя то это работает?

ViNT 06.07.2007 20:15

Re: Помогите начинаешему ЯВеру!
 
У меня работает, но у меня c650, там 100 пудов motofs, а на счет l6 не уверен . Попробуй либу JSR75 вместо mfs.

BASSON XVI 06.07.2007 21:36

Re: Помогите начинаешему ЯВеру!
 
А где взять её! нескажеш!

ViNT 06.07.2007 22:18

Re: Помогите начинаешему ЯВеру!
 
В либах Pilgrim'а:
http://piligrim.at.tut.by/java/mp.html

BASSON XVI 07.07.2007 00:36

Все переделал под JSR75 тоже не работает! не менял сомманды, только поменял название либы везеде!

А вот подскажи как мне это разделить на три процедуры! Хоть что то сделать а потом разбираться почему не работает либа!

ViNT 07.07.2007 01:38

Re: Помогите начинаешему ЯВеру!
 
Даже хз. Попробуй всетаки доступ дать вручную, малоли что. Кстати попробуй jsr75i. Спроси на мотофане какая всетаки у тебя ФС.

BASSON XVI 07.07.2007 01:51

Re: Помогите начинаешему ЯВеру!
 
Ужу спросил жду овета! Доступ давал в ручную везде пишет доступ дан!

ViNT 07.07.2007 03:10

Re: Помогите начинаешему ЯВеру!
 
А ты чем приложения ставишь? Если мидвеем, посмотри, какие ошибки.

BASSON XVI 07.07.2007 05:12

Вложений: 2
Я ставлю МММ но могу мидвеем поставить и выложить лог!

вот лог мидвея но не при установке а при попытке считать и записать файл!
Вот лог!

ViNT 07.07.2007 13:19

Re: Помогите начинаешему ЯВеру!
 
Чё это за версия Midway(лог какрйто навороченный)?
Вообще ошибок нет.
А другие приложения с доступом к ФС работают?

shybovycha 07.07.2007 14:43

Re: Помогите начинаешему ЯВеру!
 
Pascal ужэдавно устарел! Переходи на Джаву!!!
1) Кросплатформенный (Linux, Mac, Windows, Mobile)
2) Гибкий!!!
3) Не знаешь Яву- не мечтай найти НОРМАЛЬНУЮ:super: работу!
Сам 2-3 дня назад перешел - ужэ к окнам подбираюсь.
Шоб с Явой работать - надо иметь:
-jdk
-Intelij idea/Eclipse/JEdit/Notepad++
-туториэл

ViNT 07.07.2007 14:50

Re: Помогите начинаешему ЯВеру!
 
Всетаки на L6 JSR75.
Где грабли непонятно.

BASSON XVI 07.07.2007 21:15

Спастбо что подсказал что jsr75! А доступ к ФС другие приложения имеют!
не знаю мне обешали выложить исходник Фменеджера! из не го посмотрим что можно будет сделать!

shybovycha vbmenu_register("postmenu_46390", true); Я не могу найти ни диска не книги по ява у нас в городе! А снета скачать 50-60мигов не возможности!

BASSON XVI 08.07.2007 16:42

Re: Помогите начинаешему ЯВеру!
 
ВСЕ ЮДИ ПОНЯЛ В ЧОМ БЫЛА ПРОБЛЕМА! НЕ НАДО БЫЛО ПИСАТЬ ПЕРЕД БУКВОЙ ДИСКА /. НУ ТЕПЕРЬ ПОДСКАЖИТЕ КАК МНЕ ЭТО ВСЕ РАЗБИТЬ НА ТРИ ПРОЦЕДУРЫ! ЧТЕНИЕ-РЕДОКТИРОВАНИЕ-СОХРАНЕНИЕ!

ViNT 08.07.2007 22:57

Re: Помогите начинаешему ЯВеру!
 
Примерно так:

Код:

program text;
uses jsr75;

var
buf,fname:string;
efile,i:integer;
ok,cancel,clicked:command;

procedure Init;//Инициализация
begin
showform;
ok:=createcommand('OK',cm_ok,0);
cancel:=createcommand('Отмена',cm_cancel,0);
efile:=formaddtextfield('Файл:','/a/mobile/text.txt',128,tf_any);
end;

procedure LoadFile;//Загрузка файла
begin
fname:=formgettext(efile);
buf:=read_file(fname);
showtextbox('Редактирование',buf,2000,tf_any);
end;

procedure SaveFile;//Сохранение файла
begin
fname:=formgettext(efile);
if file_exists(fname)=1 then
delete_file(fname);//иначе просто допишет текст в конец файла
write_file(fname,buf);
end;

procedure CheckCommand;//Проверяем, что нажал пользователь
begin
addcommand(ok);
addcommand(cancel);
repeat
clicked:=getclickedcommand;
if clicked=cancel then halt;
delay(100);
until clicked=ok;
end;

begin
Init;
CheckCommand;
LoadFile;
CheckCommand;
showform;
buf:=gettextboxstring;
CheckCommand;
SaveFile;
end.


BASSON XVI 09.07.2007 03:40

Re: Помогите начинаешему ЯВеру!
 
Ok проверю! !!

BASSON XVI 09.07.2007 03:44

Re: Помогите начинаешему ЯВеру!
 
А вот вопрос а можно ли в процедурку LoadFile добавить примерно следующее!
Код:

procedure LoadFile;//Загрузка файла
begin
fname:=formgettext(efile);
buf:=read_file(fname);
showtextbox('Редактирование',buf,2000,tf_any);
addcommand(ok);
addcommand(cancel);
repeat
clicked:=getclickedcommand;
delay(100);
until clicked <> EbptyClicked;
if clicked=cancel then menu;
if clicked=ok then saveFile;
end;


Piligrim 10.07.2007 18:59

Re: Помогите начинаешему ЯВеру!
 
Хм. А почему раздел называется "..начинающему яверу" скорее "паскалеру"

BASSON XVI 11.07.2007 01:13

Re: Помогите начинаешему ЯВеру!
 
Все люди сделал своё приложенице! могу выложить если попросите!

http://neten.org 11.07.2007 12:15

Re: Помогите начинаешему ЯВеру!
 
Давай выкладывай посмотрим.

BASSON XVI 13.07.2007 05:50

Re: Помогите начинаешему ЯВеру!
 
Люди дайте пример на отправку смс!
И ещё есть ли возможность чтение смс с телефона ява мидлетом! Мож библиотеки какие нужны!
Мой мидлет только для моторов L6/L2 и для моторов с JRS75 и разр 128х160! Но вот ссылка на него! Мидлет!!!

Piligrim 13.07.2007 11:42

Re: Помогите начинаешему ЯВеру!
 
Хороший пример отправки СМС есть в справке МР.Получить доступ к СМС на мотороле можно, но не все телефоны это поддерживают. Идет ли на твоей модели корелет MV? У него есть плагины бэкапа телефонной книги и СМС. Тогда можно сделать по идее и из-под МР

BASSON XVI 14.07.2007 07:43

Re: Помогите начинаешему ЯВеру!
 
ДА идёт и MV и VC у меня не за лоченная и не китайская проша ! Я уже думал может на отнове плагина смсм бекап сделать библиотеки для МР которые бы читали смс из тела! я незнаю он у меня не работает пример из справки!

Piligrim 15.07.2007 15:05

Re: Помогите начинаешему ЯВеру!
 
Пример из справки не идет видимо из-за того, что там указан порт для отправки. Попробуй воспользоваться моей библиотекой для отправки СМС.
ЗЫ: значит осталось сделать либу для доступа к СМС :) Хотя у корелета вроде прав больше чем у обычной программы

BASSON XVI 15.07.2007 17:37

Re: Помогите начинаешему ЯВеру!
 
Есть и явак СМС бекап из неё тоже можно вытинуть классы для либы! Если хочеш дам ссылку где скачать! А вообще мог у автора на мотофане исходники попросить если надо???

Piligrim 16.07.2007 12:15

Re: Помогите начинаешему ЯВеру!
 
Если есть исходники, выкладывай. Я на мотофане тоже бываю, но в ветку корелетов не сильно заглядываю. На мою Е770 только недавно RSA сломали.

ViNT 16.07.2007 15:40

Re: Помогите начинаешему ЯВеру!
 
А что вообще создается, текстовый редактор или отправщик смс или все в одном?

BASSON XVI 19.07.2007 05:09

Re: Помогите начинаешему ЯВеру!
 
Все в одном создаёться так сказать мульти функционал!

BASSON XVI 22.07.2007 14:05

Можете кинуть библиотеки на отправку СМС с примером конечно!

А вот что я ещё забыл есть у когонибудь исходник Фм для jrs75 ! Если есть дайте! :SOS:

Piligrim 23.07.2007 00:12

Re: Помогите начинаешему ЯВеру!
 
все, что я писал для МР лежит тут: http://piligrim.at.tut.by/java/mp.html. и в разделе "Наработки"

BASSON XVI 23.07.2007 10:51

Re: Помогите начинаешему ЯВеру!
 
Да мне бы примерцик использования этой библы!

Piligrim 23.07.2007 23:05

Re: Помогите начинаешему ЯВеру!
 
if sms.send('sms://'+dest, text)=0 then
showError('Error');
while sms.is_sending<>0 do begin
Delay(100);
end;
if sms.successfull=0 then
Debug('Error');

BASSON XVI 24.07.2007 17:14

Re: Помогите начинаешему ЯВеру!
 
Спасиб посомтрю ща дописываю своему прилож нормальный Фм! Как только с ним разберюся так сразу и за СМС возсюь!

BASSON XVI 25.07.2007 12:42

Re: Помогите начинаешему ЯВеру!
 
Вот посмотрите код что то не работает!
Код:

program TxT_Edtihion2;
uses jsr75;
uses fsafm;
  var
    cmdNext : command; 
    cmdBack : command; 
    cmdQuit : command;
PCmd,MCmd, clicked : command;

str : string;    // буфер
files: array[1..200] of string; // имена файлов, коичество файлов = размер массива
filesID: array[1..200] of integer; // ID строк 
nameT : string; // текущая папка

num : integer; // щечики
iID : integer;
nfile : string;
etc : string;

//--------------------------------------------------------------------------------------
{Мои булеаны!}
BultextBox, BultextOpen : boolean;
//---------------------------------------------------------------------------------------
{Указываем на процедуры которые идут после комманд на них}
procedure textBox; forward;
procedure textOpen; forward;

//---------------------------------------------------------------------------------------
procedure textOpen;

begin

cmdNext := CreateCommand('ок', CM_OK, 1);
  cmdBack := CreateCommand('выход', CM_EXIT, 1);

nameT:= ''; // начальная папка

while (clicked <> cmdBack) do
begin
// очищаем команды
  removeCommand(cmdNext);
  removeCommand(cmdBack);
  Repaint; // обновление экрана



  if nameT = '' then // проверка на нахождение в корне
  begin


  str:=fsafm.list_roots(''); // чтение дисков
      num:= fsafm.num_disk(nameT); // определяем кол-во дисков



  end 
  else
  begin


  str:=fsafm.list_(nameT); // чтение папок
  num:= fsafm.num_dir(nameT); // определяем кол-во папок

  end;

files [1]:= '...'; // добавляем первой строкой, выполняет функцию вверх



if str <> '' then  // проверка наличия файлов
begin



  for i:=2 to num + 1 do // очистка меню
  begin
  files [i]:= ''
  end;


  for i:=2 to num + 1 do
  begin


    files [i]:=  copy(str, 0, pos(str, '|') ); //заполнение массива именами
    str:= copy(str, pos(str, '|') + 1 , length(str));

  if pos(str, '|') = -1 then  // проверка знака '|' в строке
  begin
  str:= '.';
  break; 
  end;

  end;
end; 




// создаем меню



showMenu(nameT, CH_IMPLICIT);

for i:= 1 to num + 1 do
begin
    if files[i] <> '' then
    begin
    filesID [i] := menuAppendString(files[i]); // создаем строки
    end;
end;


            // добавление команд
            AddCommand(cmdNext);
  AddCommand(cmdBack);
  Repaint; // обновление экрана



            repeat  // ждем нажатия на команду
  delay(100);
  clicked:= getClickedCommand;
  until clicked <> emptyCommand;

  if clicked <> cmdBack then
  begin

  iID:= menuGetSelectedIndex + 1; // к ID выбранной строки прибавим 1, для удобства

  if iID=1 then // если первая строка, переходим вверх
  begin
    if Length(nameT) <= 3 then // проверка на нахождение в корне
    begin
    nameT:='';
    end
    else
    begin

    for i:= 2 to length(nameT) do // команда вверх, вычисление предидущей папки
    begin

    if copy(nameT, length(nameT) - i, length(nameT) - i + 1 ) = '/' then
    begin

    nameT:= copy(nameT, 0, length(nameT) - i + 1  );
    break;

    end;
    end;
    end;
  end
  else
  begin


    if copy(files[iID], length(files[iID]) - 1, length(files[iID])) = '/' then nameT:= nameT + files[iID]; // если выбрана папка переходим в нее

    if length(files[iID]) >= 4 then
    begin

      if copy(files[iID], length(files[iID]) - 4, length(files[iID])) = '.gif' then debug('gif');
      if copy(files[iID], length(files[iID]) - 4, length(files[iID])) = '.txt' then
      begin
        buf:= jsr75.read_file(nameT + files[iID]);
          textbox;
      end;


    end;
  end;

  end;

end; 
end;



//---------------------------------------------------------------------------------------

procedure textBox;
begin
  buf:= jsr75.read_file(fname);
  buf:= getTextBoxString;     

  showtextbox('Редактирование',buf,2000,tf_any);
  PCmd := createCommand('Сохранить', CM_SCREEN, 1);
  MCmd := createCommand('Меню', CM_OK, 0);
  addCommand(PCmd);
  addCommand(MCmd);
  repaint; 
  repeat
    clicked := getClickedCommand;
  until clicked <> emptyCommand;

  if clicked = MCmd then logMenu;
  if clicked = PCmd then logSave;

end;

//---------------------------------------------------------------------------------------
begin
  textOpen;
end.


BASSON XVI 25.07.2007 12:47

Re: Помогите начинаешему ЯВеру!
 
Вложений: 2
Ой забыл библу присоединить нудную! Вот держите!
Вложение 4124

BASSON XVI 24.08.2007 05:10

Re: Помогите начинаешему ЯВеру!
 
НАрод помгайте мне!!! Короче у меня что что с Канвасом стало! Ранше он на Л6 на весь экран был! А теперь белая полоска в 10 пикселей мешает!!! Я даже незнаю что и откуда она взялась! раньше её не было!!!

fads 24.08.2007 16:01

У тебя два раза написано uses. Пиши так: uses fsafm, jsr75. Остальные ошибки незаметны с оперы мини))) А насчет канваса я не понял, че с ним делал и какие ошибки пишет компилятор

BASSON XVI 24.08.2007 20:27

Re: Помогите начинаешему ЯВеру!
 
Я гороврю не про код FM! Я говорю про экран канвас!!!!
Цитата:

НАрод помгайте мне!!! Короче у меня что что с Канвасом стало! Ранше он на Л6 на весь экран был! А теперь белая полоска в 10 пикселей мешает!!! Я даже незнаю что и откуда она взялась! раньше её не было!!!
__________________

ViNT 28.08.2007 18:12

Re: Помогите начинаешему ЯВеру!
 
Софт-полоска или чтото другое?

BASSON XVI 28.08.2007 18:52

Re: Помогите начинаешему ЯВеру!
 
Извеняй что не написал решил эту траблу!! С помощью добавления класса МММ! А вооще просто белая полоска в 10 пикселей! Была!!!!

BASSON XVI 29.08.2007 20:02

Re: Помогите начинаешему ЯВеру!
 
Можно ли на чертить сетку(условно) в канвасе по которой будет двигаться курсор? Ну скажем квадратами в 10 пикселей! И скажите как пользоваться либой Канвас!(пару кусков кода!)мне нужно вырезать определённые куски изображения из карты шрифта J !

ViNT 29.08.2007 21:04

Re: Помогите начинаешему ЯВеру!
 
На счет сетки-примерно так:
Код:

program NewProject;
var
x,y:integer;
ix,iy,oix,oiy:integer;
key:integer;

procedure drawbutton(x,y,w,h:integer;pressed:boolean);
begin
setcolor(128,128,128);
fillrect(x,y,w,h);
if pressed then
begin
setcolor(0,0,0);
drawline(x,y,x+w,y);
drawline(x,y,x,y+h);
setcolor(255,255,255);
drawline(x+w,y+h,x+w,y);
drawline(x+w,y+h,x,y+h);
end;

if not pressed then
begin
setcolor(255,255,255);
drawline(x,y,x+w,y);
drawline(x,y,x,y+h);
setcolor(0,0,0);
drawline(x+w,y+h,x+w,y);
drawline(x+w,y+h,x,y+h);
end;
end;


begin
iy:=1;
ix:=1;
oix:=1;
oiy:=1;
for y:= 1 to 10 do
for x:= 1 to 10 do
begin
drawbutton(x*10,y*10,9,9,false);
end;
repaint;
repeat

key:=getkeyclicked;
if key=ke_key6 then ix:=ix+1;
if key=ke_key4 then ix:=ix-1;
if key=ke_key2 then iy:=iy-1;
if key=ke_key8 then iy:=iy+1;

if key<>ke_none then
begin
drawbutton(ix*10,iy*10,9,9,true);
drawbutton(oix*10,oiy*10,9,9,false);
oix:=ix;
oiy:=iy;
repaint;
end;
key:=ke_none;
until key=ke_key0;

repaint;       
delay(20000);
end.

На счет либы канвас должен быть пример в архиве.


Часовой пояс GMT +4, время: 16:54.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot