Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Combobox Text geht nicht ins grafische Clipboard!??? (https://www.delphipraxis.net/168899-combobox-text-geht-nicht-ins-grafische-clipboard.html)

iphi 17. Jun 2012 10:47

Combobox Text geht nicht ins grafische Clipboard!???
 
Hallo,

mein Programm soll sein eigenes Hauptfenster als Grafik ins Clipboard speichern.
Das ganze mache ich so:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Clipbrd;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ComboBox1: TComboBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Bitmap: TBitMap;
begin
  try
    Bitmap:=GetFormImage;
    Clipboard.Assign(Bitmap);
  finally
    FreeAndNil(BitMap);
  end;
end;

end.
Das funktioniert im Prinzip auch, aber der Text, der in der Combobox gerade dargestellt wird, wird in der Grafik nicht dargestellt. Die Combobox in der Grafik ist einfach leer!???

Wie kann ich das reparieren?

Ich benutze Delphi7 Personal

Nachtrag:
Ich glaube ich habs:

Delphi-Quellcode:
ComboBox1.Style:=csDropdownList;
scheint das Problem zu beheben.

Helmi 17. Jun 2012 15:40

AW: Combobox Text geht nicht ins grafische Clipboard!???
 
Hallo,

ich wollte, aus Einfachheit, auch mal "GetFormImage" nutzen, aber das zeigte mir nicht alles an.
(das Problem war, dass ich Fenster ext. Programme in ein Panel eingebettet hab und mittels "GetFormImage" dies nicht erkannt wurde und somit im Bitmap die Panels leer waren).

Probier mal folgendes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   Bitmap : TBitMap;
   i_Width : Integer;
   i_Height: Integer;

begin
  //Bitmap erzeugen
  Bitmap := TBitmap.Create;

  try
    //Höhe und Breite des Client-Bereiches ermitteln
    i_Width := ClientWidth;    //oder Width;
    i_Height := ClientHeight;   //oder Height;

    //Rect des Clientbereiches definieren
    BitmapRect := Rect(0, 0, i_Width, i_Height);

    //Bitmap-Größe angeben
    Bitmap.Width := i_Width;
    Bitmap.Height := i_Height;

    //Bild-Bereich in Bitmap kopieren
    Bitmap.Canvas.CopyRect(BitmapRect, Canvas, BitmapRect);

    Clipboard.Assign(Bitmap);
  finally
    FreeAndNil(BitMap);
  end;
end;

iphi 19. Jun 2012 15:17

AW: Combobox Text geht nicht ins grafische Clipboard!???
 
Cool, bis auf die fehlende Deklaration
Delphi-Quellcode:
BitmapRect: TRect;
funktioniert Dein Code prima!
Danke!

Helmi 19. Jun 2012 15:45

AW: Combobox Text geht nicht ins grafische Clipboard!???
 
Zitat:

Zitat von iphi (Beitrag 1171604)
Cool, bis auf die fehlende Deklaration
Delphi-Quellcode:
BitmapRect: TRect;
funktioniert Dein Code prima!
Danke!

Auf Grund von Sparmaßnahmen wurde es wegrationalisiert :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:49 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