Autor Beitrag
Bronstein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Fr 19.01.07 11:30 
Ich bekomme immer eine Fehlermeldung:
Für diesen Befehl ist nicht genügend Speicher verfügbar

Woran kann das liegen. Alle Objekte die ich mit create erzeugt habe gebe ich auch mit free wieder frei.

Das Problem tritt immer bei der „OnTimer“ Procedure auf.
Hier starte ich eine Auswertung, die mir Diagramme erstellt. Die Auswertung funktioniert auch noch.
Der Fehler tritt dann auf, wenn ich die Diagramme als Bilder speichern möchte. Das mache ich durch folgenden Code:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
PageControl1.ActivePageIndex := 0;
    bmp := TBitmap.Create;
    BMP.Assign(frmPMJ.GetFormImage);
    TargetBitmap := TBitmap.Create;
    TargetBitmap.Height := frmPMJ.PageControl1.Height-41;
    TargetBitmap.Width := frmPMJ.PageControl1.Width-26;
    BitBlt(TargetBitmap.Canvas.Handle, 00, frmPMJ.PageControl1.Width, frmPMJ.PageControl1.Height-20, bmp.Canvas.Handle,frmPMJ.PageControl1.Left+12, frmPMJ.PageControl1.Top+33, SRCCOPY);
    TargetBitmap.Canvas.StretchDraw(RECT(00,TargetBitmap.Width, TargetBitmap.Height), TargetBitmap);
    BMP.Free;
    jpg := TJpegImage.Create;
    Jpg.CompressionQuality := 100;
    Jpg.Assign(TargetBitmap);
    Jpg.SaveToFile (ChangeFileExt(Linie[i] + '\' + KW + '_Bauteile''.jpg' ));
    Jpg.Free;
    TargetBitmap.Free;

    PageControl1.ActivePageIndex := 1;
    bmp := TBitmap.Create;
    BMP.Assign(frmPMJ.GetFormImage);
    TargetBitmap := TBitmap.Create;
    TargetBitmap.Height := frmPMJ.PageControl1.Height-41;
    TargetBitmap.Width := frmPMJ.PageControl1.Width-26;
    BitBlt(TargetBitmap.Canvas.Handle, 00, frmPMJ.PageControl1.Width, frmPMJ.PageControl1.Height-20, bmp.Canvas.Handle,frmPMJ.PageControl1.Left+12, frmPMJ.PageControl1.Top+33, SRCCOPY);
    TargetBitmap.Canvas.StretchDraw(RECT(00,TargetBitmap.Width, TargetBitmap.Height), TargetBitmap);
    BMP.Free;
    jpg := TJpegImage.Create;
    Jpg.CompressionQuality := 100;
    Jpg.Assign(TargetBitmap);
    Jpg.SaveToFile (ChangeFileExt(Linie[i] + '\' + KW + '_Ausbringung''.jpg' ));
    Jpg.Free;
    TargetBitmap.Free;

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1336
Erhaltene Danke: 119

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Fr 19.01.07 13:41 
schaltest du während der ausführung des timerevents den timer ab?
wenn dem nicht so ist mach das mal!

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Bronstein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Do 25.01.07 08:16 
Sorry, dass ich mich so spät melde.

Ja, ich schalte den Timer ab.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TfrmPMJ.Timer1Timer(Sender: TObject);
begin
  frmPMJ.Timer1.Enabled := false;
[...]
  frmPMJ.Timer1.Enabled := true;
end;


Woran kann es noch liegen.
Mein Programm führt das OnTimer Ereignis 4 mal aus bei 5 mal bekomme ich den Fehler.

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!