Dwa okna w pascalu. Moduł Graph.

0

Witam,

Napisałem program który po zakończeniu pętli w trybie tekstowym otwiera nowe okno trybu graficznego. Okno graficzne otwiera się pod oknem tekstowym. Chciałbym się zapytać czy jest możliwość zamknięcia okna trybu tekstowego, w czasie działania programu i pozostawienie samego okna graficznego.

0

Nie możesz zamknąć okna macierzystego (tutaj konsoli) !
ale możesz go ukryć ;]

0

Jak to zrobić?
Muszę użyć do tego funkcji WinAPi?

0

Tak WinApi:

program Project1;

{$APPTYPE CONSOLE}

uses
  Windows, SysUtils;

  function GetConsoleWindow: Cardinal; external 'kernel32.dll';
var
  hWnd: Cardinal;
begin
  hWnd:= GetConsoleWindow;
  ShowWindow(hWnd, SW_HIDE);
  //tu cos tam niech będzie sleep dla przykladu
  Sleep(5000);
  ShowWindow(hWnd, SW_SHOW);
  Readln;
end.
0

Nie bardzo wychodzi mi wstawienie to do swojego programu;/
Chodzi mi o to żeby po zakończeniu pętli okno trybu tekstowego zostało ukryte i na wierzchu było okno trybu graficznego.


program matrix;
uses crt, graph;
var
a,s : integer;
b: char;

procedure napis;

var
textheight : Word;
driver, mode : integer;

BEGIN
driver := DETECT;
initgraph(driver, mode,'d:\FPC\2.4.4');
settextstyle(3,horizdir,2);
setbkcolor(5);
setcolor(blue);
outtextxy(400,120,'Createdy by :');
settextstyle(3,horizdir,8);
outtextxy(50,220,'<(:Sandalek:)>');
delay(5000);
closegraph;

end;

begin
randomize;
clrscr;
s:=0;

    repeat
     s:=s+1;
     textcolor(10);
     a:=random(8);
     b:=chr(random(94)+33);

      write(a+1,' ');

   textcolor(2);

       write(b,' ');

   until s=1500;
    if s=1500 then napis;

        end.
0

Widzisz jest różnica między FreePascal a Delphi, bo jest ograniczony więc ja radze usuń FreePascal i zainstaluj Delphi ;] albo przeżuć się na C++ jak wolisz konsolki pisać

0

Widzisz jest różnica między FreePascal a Delphi, bo jest ograniczony więc ja radze usuń FreePascal i zainstaluj Delphi ;]

Powiedział co wiedział.

pod FPC wpisujesz zamiast {$APPTYPE CONSOLE} {$APPTYPE GUI} (pod Program przed Uses) i już. W przełącznikach też to gdzieś jest.

0

ta i w Delphi masz bibliotekę graph i crt ...

0

ta i w Delphi masz bibliotekę graph i crt ...

I właśnie dlatego FPC jest lepsze, bo zapewnia zgodność z TP jak i Delphi.

Kolego, zamiast dalej się kompromitować gadając głupoty o FPC, pobierz sobie FPC+Lazarus (www.lazarus.freepascal.org), odpal, i zobacz co oferuje. Bo ty po prostu nie wiesz o czym gadasz.

0

A jak chcesz konsole a później tryb graficzny to możesz:

program project1;

{$mode TP}

uses
  Crt, Graph;

const
   SW_HIDE = 0;
   SW_SHOW = 5;

var
   hWnd: Dword;
   Driver, Mode: Integer;

   function GetConsoleWindow: Dword; external 'kernel32.dll';
   function ShowWindow(hWnd, nCmdShow: Dword): Dword; stdcall; external 'user32.dll';

begin

  writeln('test tryb tekstowy'); //tu cos w trybie tekstowym
  delay(5000);

  hWnd:= GetConsoleWindow;
  ShowWindow(hWnd, SW_HIDE); //ukryj okno

  //tryb graficzny
  Driver:= DETECT;
  Mode:= DETECT;
  InitGraph(Driver, Mode, '');
  if (GraphResult = grOK) then
  begin
    ClearViewPort;
    OutTextXY(1,1,'Tryb graficzny');
    delay(5000);
    CloseGraph();
  end;

  ShowWindow(hWnd, SW_SHOW); //pokaz okno

  writeln('znowu test tryb tekstowy');  //tu znowu cos w trybie tekstowym
  repeat until keypressed;
end.

Nie jest to dobre rozwiązanie, bo korzysta z funkcji Windows ale nic lepszego nie przychodzi mi do głowy...
Na dobrą sprawę obecnie raczej powinno się porzucić Crt i Graph na rzecz WinCrt i WinGraph http://math.ubbcluj.ro/~sberinde/wingraph/;

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0