Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - ActiveX/OCX-Datei drucken


RealTreder - Fr 04.07.03 16:07
Titel: ActiveX/OCX-Datei drucken
Hallo,

ich habe ein ActiveX Steuerelement erstellt, welches ich in ein neues Formular eingebunden habe. Nun lasse ich das komplette Formular(ActiveX + Parentform) über einen Button des Hauptformulars mit der Funktion "print();" drucken. Das Hauptformular wird vernünftig gedruckt. Das OCX jedoch wird nur Teilweise gedruckt. Einige Dinge wie Buttons und Editboxen fehlen.

Nun meine Frage : Welche Möglichkeiten gibt es das ich einen Vernünftigen Ausdruck bekomme ?


dTrace - Sa 05.07.03 19:59
Titel: Re: ActiveX/OCX-Datei drucken
RealTreder hat folgendes geschrieben:
Hallo,

ich habe ein ActiveX Steuerelement erstellt, welches ich in ein neues Formular eingebunden habe. Nun lasse ich das komplette Formular(ActiveX + Parentform) über einen Button des Hauptformulars mit der Funktion "print();" drucken. Das Hauptformular wird vernünftig gedruckt. Das OCX jedoch wird nur Teilweise gedruckt. Einige Dinge wie Buttons und Editboxen fehlen.

Nun meine Frage : Welche Möglichkeiten gibt es das ich einen Vernünftigen Ausdruck bekomme ?


Hi,
erstelle ein Screenshot und drucke dann die Datei :D

dTrace


RealTreder - Sa 05.07.03 21:04
Titel: Tja..
soweit war ich auch schon, aber ich möchte das Ganze schon programmatisch lösen. Microsoft scafft es auch druckbare ocx zu erstellen, daher muß es ja eine Möglichkeit geben.

Ich bitte um weitere Vorschläge !

Vielen dank im Voraus.


dTrace - Sa 05.07.03 21:55
Titel: Re: Tja..
RealTreder hat folgendes geschrieben:
soweit war ich auch schon, aber ich möchte das Ganze schon programmatisch lösen. Microsoft scafft es auch druckbare ocx zu erstellen, daher muß es ja eine Möglichkeit geben.

Ich bitte um weitere Vorschläge !

Vielen dank im Voraus.


Hi,
hier ist der Code um einen Screenshot zu erstellen...


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:
procedure ScreenShotActiveWindow(Bild: TBitMap); 
var 
  c : TCanvas; 
  r, t : TRect; 
  h : THandle; 
begin 
  c := TCanvas.Create; 
  c.Handle := GetWindowDC(GetDesktopWindow); 
  h := GetForeGroundWindow; 
  if h<>0 then 
    GetWindowRect(h, t); 
  try 
    r := Rect(0,0,t.Right-t.left, t.Bottom-t.Top); 
    Bild.Width := t.Right-t.left; 
    Bild.Height := t.Bottom-t.Top; 
    Bild.Canvas.CopyRect(r, c, t); 
  finally 
    ReleaseDC(0, c.handle); 
    c.Free; 
  end; 
end; 
[quote]

du kannst dann durch die Methode [/quote] Bild.savetofile
den Screenshot als BMP Datei speichern...

Nunn kannst du das Bild programmtechnisch drucken!

Gruss: dTrace :wink: