Czy ktos wie jak w Pascalu mozna skopiowac tekst z ekranu do pamieci? (w C++ cos takiego umozliwia funkcja gettext()). Probowalem kombinowac ze zmienna Output, ale qrcze nie wiem jak to zrobic [???]
ja to robię jakoś tak...
type
imgtype=record
dx,dy:byte;
buf:array[0..7999]of byte
end;
imgtypeptr=^imgtype;
znak=record ch:char;at:byte end;
ekran=array[1..50,1..80]of znak;
var e:^ekran;
procedure getpic(x1,y1,x2,y2:byte;var img:imgtypeptr);
var i:byte;
begin
x2:=(x2-x1+1)*2;
y2:=y2-y1;
getmem(img,2+x2*(y2+1));
with img^ do
begin
dx:=x2;
dy:=y2;
for i:=0 to y2 do move(e^[y1+i,x1],buf[i*x2],x2)
end
end;
procedure putpic(_x,_y:byte;var img:imgtypeptr);
var i:byte;
begin
with img^ do
begin
for i:=0 to dy do move(buf[i*dx],e^[_y+i,_x],dx);
freemem(img,2+dx*(dy+1))
end
end;
Tylko, ze ja w ogóle nie uzywam crt (conio też odpada). W zależności od tego w jakim trybie tekstowym pracujesz e ma różne wartości...
dla trybów 2 i 3 :
e:=pointer(longint($b8000000))
dla trybu 7 :
e:=pointer(longint($b0000000))
Te 50 linii... Pomyśl, więcej nie powiem ;p
masz tablicę mem. pod adresem mem[$B800:$0000] masz pierwszy bajt ekranu; organizacja pamięci - bajt znak, bajt kolor, i tak przez 80x25x2 bajtów. jakby co, to przestudiuj sobie strukturę modułu tcrt, i artykuł o zaawansowanym pogramowaniu w tp.
Dzieki za podpowiedz:) Teraz juz sie wreszcie pokapowalem jak to jest z tym ekranem:) A tak przy okzaji, kiedy odpalam turbo.exe (w TP7.0 ) to za każdym uruchomieniem resetuje sie ustawienia katalogow (options->directories). Wie ktos moze co z tym zrobic? [???]
Kordzik :)
a czasami nie zapominasz zapisać tych ustawień katalogów ?
Poniżej w Menu "Options" masz opcje "Save" lub "Save as"
Kliknij na to ;) wtedy zapisze Ci się plik konfiguracyjny - bo samo ustawienie ściezek do katalogów i wcisnięcie buttona "OK" w okienku
"Directories" nic nie daje :))
No wiesz kazdemu zdarzaja sie czasem zacmienia umyslowe [stuk] Naprawde sam bym na to nie wpadl:)