AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit Pointer auf dyn. Array

Ein Thema von nEmai · begonnen am 28. Jun 2008 · letzter Beitrag vom 28. Jun 2008
 
Dax
(Gast)

n/a Beiträge
 
#2

Re: Problem mit Pointer auf dyn. Array

  Alt 28. Jun 2008, 04:38
Ein Pointer kostet vier Byte, demnach kostet dich MyLine auch nur vier Byte. Und der Grund, warum du SetLength nicht anwenden kannst: du hast keinen Speicher für das Array reserviert, das müsstest du erst mit New(MyLine) tun. Dann würde aber der Zugriff auf ScanLine nicht mehr richtig funktionieren. In solchen Fällen benutzt man aber meist keine Arrays, sondern typisierte Pointer:
Delphi-Quellcode:
function MergeTextToBitmap(aBitmap: TBitmap; aString: String): TBitmap;
var
  iHeight,
  iWidth,
  iBitCount: Integer;
  MyLine: ^TRGBTriple;
begin
  iBitCount:= 0;
  aString:= IntToStr(Length(aString)) + '/' + aString;
  aBitmap.PixelFormat:= pf24Bit;
  for iHeight:= 0 to aBitmap.Height - 1 do
  begin
    MyLine:= aBitmap.ScanLine[iHeight];
    for iWidth:= 0 to aBitmap.Width - 1 do
    begin
      if not ((iBitCount + 1) > (Length(aString) * 8)) then
        MyLine^.rgbtRed:= (MyLine^.rgbtRed and $FE)
          or ((Ord(aString[(iBitCount div 8) + 1])
          shr (iBitCount mod 8)) and $01);
      Inc(iBitCount);
      Inc(MyLine);
    end;
  end;
  Result:= aBitmap;
end;
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz