UNIT IMAGE; {
*****************************************************************************
* *
* Turbo-Pascal-Unit zum Laden von Bildern welche mit dem *
* *
* Image-Editor (c) erstellt wurden. *
* *
* *
* Alle Rechte bei Torsten Levin und der 03 AET 89 der Technischen *
* Universitt Chemnitz *
* *
* Annaberg und Chemnitz im Mai 1992 *
* *
* Hardware-Voraussetzung: VGA 640x480x16 *
h#s 11/02: Bei dieser Dateiwrscherei rollte es mir einige Male die Fungel
hoch, bis ich schlielich doch alles gendert habe: warum nicht gleich!
* *
*****************************************************************************
}
INTERFACE
Uses Crt,Graph;
Type Dateiname=String[8];
Procedure PutPicture(Name:PChar;X,Y:Integer);
{ Zeichnet das Bild mit dem Namen 'Name' beginnend an den Punkten
X und Y auf den Bildschirm.
Bedingungen: - Die Bilddatei ('Name'.PIC) mu sich im
aktuellen Verzeichnis befinden.
- Das aufrufende Programm mu sich im Grafik-Modus
befinden.
- Eine eventuell benutzte Maus sollte whrend des
Prozeduraufrufes abgeschaltet werden.
}
Procedure Getpicture(Name:PChar;Var P:Pointer;Var Size:Word);
{ Mit dieser Prozedur wird das gespeicherte Bild 'Name' in die
dynamische Variable 'P' gespeichert und ist somit mit dem Befehl
'PutImage' anzeigbar. Zu beachten ist, da der durch die dyna-
mische Variable belegte Speicherplatz wieder freigegeben werden
mu. (z.B. mit der Prozedur 'FreeMem'). Deshalb wird von der
Prozedur die Gre des belegten Speichers in der Variablen
'Size' zurckgeliefert.
Da bei Nutzung dieser Prozedur das Bild nur einmal von Disk geladen
werden mu und dann im Speicher verbleibt, sollte diese Prozedur
besonders dann genutzt werden, wenn ein und dasselbe Bild mehrfach
angezeigt werden soll.
Bedingungen: - Die Bilddatei ('Name'.PIC) mu sich im
aktuellen Verzeichnis befinden.
- Das aufrufende Programm mu sich im Grafik-Modus
befinden.
- Eine eventuell benutzte Maus sollte whrend des
Prozeduraufrufes abgeschaltet werden.
- Es sollte nicht vergessen werden den reservierten
Speicher nach Gebrauch mit "FreeMem(Pointervar,Size)"
wieder freizugeben.
}
IMPLEMENTATION
uses WinDos,Strings,Windows;
Procedure Putpicture(Name:PChar;X,Y:Integer);
Var
p:Pointer;
size:Word;
Begin
GetPicture(Name,p,size);
PutImage(X,Y,p^,Normalput);
Freemem(p,size);
End;
Procedure GetPicture(Name:PChar;Var P:Pointer;Var Size:Word);
Var
F: File;
S: array[0..79] of Char;
Begin
StrCopy(S,ProgDir);
StrECopy(StrECopy(StrRScan(S,'\')+1,Name),'.PIC');
Assign(F,S);
Reset(F,1);
Size:=FileSize(F);
GetMem(P,Size);
BlockRead(F,P^,Size);
Close(F);
End;
End.
Vorgefundene Kodierung: UTF-8 | 0
|