Hallo Stafan2005!
Stöbere grad hir bissl rum und finde diesen Thread. Ich kann Dir die Objects
Unit aus Freepascal anbieten, nach Delphi portiert.
Zitat von
Phistev:
Wesentlich schwieriger dürfte es sein, die
WinAPI-Aufrufe zu ersetzen. Mit Entfernen ist es häufig nicht getan, da diese Aufrufe ja etwas bewirken (wie Speicher zuweisen, Zugriff auf die Festplatte (FAT16, FAT32, evtl. NTFS), Ausgabe auf dem Bildschirm (Konsole /
GUI)...).
Es gibt doch auch für DOS gute Grafikbibliotheken. ZB.:
VenomGFX (go32 Version)
gfx (Leider nur Turbo Pascal und damit 16 Bit)
grx (Leider mit Borland C++ 4.5 als .lib vorcompiliert. Freier BCC++ Compiler hat Version 5.5)
Da mich das Problem auch interessiert, werde ich mich mal mit VenomGFX beschäftigen. Deren Funktionen werden nach folgendem Muster aufgerufen:
VenomGFX-Funktion(Festerdatenstruktur,Koordinaten);
Koordinaten :: x1,y1,x2,y2
Fensterdatenstruktur :: Bei VenomGFX ein Record
Warum sollte es da nicht möglich sein, das Windows
API nachzubilden. Und zwar mit Hilfe so einer Grafikbibliothek. Das
Handle, das bei der Windows
API statt der o.g. Fensterdatenstruktur mit übergeben wird, kann doch auf diese Datenstruktur zeigen.
Beispiel:
Delphi-Quellcode:
FensterDatenstruktur =
record
... die Definition der Struktur
end;
WINAPI
function PutPixel(
Handle: THandle; x,y: Integer);
var var_Fensterdatenstruktur: Fensterdatenstruktur
absolute Handle;
begin
VenomGFX_PutPixel(var_Fensterdatenstruktur,x,y);
end;
Mag sein, das unter Windows das
Handle wirklich nur eine Fensternummer darstellt. Wie ich aber bis jetzt das Windoes
API verstanden habe, muß ich doch ohne
VCL eine Fensterklasse registrieren indem ich eine Datenstruktur mit Anfangswerten belege und dann das Fenster mit diesen Anfangswerten erzeuge. Also ist doch das
Handle wohl doch eher die Anfangsadresse dieser Struktur. Deshalb bin ich fest davon überzeugt, das ich mit einer geeigneten Grafikbibliothek, nehmen wir doch gleich vVenomGFX, das
API nachgebildet werden kann.
Ich habe mal die VenomGFX Bibliothek rangehangen. Außerdem die auf Delphi portierte Objects.pas, die ja für Freepascal freigegeben ist. Außerdem die Units Dos und Dpmi, die von der nach Delphi portierten go32
Unit verwendet werden. Dos und Dpmi stammen aus dem WDosX Projekt von Michael Tippach.
Die Moderatoern bitte ich, die angehangenen Quelltexte in der Delphi Praxis verfügbar zu machen.
Viel Erfolg wünscht Dir
Traudix