AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein teechartgrafik in groupbox speichern
Thema durchsuchen
Ansicht
Themen-Optionen

teechartgrafik in groupbox speichern

Ein Thema von Hartfrid Krause · begonnen am 22. Mai 2015 · letzter Beitrag vom 22. Mai 2015
Antwort Antwort
Seite 1 von 2  1 2      
Hartfrid Krause

Registriert seit: 20. Feb 2007
90 Beiträge
 
Delphi XE6 Professional
 
#1

AW: teechartgrafik in groupbox speichern

  Alt 22. Mai 2015, 13:10
Das sieht ja ganz gut aus, aber der Befehl PaintToCanvas wird bei mir nicht übernommen.
  Mit Zitat antworten Zitat
Hartfrid Krause

Registriert seit: 20. Feb 2007
90 Beiträge
 
Delphi XE6 Professional
 
#2

AW: teechartgrafik in groupbox speichern

  Alt 22. Mai 2015, 13:13
nur mit diesem Befehl

groupbox1.savetofile('123.png') [/B]

lautet der Hinweis: [dcc32 Fehler] w31_WaehlerwanderungGrafik.pas(242): E2003 Undeklarierter Bezeichner: 'savetofile'
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: teechartgrafik in groupbox speichern

  Alt 22. Mai 2015, 13:37
Ich glaube, das meinte er auch nur eher als Witz. Aber wenn ich dich nicht falsch verstehe können wir uns ein "SaveToFile" doch so selber bauen, oder?

Delphi-Quellcode:
type
   TWinControlHelper = class helper for Vcl.Controls.TWinControl
      public
         procedure SaveToFile(const fileName: String); virtual;
   end;

procedure TWinControlHelper.SaveToFile(const fileName: String);
var
   DC:    HDC;
   bmp:   TBitmap;
begin
   DC := GetWindowDC(Handle);
   try
      bmp := TBitmap.Create();
      try
         bmp.SetSize(ClientWidth, ClientHeight);
         BitBlt(
            bmp.Canvas.Handle,
            0, 0, bmp.Width, bmp.Height,
            DC, 0, 0,
            WinApi.Windows.SRCCOPY
         );
         bmp.SaveToFile(fileName);
      finally
         bmp.Destroy();
      end;
   finally
      ReleaseDC(Handle, DC);
   end;
end;
Der Button2 sagt
Delphi-Quellcode:
procedure TForm15.Button2Click(Sender: TObject);
begin
   GroupBox1.SaveToFile('x:\myGroupbox.bmp);
end;
. Was dabei herauskommt siehst du im Anhang. Ist doch richtig so, oder?
Angehängte Grafiken
Dateityp: png Form15_2015-05-22_14-30-40.png (40,2 KB, 14x aufgerufen)
Dateityp: jpg myGroupbox.jpg (10,3 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
bernerbaer
(Gast)

n/a Beiträge
 
#4

AW: teechartgrafik in groupbox speichern

  Alt 22. Mai 2015, 13:42
Na ja, so ab und zu wäre doch bei einigen Antworten doch ein kleines Smiley sinnvoll gewesen, oftmals nimmt man die Antworten sonst zu ernst.

Nun zur Frage und eine mögliche Lösung:

1. Bei der Groupbox ist Canvas (leider) nicht published, also müssen wir als erstes eine Ableitung der Groupbox erstellen und den Canvas als published definieren:

Delphi-Quellcode:
type TNewGroupBox = class(TGroupBox)
  public
    property Canvas;
  end;
2. Jetzt sollte das Speichern der Groupbox als Bild eigentlich keine Probleme mehr darstellen:

Delphi-Quellcode:

var
  Bitmap: TBitmap;
  Rect: TRect;
begin
   Rect.Left:= 0;
   Rect.Top:= 0;
   Rect.bottom:= groupbox1.Height;
   Rect.Right:= groupbox1.Width;
   Bitmap := TBitmap.Create;
   Bitmap.SetSize(Groupbox1.Width, Groupbox1.Height);
   Bitmap.Canvas.CopyRect(Rect,TNewGroupBox(groupbox1).Canvas, Rect);
   Bitmap.SaveToFile(filename); //irgendetwas.bmp

...
Bitmap.free;

Geändert von bernerbaer (22. Mai 2015 um 13:45 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: teechartgrafik in groupbox speichern

  Alt 22. Mai 2015, 13:50
Das sieht ja ganz gut aus, aber der Befehl PaintToCanvas wird bei mir nicht übernommen.
Delphi-Quellcode:
BitBlt(GroupBox1.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, Bitmap.Canvas.Handle,
    0, 0, SrcCopy);
Markus Kinzler
  Mit Zitat antworten Zitat
bernerbaer
(Gast)

n/a Beiträge
 
#6

AW: teechartgrafik in groupbox speichern

  Alt 22. Mai 2015, 13:58
Delphi-Quellcode:
BitBlt(GroupBox1.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, Bitmap.Canvas.Handle,
    0, 0, SrcCopy);
Ab welcher Delphiversion ist das Canvas bei der Groupbox public?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: teechartgrafik in groupbox speichern

  Alt 22. Mai 2015, 14:33
Ab keiner. Einfach Klassenhelfer machen (siehe oben) und gut ist
  Mit Zitat antworten Zitat
bernerbaer
(Gast)

n/a Beiträge
 
#8

AW: teechartgrafik in groupbox speichern

  Alt 22. Mai 2015, 14:36
Ab keiner. Einfach Klassenhelfer machen (siehe oben) und gut ist
Das habe ich ja in meinem Beispiel auch gemacht.

Aber: Eigentlich erwarte ich in einem Beispielcode eines Moderators schon entweder Code der funktioniert, oder der Hinweis, wie der Code zum funktionieren gebracht werden kann. So wie der Code da steht, wird jeder Anfänger verzweifeln, wenn er das Beispiel umsetzen möchte.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#9

AW: teechartgrafik in groupbox speichern

  Alt 22. Mai 2015, 14:52
Offensichtliche Witze müssen also ab jetzt gekennzeichnet werden, Moderatoren haben gefälligst funktionierenen Code zu posten und du bist hier der Chef. Alles klar, Boß, dein Wunsch ist mir Befehl Vielleicht sollte man bei derartigen Ansprüchen einfach eine Gebühr einführen: Du willst funktionierenen Code? Kein Problem, was zahlst du?

Mit einer ausgeprägten Verzweiflungsneigung steht man sich beim Lernen selbst im Weg. Letztendlich kommt die Verzeiflung daher, daß man ohne Basiskenntnisse einfach drauflosklickt und die unbehandelte Verzeiflungsneigung dann sofort zuschlägt, wenn's nicht gleich auf Anhieb klappt. Anders ausgedrückt: Anfänger, denen man immer nur funktionierenden Code präsentiert, den sie nicht verstehen, lernen nichts dazu. Copy&Paste <> Umsetzen.

Woher nur kommt diese ausufernde Anspruchshaltung?

Geändert von Perlsau (22. Mai 2015 um 14:57 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: teechartgrafik in groupbox speichern

  Alt 22. Mai 2015, 15:05
Wir haben jetzt schon drei Leute die, im Kern, den selben Code posten. Hartfrid könnte sich darüber freuen. Wir könnten alle das schöne Wetter genießen. Stattdessen fangen wahrscheinlich wieder gleich alle an sich zu bewerfen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:42 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