1 / 1 / 0
Регистрация: 05.12.2008
Сообщений: 14
1

Нужно переделать в делфи

04.01.2009, 13:34. Показов 1638. Ответов 5
Метки нет (Все метки)

Готовую задачу сделаную в Паскаль переделать под Делфи:

Pascal
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
program laba3_volynets;
uses crt, graph;
 
type figura = object
x, y: integer;
Color: word;
constructor init(xx, yy: integer; aColor: word);
procedure show;
procedure hide;
procedure draw(aColor: word); virtual;
end;
 
kv = object(figura)
procedure draw(aColor: word); virtual;
end;
 
kr = object(figura)
procedure draw(aColor: word); virtual;
end;
 
var kvadrat:kv;
krug:kr;
driver,mode:integer;
 
constructor figura.init;
begin
x := xx;
y := yy;
color := aColor
end;
 
procedure figura.show;
begin
inc(x);
draw(Color)
end;
 
procedure figura.hide;
begin
setfillstyle(1, black);
draw(black)
end;
 
procedure figura.draw(aColor: word);
begin
end;
 
procedure kv.draw;
begin
setcolor(aColor);
setfillstyle(1, aColor);
bar(x, y, x + 100, y + 100)
end;
 
procedure kr.draw;
begin
setcolor(aColor);
setfillstyle(1, aColor);
Circle(x, y, 50);
floodfill(x, y, aColor)
end;
 
begin
driver := detect;
initgraph(driver, mode, 'bgi');
if graphresult<>0 then begin
writeln('none');
halt
end;
kvadrat.init(1, 100, green);
krug.init(50, 300, red);
repeat
kvadrat.show;
krug.show;
delay(1500);
kvadrat.hide;
krug.hide
until keypressed;
closegraph;
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2009, 13:34
Ответы с готовыми решениями:

Нужно код из Паскаля, переделать под Делфи
Помогите, нужно код Паскаля сделать под Делфи 7. Это метод Гаусса, если что. program abc; var...

