komponente ohne ausgabe zeichnen

Rund um die LCL und andere Komponenten
Antworten
u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

komponente ohne ausgabe zeichnen

Beitrag von u-boot »

Ich versuche eine Form in ein TBitmap zu zeichnen ohne dass eine Ausgabe auf dem Bildschirm stattfindet. Hat jemand ne Idee wie das geht/gehen könnte? (am besten noch etwas was unter win und linux funktioniert)

Ich habs bisher über Handles versucht bin aber neu auf dem Gebiet und hatte keinen Erfolg damit. Man trifft bei GTK2 leider auch oft auf funktionen mit inhalt: Result:=0.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: komponente ohne ausgabe zeichnen

Beitrag von Teekeks »

Meinst du dass du ein Formular (ein Fenster) auf ein TBitmap zeichnen willst oder willst du eigene Formen (Dreiecke oder so) darauf Zeichnen...

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: komponente ohne ausgabe zeichnen

Beitrag von u-boot »

Form im oberen Beitrag soll ein Formular sein. Versteht sich mit allem was so drauf ist. Falls ein Panel oder WinControl sich besser eigenet wärs auch ok
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: komponente ohne ausgabe zeichnen

Beitrag von felix96 »

Code: Alles auswählen

procedure tform1.taskskreenshot1;
var abm: tbitmap;
begin
   abm := form2.getformimage;
   abm.savetofile('test.bmp');
   abm.free;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
   self.hide;
   form2.show;
   application.processmessages;
   taskskreenshot1;
   self.show;
   image1.picture.loadfromfile('test.bmp');
end;
Unter Windows(weiß nicht obs bei Linux auch so ist)
macht das hier n´ Screenshot von Form2
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: komponente ohne ausgabe zeichnen

Beitrag von u-boot »

u-boot hat geschrieben:Ich versuche eine Form in ein TBitmap zu zeichnen ohne dass eine Ausgabe auf dem Bildschirm stattfindet. Hat jemand ne Idee wie das geht/gehen könnte? (am besten noch etwas was unter win und linux funktioniert)

Ich habs bisher über Handles versucht bin aber neu auf dem Gebiet und hatte keinen Erfolg damit. Man trifft bei GTK2 leider auch oft auf funktionen mit inhalt: Result:=0.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: komponente ohne ausgabe zeichnen

Beitrag von theo »

Ich glaube nicht, dass das geht (jedenfalls kaum unter Linux).
Warum willst du das denn? Vllt. gibt es andere Lösungen für dein Vorhaben.

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: komponente ohne ausgabe zeichnen

Beitrag von u-boot »

Ich wollte ner Komponente so ne art (Pseudo-)Transparenz verpassen.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: komponente ohne ausgabe zeichnen

Beitrag von pluto »

Unter KDE4 kann man über eine Anweisung Alpha-Transparent Aktivieren. Ich bin mir nicht mehr so sicher, ob das auch unter KDE3 klappt. Die meisten Komponenten sollten eine Pseude Transparent haben. Du meinst sowas wie beim Label bzw. beim TImage ? Vielleicht reicht es schon aus, die Hintergrund Farbe auf das Parent Control zu stellen. Vielleicht hat die Komponente aber auch einen Canvas und somit könntest du mit Canvas.brush.Style:=bsClear das erreichen. Redest du hier vom Shape ? Da sollt es auf jedenfall gehen, weil du dort direkten Zugriff auf Brush hast.
MFG
Michael Springwald

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: komponente ohne ausgabe zeichnen

Beitrag von u-boot »

nein ich rede von einer eigenen Komponente die von TCustomControl abgeleitet ist ... ist somit also ein TWinControl.
ich wollte das was unter dem Control ist nochmals aufs Wincontrol zeichnen.
Zuletzt geändert von u-boot am So 14. Mär 2010, 01:13, insgesamt 1-mal geändert.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: komponente ohne ausgabe zeichnen

Beitrag von pluto »

Die Ein-zigste Lösung die mir noch einfällt ist folgende: Du nimmst den Vorschlag von "felix96", damit hast du schon mal ein Bild, jetzt musst du "nur" noch den Bereich mit bitbtl oder copyRect(von Canvas) Kopieren, in deine Komponenten. Es ist jedoch recht "Zeitaufwendig"...
MFG
Michael Springwald

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: komponente ohne ausgabe zeichnen

Beitrag von u-boot »

nicht nur langsam.... es geht auch nicht weil ein 'invalidate ' während der paint-procedure vorkommt....
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Antworten