AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Fehlermeldung:Für diesen Befehl ist nicht genügend Speicher

Fehlermeldung:Für diesen Befehl ist nicht genügend Speicher

Ein Thema von meg91 · begonnen am 5. Sep 2006 · letzter Beitrag vom 5. Sep 2006
 
Benutzerbild von meg91
meg91

Registriert seit: 25. Apr 2006
131 Beiträge
 
Turbo Delphi für Win32
 
#1

Fehlermeldung:Für diesen Befehl ist nicht genügend Speicher

  Alt 5. Sep 2006, 18:10
hi@all
ich hab ein Programm geschrieben, welches in regelmäßigen Abständen nen Screenshot macht und daraus die Durchschnitssfarbe berechnet
anschließend wird der eine Farbwert als RBG auf dem Com Port ausgegeben

am anfang funktioniert es auch wunderbar nur nach einiger Zeit kommt die Fehlermeldugn von Delphi:Für diesen Befehl ist nicht genügend Speicher verfügbar

hier mal mein Quelltext
Delphi-Quellcode:
procedure TForm1.ScreenToLine();
var
  Bitmap: TBitmap;
  Canvas: TCanvas;
  iFor, iFor2: LongInt;
  bRed, bGreen, bBlue: Byte;
  PixelColor: LongInt;
  bXgesRed, bXgesGreen, bXgesBlue: LongInt; //Duchschnittsfarben Horizontal
  bYgesRed, bYgesGreen, bYgesBlue: LongInt; //Duchschnittsfarben Vertikal
begin
  Canvas := TCanvas.Create;
  try
    Canvas.Handle := GetWindowDC(0);
    try
      Bitmap := TBitmap.Create;
      try
        Bitmap.Width := Screen.DesktopWidth;
        Bitmap.Height:= Screen.DesktopHeight;
        Bitmap.PixelFormat := pfDevice;

        BitBlt(Bitmap.Canvas.Handle, 0, 0, Pred(Screen.DesktopWidth), Pred(
            Screen.DesktopHeight), Canvas.Handle, Screen.DesktopLeft,
            Screen.DesktopTop, Bitmap.Canvas.CopyMode); //Screenshot machen

        bXgesBlue := 0;
        bXgesGreen := 0;
        bXgesRed := 0;
        for iFor := 0 to 20 do
        begin
          bYgesBlue := 0;
          bYgesGreen := 0;
          bYgesRed := 0;

          for iFor2 := 0 to 16 do
          begin
            //jeden 64-ten Pixel in der hotizontalen addieren
            PixelColor := ColorToRGB(Bitmap.Canvas.Pixels[(iFor * 64), (iFor2 * 64)]);
            bBlue := PixelColor;
            bGreen := PixelColor shr 8;
            bRed := PixelColor shr 16;

            bYgesBlue := bYgesBlue + bBlue;
            bYgesGreen := bYgesGreen + bGreen;
            bYgesRed := bYgesRed + bRed;

          end;
          bYgesBlue := StrToInt(FloatToStr(Round(bYgesBlue / 16)));
          bYgesGreen := StrToInt(FloatToStr(Round(bYgesGreen / 16)));
          bYgesRed := StrToInt(FloatToStr(Round(bYgesRed / 16)));

          bXgesBlue := bXgesBlue + bYgesBlue;
          bXgesGreen := bXgesGreen + bYgesGreen;
          bXgesRed := bXgesRed + bYgesRed;

        end;

        bXgesBlue := StrToInt(FloatToStr(Round(bXgesBlue / 20)));
        bXgesGreen := StrToInt(FloatToStr(Round(bXgesGreen / 20)));
        bXgesRed := StrToInt(FloatToStr(Round(bXgesRed / 20)));

        //Werte ausgeben
        TrackBar1.Position := bXgesRed;
        TrackBar2.Position := bXgesGreen;
        TrackBar3.Position := bXgesBlue;

        Application.ProcessMessages;
      finally
        Bitmap.Free;
        iFor := 0;
        iFor2 := 0;
        bRed := 0;
        bGreen := 0;
        bBlue := 0;
        PixelColor := 0;
        bXgesRed := 0;
        bXgesGreen := 0;
        bXgesBlue := 0;
        bYgesRed := 0;
        bYgesGreen := 0;
        bYgesBlue := 0;
        end;
    finally
      ReleaseDC(0, Canvas.Handle);
    end;
  finally
    Canvas.Free;
  end;
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 18:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz