Einzelnen Beitrag anzeigen

Traudix

Registriert seit: 6. Mär 2005
Ort: Hannover
16 Beiträge
 
#38

Re: Delphi objektfähig machen

  Alt 5. Jun 2005, 20:52
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
Angehängte Dateien
Dateityp: zip grf_953.zip (311,4 KB, 6x aufgerufen)
Suche die Herausforderung!
  Mit Zitat antworten Zitat