Autor Beitrag
Hack Webber
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 04.02.03 15:31 
Hallo zusammen,

ich versuche verzweifelt mehrere Ebenen zu zeichen. Da ich an einen oszilloskop programm arbeite, würde ich gerne das Raster in der ersten ebene zeichenen und das signal in der zweiten. Wenn ich nun das signal entferne möchte ich einen unversehrten Hintergrund haben ohne ihn neu zeichen zu müßen. Ich möchte aber kein DirectX benutzen.

Kennt jemand eine Möglichkeit?
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Di 04.02.03 16:19 
Hi,

nimm einfach 2 TImage's... :)
Die packste genau übereinander und machst "Transparent = true"

Dann stellste als Transparent Color noch Weiß (oder was du willst) ein, und dann sollte es gehen...

Au'revoir,
Aya

_________________
Aya
I aim for my endless dreams and I know they will come true!
Hack Webber Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 04.02.03 16:40 
Titel: Das geht so nicht
Du meinst
ausblenden Quelltext
1:
Image2.Picture.Bitmap.TransparentColor := clWhite;					

es wird immernoch weiß angezeigt und es flackert wie sau

Moderiert von user profile iconTino: Code-Tags hinzugefügt.
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Di 04.02.03 16:47 
gegen das Flackern mach mal im OnCreate:

ausblenden Quelltext
1:
Form1.DoubleBuffered.=True;					


und für das Transparent...

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  with Image1.Picture.Bitmap do begin
    Transparent:=true;
    TransparentColor:=clWhite;
    Canvas.Brush.Color:=clWhite;
    Canvas.FillRect(Rect(0,0,Image1.Width,Image1.Height));
    Canvas.Pen.Color:=clBlack;
    Canvas.LineTo(100,100);
  end;


Das sollte gehen.

Au'revoir,
Aya~

PS: Du mußt allerdings ein TBitmap geladen haben. mit JPEG etc geht's net

_________________
Aya
I aim for my endless dreams and I know they will come true!
Hack Webber Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 04.02.03 16:58 
Es ist das zweit Image zwar transparent.
Aber wenn ich darauf was zeichne ist das garnicht zu sehn.
Auch nicht gerade gut ;-)
Hack Webber Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 04.02.03 17:00 
mein onCreate sieht so aus :
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.FormCreate(Sender: TObject);
begin
     Form1.DoubleBuffered:=True;
     
     Image1.Picture.Bitmap.Canvas.Brush.Color := clRed;
     Image1.Picture.Bitmap.Canvas.FillRect(Rect(0, 0, Image1.Width, Image1.Height));

     Image2.Picture.Bitmap.Transparent := True;
     Image2.Picture.Bitmap.TransparentColor := clWhite;
     Image2.Picture.Bitmap.Canvas.Brush.Color := clWhite;
     Image2.Picture.Bitmap.Canvas.FillRect(Rect(0,0,Image2.Width,Image2.Height));

     Image2.Picture.Bitmap.Canvas.Brush.Color := clBlack;
     Image2.Picture.Bitmap.Canvas.Rectangle(PosX, 20, PosX + 10, 30);     

     PosX := 20;

     Application.OnIdle := Workloop;
end;


Moderiert von user profile iconTino: Code-Tags hinzugefügt.
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Di 04.02.03 17:08 
Hi,

wie gesagt... du mußt erstmal ein Bitmap laden... :)
Image1.Picture.Bitmap.LoadFromFile()

Ne andere lösung dafür weiß ich leider nich ^^

Au'revoir,
Aya

_________________
Aya
I aim for my endless dreams and I know they will come true!
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Di 04.02.03 17:11 
@Hack Webber: Bitte verwende in Zukunft die Code-Tags um Deinen Sourcecode. Dadurch kann man Deine Postings besser lesen!

Gruß
TINO
Hack Webber Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 04.02.03 17:11 
Ich glaub ich habs. Danke mal. Ich hoffe das das klappt.
Falls jemand noch ne Lösung hat. Bitte melden.
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Mi 05.02.03 11:21 
Hi

ihr habt vergessen der Bitmap zusagen wie gross sie denn nun sein soll!

Tut's einfach so:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
...

Image1.Picture.Bitmap.Canvas.Brush.Color := clRed;
  //Füge das noch ein !!!!
  Image1.Picture.Bitmap.Width:=Image1.Width;
  Image1.Picture.Bitmap.Height:=Image1.Height;
  //-----

  Image2.Picture.Bitmap.Transparent := True;
  Image2.Picture.Bitmap.TransparentColor := clWhite;
  Image2.Picture.Bitmap.Canvas.Brush.Color := clWhite;
  //Füge das noch ein !!!!
  Image2.Picture.Bitmap.Width:=Image2.Width;
  Image2.Picture.Bitmap.Height:=Image2.Height;
  //-----
  //Zum Testen
  Image2.Picture.Bitmap.Canvas.MoveTo(0,0);
  Image2.Picture.Bitmap.Canvas.LineTo(Image2.Width,Image2.Height);
...


Bei mir funktioniert es nur wenn das Image auf transparent gesetzt ist. Sonst wird das automatisch wieder auf transparent = false gesetzt.