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=15288)

maestrodan 14.08.2011 11:01

Проблемма с библиотекой
 
Здравствуйте, собственно такая проблема:написал модуль, он компилится без проблем, а в проге работать не хочет, даже если прописан только в uses.
Вот текст модуля:
Unit graph;
Interface
Type p1=array[1..5] of string;
P2=array[1..5;1..5] of string;
Var i,j,i1,j1,n,m:integer;
Procedure menu(point:p1;n,i1:integer);
Implementation
Procedure menu(point:p1;n,i1:integer);
Begin
Showcanvas;
Repeat
Setcolor(250,150,50);
Fillrect(0,0,getwidth,getheight);
I1:=1;
Repeat
For i:=1 to n do
If i=i1 then
Begin
Setcolor(20,40,60);
Drawrect(20,20+20*(i-1),50,15);
Setcolor(10,30,50);
Drawtext(point[i],25,20+20*(i-1));
End
Else
Begin
Setcolor(50,50,50);
Drawrect(20,20+20*(i-1),50,15);
Setcolor(0,100,200);
Drawtext(point[i],20,20+20*(i-1));
End
Until getkeypressed<>0;
If keytoaction(getkeypressed)=ga_up then
If i1>1 then
I1:=i1-1;
If keytoaction(getkeypressed)=ga_down then
If i1<n then
I1:=i1+1;
Delay(150);
Repaint;
Until keytoaction(getkeyclicked)=ga_fire;
End;
End.

PassCall 15.08.2011 23:48

Ответ: Проблемма с библиотекой
 
Хоть я и не часто пользуюсь модулями, но:

1. "P2=array[1..5;1..5] of string;" По моему, размерность отделяется запятой, а не точкой с запятой =\
2. Причем тут библиотека? Это ж модуль!

maestrodan 17.08.2011 17:35

Ответ: Проблемма с библиотекой
 
1) опечатка, так как писал с мобилы через оперу мини, другого интернета не было
2) вообще, модуль, но ведь и либа и модуль подключаются в программе через uses?
вобщем, сие чудо компилится, а прога с ним нет...

PassCall 17.08.2011 18:56

Ответ: Проблемма с библиотекой
 
Хм, вообщето компилиться нормально. Только как пользоваться не могу понять.

Кароче если не использовать типы, то все работает.

МОДУЛЬ
Код:

Unit graph;
Interface

Var i,j,i1,j1,n,m:integer;
p1:array[1..5] of string;
P2:array[1..5,1..5] of string;

Procedure menu(a,n,i1:integer);
Implementation
Procedure menu(a,n,i1:integer);
Begin
Showcanvas;
I1:=1;
Repeat
Setcolor(250,150,50);
Fillrect(0,0,getwidth,getheight);


For i:=1 to n do
If i=i1 then
        Begin
        Setcolor(20,40,60);
        Drawrect(20,20+20*(i-1),50,15);
        Setcolor(10,30,50);
        Drawtext(p1[i],25,20+20*(i-1));
        End;
Else
        Begin
        Setcolor(50,50,50);
        Drawrect(20,20+20*(i-1),50,15);
        Setcolor(0,100,200);
        Drawtext(p1[i],20,20+20*(i-1));
        End;

If keytoaction(getkeypressed)=ga_up then
If i1>1 then I1:=i1-1;

If keytoaction(getkeypressed)=ga_down then
If i1<n then I1:=i1+1;

Delay(40);
Repaint;
Until keytoaction(getkeyclicked)=ga_fire;
End;
End.

Сам код:
Код:

program Module;
uses graph;

begin
graph.p1[1]:='aaa';
graph.p1[2]:='bbb';
graph.p1[3]:='ccc';
graph.p1[4]:='ddd';
graph.p1[5]:='eee';

graph.menu(1,5,5);
        drawText('Hello world!', 0, 0);
        repaint;       
        delay(2000);
end.


maestrodan 18.08.2011 00:49

Ответ: Проблемма с библиотекой
 
Интерестно....попробую без модулей...
Просто в обычном паскале ведь не типовые массивы нельзя применить в функциях/процедурах, но раз так:)
а модуль-это либы создания граф. интерфейса, так же есть вариант с таблицей из "пунктов меню", и "рабочий стол, но я пока их в модуль не включал...
Спасибо за подсказку!


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

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