Переделать на делфи
uses crt; var s: string; i, k: integer; begin writeln ('Введите слово на русском...

Переделать под делфи
sub Russell dim W&amp;(1to 10),R#(1to 10),i&amp; randomize for i=1to 10 ...

Из Паскаля в делфи переделать
Помогите переделать код из паскаля в делфи, очень надо. в скайп kanysh9901

5
725 / 477 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
04.01.2009, 20:42 2
Тип вигура можно вывести в отдельный модуль. Рисует на форме, используя компонент TTime.

Код
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  figura = object
  x, y: integer;
  Color: word;
  Form: TForm;
  constructor init(xx, yy: integer; aColor: word; AForm: TForm);
  procedure show;
  procedure hide;
  procedure draw(aColor: word); virtual;
end;

kv = object(figura)
  procedure draw(aColor: word); virtual;
  end;

kr = object(figura)
  procedure draw(aColor: word); virtual;
  end;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  kvadrat: kv;
  krug: kr;
  driver, mode: integer;

implementation

{$R *.dfm}

constructor figura.init;
begin
x := xx;
y := yy;
color := aColor;
Form:=AForm;
end;

procedure figura.show;
begin
inc(x);
draw(Color)
end;

procedure figura.hide;
begin
form.Canvas.FillRect(form1.ClientRect);
figura.draw(clblack)
end;

procedure figura.draw(aColor: word);
begin
form.Canvas.Brush.Color:=aColor
end;

procedure kv.draw;
begin
form.Canvas.Brush.Color:=aColor;
form.Canvas.Rectangle(x, y, x+100, y+100);
end;

procedure kr.draw;
begin
form.Canvas.Brush.Color:=aColor;
form.Canvas.Ellipse(x, y, x+100, y+100);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
kvadrat.init(1, 100, clgreen, form1);
krug.init(1, 300, clred, form1);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
kvadrat.hide;
krug.hide;

kvadrat.show;
krug.show;
end;

end.
0
1 / 1 / 0
Регистрация: 05.12.2008
Сообщений: 14
05.01.2009, 02:27  [ТС] 3
Такой вариант не катит - нужно в консольном режиме запустить!!!
0
725 / 477 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
05.01.2009, 22:58 4
Практически в консольном режиме.

Код
program Project1;
uses
  Windows, Messages, Graphics, Classes;

type
  figura = object
  x, y: integer;
  Color: word;
  constructor init(xx, yy: integer; aColor: word);
  procedure show;
  procedure hide;
  procedure draw(aColor: word); virtual;
end;

kv = object(figura)
  procedure draw(aColor: word); virtual;
  end;

kr = object(figura)
  procedure draw(aColor: word); virtual;
  end;

{$R *.RES}

const
  ClientWidth = 800;
  ClientHeight = 600;
  WndClass = 'TForm';
  id_Timer = 100;

var
  Wc: TWndClassEx;
  Wnd: HWND;
  Msg: TMsg;

  DC: hdc;
  Br: HBrush;

  kvadrat: kv;
  krug: kr;
  driver, mode: integer;

constructor figura.init;
begin
x := xx;
y := yy;
color := aColor;
end;

procedure figura.show;
begin
inc(x);
draw(Color)
end;

procedure figura.hide;
begin
Br:=CreateSolidBrush(clBlack);
SelectObject(DC, Br);
FillRect(DC, Rect(0, 0, ClientWidth, ClientHeight), Br);
DeleteObject(Br);
end;

procedure figura.draw(aColor: word);
begin
//
end;

procedure kv.draw;
begin
Br:=CreateSolidBrush(aColor);
SelectObject(DC, Br);
Rectangle(DC, x, y, x+100, y+100);
DeleteObject(Br);
end;

procedure kr.draw;
begin
Br:=CreateSolidBrush(aColor);
SelectObject(DC, Br);
Ellipse(DC, x, y, x+100, y+100);
DeleteObject(Br);
end;

procedure CreateFig;
begin
DC:=GetDC(wnd);
kvadrat.init(1, 100, clgreen);
krug.init(1, 300, clred);
end;

procedure RisFig;
begin
kvadrat.hide;
krug.hide;
kvadrat.show;
krug.show;
end;

function WindowProc( Wnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM ): LRESULT; stdcall;
begin
   case Msg of
      WM_TIMER: RisFig;
      WM_DESTROY: begin
         PostQuitMessage( 0 );
         Result := 0;
         Exit;
      end;
      else
         Result := DefWindowProc( Wnd, Msg, wParam, lParam );
   end;
end;

var
  dmScreenSettings : DEVMODE;

BEGIN
   with Wc do
   begin
      cbSize := SizeOf( Wc );
      style := CS_HREDRAW or CS_VREDRAW;
      lpfnWndProc := @WindowProc;
      cbClsExtra := 0;
      cbWndExtra := 0;
      hInstance := hInstance;
      hIcon := 0;
      hCursor := 0;
      hbrBackground := COLOR_BTNFACE+1;
      lpszClassName := WndClass;
   end;
   RegisterClassEx( Wc );

    ZeroMemory(@dmScreenSettings, SizeOf(dmScreenSettings));
    with dmScreenSettings do begin
      dmSize       := SizeOf(dmScreenSettings);
      dmPelsWidth  := ClientWidth;
      dmPelsHeight := ClientHeight;
      dmBitsPerPel := 32;
      dmFields     := DM_PELSWIDTH or DM_PELSHEIGHT or DM_BITSPERPEL;
    end;

    if (ChangeDisplaySettings(dmScreenSettings, CDS_FULLSCREEN) = DISP_CHANGE_FAILED) then
    begin
      MessageBox(0, 'Unable to switch to fullscreen!', 'Error', MB_OK or MB_ICONERROR);
    end;

  Wnd := CreateWindowEx ( WS_EX_APPWINDOW, WndClass, nil, WS_POPUP or WS_CLIPCHILDREN or WS_CLIPSIBLINGS,
                          0, 0, ClientWidth, ClientHeight, 0, 0, hInstance, nil);

CreateFig;

   ShowWindow( Wnd, SW_SHOWNORMAL );
   SendMessage(Wnd, WM_TIMER,0, 0);
   SetTimer (Wnd, id_Timer, 100, nil);

  while GetMessage( Msg, 0, 0, 0 ) do
  begin
    TranslateMessage( Msg );
    DispatchMessage( Msg );
  end;
  Halt( Msg.wParam );
END.
1
1 / 1 / 0
Регистрация: 05.12.2008
Сообщений: 14
05.01.2009, 23:18  [ТС] 5
Респект и уважуха!!!Правда сложновато написано...впервые стыкаюсь с графикой в делфи, но сделал супер!!!Если можешь кинь какую-то литературу по графике на volan4ikthebest@mail.ru(в програмном коде не всё понятно)!!!

Добавлено через 2 минуты 35 секунд
Заранее спасибо!!!
0
725 / 477 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
06.01.2009, 00:22 6
Можно и по проще. Через консольное приложение на контексте устройства рисует на рабочем столе.

Код
program Project1;
uses
  Forms,
  Windows,
  Messages,
  Graphics,
  Classes;

{$APPTYPE CONSOLE}

type
  figura = object
  x, y: integer;
  Color: word;
  constructor init(xx, yy: integer; aColor: word);
  procedure show;
  procedure hide;
  procedure draw(aColor: word); virtual;
end;

kv = object(figura)
  procedure draw(aColor: word); virtual;
  end;

kr = object(figura)
  procedure draw(aColor: word); virtual;
  end;

var
  DC: hdc;
  Br: HBrush;

  kvadrat: kv;
  krug: kr;
  driver, mode: integer;

constructor figura.init;
begin
  x := xx;
  y := yy;
  color := aColor;
end;

procedure figura.show;
begin
  inc(x);
  draw(Color)
end;

procedure figura.hide;
var
  P: TPoint;
begin
  Br:=CreateSolidBrush(clBlack);
  SelectObject(DC, Br);
  FillRect(DC, Rect(0, 0, Screen.Width, Screen.Height), Br);
  DeleteObject(Br);
end;

procedure figura.draw(aColor: word);
begin
//
end;

procedure kv.draw;
begin
  Br:=CreateSolidBrush(aColor);
  SelectObject(DC, Br);
  Rectangle(DC, x, y, x+100, y+100);
  DeleteObject(Br);
end;

procedure kr.draw;
begin
  Br:=CreateSolidBrush(aColor);
  SelectObject(DC, Br);
  Ellipse(DC, x, y, x+100, y+100);
  DeleteObject(Br);
end;

procedure CreateFig;
begin
  DC:=GetDC(0);
  kvadrat.init(1, 100, clgreen);
  krug.init(1, 300, clred);
end;

procedure RisFig;
begin
  kvadrat.hide;
  krug.hide;
  kvadrat.show;
  krug.show;
end;

var
  i: integer;

BEGIN
CreateFig;
i:=0;
  while i<100 do
  begin
    RisFig;
    sleep(100);
    inc(i);
  end;
END.
Добавлено через 9 минут 14 секунд
Литературку я отправил, читай на здоровье.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2009, 00:22
Помогаю со студенческими работами здесь

Переделать из Паскаля в Делфи
Program Kursovaia_rabota_zadanie_3; uses crt; type mas=array of integer; var a,b:mas;...

Переделать из Matlab в Делфи
Привет всем. Помогите переделать код из Matlab в делфи. Вот код hold on; grid on; c=0.4;...

Переделать под с Паскаля в Делфи
{$DEFINE DEBUG} program p0524; {$APPTYPE CONSOLE} uses SysUtils; const W = 4; ...

Переделать программу из паскаля в делфи
{ генерация перестановок } uses crt; const n = 4; { количество элементов в перестановке} var...

Переделать код с паскаля на делфи
Прошу помощи, нужно переделать код с Паскаля на Делфи. Задания: 1. Дан массив целых чисел из n...

переделать часть кода в делфи
как переделать часть кода в делфи чтобы выводилось не в консоле а на форму writeln('Введите N...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru