1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

TP: Bildschirminhalt zwischenspeichern - too many Variables

Discussion in 'Programmieren' started by TheMars, Nov 23, 2007.

Thread Status:
Not open for further replies.
  1. TheMars

    TheMars Byte

    guten morgen!

    Ich möchte in meiner grafischen Anwendung (256 Farben, 1024x768) die Kanten glätten und habe dazu eine simpe Anwendung geschrieben in der ein Pixel die Durchschnittsfarbe der ihn umgebenden 8 Pixel und sich selbst bekommt. Um die Flackereffekte zu verringen soll das ganze erst danach ausgegeben werden, muss also zwischengespeichert werden. Jetzt ist das Problem, dass 768kb (1024*768 Bytes) einfach zu viele viele Variablen für Turbo Pascal sind.

    Gibt es eine Möglichkeit das so zu machen oder bin ich auf dem falschen Pfad :confused:
     
  2. Wieso das? Ein Array sollte doch vollkommen ausreichen.
     
  3. Michi0815

    Michi0815 Guest

    wenns wirklich tp ist, dann kann ein array aber nur 64k groß sein.
    schon mal mit zeigern probiert?

    type
    TZeile = array[1..1024] of Byte;
    PZeile = ^TZeile;
    TBildschirm = array[1..768] of PZeile;

    var Bildschirm: TBildschirm;
    begin
    for lv:=1 to 768 do
    begin
    new(Bildschirm[lv]);
    end;

    Bildschirm[1]^[2]:=...
    etc...
    end;
     
  4. autsch....
    Array nur 64kb.... ich hab mir schon gedacht, dass ich irgendwas übersehen habe. Gut dass es hier aufmerksame Leser gibt.
     
  5. TheMars

    TheMars Byte

    Jah, das funktioniert >> großes Dankeschön. :)

    Er wirft mir bei new(Bildschirm[lv]); einen HEAP OVERFLOW ERROR aus. Ist der Heap da zu erweitern?
     
  6. Michi0815

    Michi0815 Guest

    welche pascal version verwendest du?

    ich hab schon lang nichts mehr mit dem "original" tp zu tun, glaube mich aber an 640k maximale heapgröße unter tp7.1 erinnern zu können...
     
  7. TheMars

    TheMars Byte

    About​
    Turbo Pascal Version 7.0
    Copyright (c) 1983,92 by
    Borland International, Inc.

    Memory Sizes​
    Stack size 16384
    Low heap limit 0
    High heap limit 655360

    Gibt es vielleicht eine Modifikation die du mir empfehlen könntest? Ich werd' mal versuchen an TP 7.1 heranzukommen.
     
  8. Michi0815

    Michi0815 Guest

    tp7.x bringt dir nix, weil das das dos speichermodell verwendet wird. daher hast du standardmäßig und ohne klimmzüge nur besch..eidene 640k ram zur verfügung. dein bild ist aber 1024*768*1 byte groß -> 768kb.

    probiers mal mit freepascal oder vpascal. die kompilieren beide 32bit windows programme; da hast du 2gb speicherraum am stück zur verfügung

    edit: ich verwende vpascal. leider wird das seit einiger zeit nicht mehr weiterentwickelt.
     
  9. TheMars

    TheMars Byte

    2GB? Das bietet ja noch mehr Optionen (Wenn ich denn so viel hätte) :rolleyes:

    Ich werde mich mit Free- und VPascal mal auseinandersetzen, danke für den Tipp.
     
Thread Status:
Not open for further replies.

Share This Page