Autor Beitrag
Tanrek
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Di 19.07.05 09:20 
so, ich hätt da mal 2 kleine probleme
1:
ich möchte in ein image etwas reinschreiben... das geht ja mit Image1.Canvas.TextOut
ich habe jedoch mehrere images, wo gleichzeitig was reingeschrieben werden soll und auch noch der text vorher aus einer .ini datei gelesen wird.

hier mal der quelltext:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Image1.Canvas.TextOut(0,0,ReadString('Names',Switch + '1''FEHLER'));
Image2.Canvas.TextOut(0,0,ReadString('Names',Switch + '2''FEHLER'));
Image3.Canvas.TextOut(0,0,ReadString('Names',Switch + '3''FEHLER'));
//....

das schlimme dabei ist, dass man im programm dann wunderbar sieht, wie die images einzeln beschrieben werden... gibt es da vielleicht eine scnellere möglichkeit?

2:
bei manchen images ist der hintergrund schwarz... wie kann ich meine Farbe vom canvas.textout ändern, so das man die schrift lesen kann

mfg
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Di 19.07.05 11:44 
1) Erstmal alles auf ein Canvas packen und dann das Bild as is auf das Form packen. Das wird dir jedoch deine bisherige Planung zerstören ;) Ansonsten sollte es aber auch so wie du es jetzt machst nicht allzu lange dauern. Wie viele Images hast du denn?

2) TextOut arbeitet meines Wissens immer mit einem Hintergrund. Ich würde den Text vorher auf ein anderes Canvas packen (z.B. temporäres Bitmap) und dieses dann auf das Bild raufkopieren. Mittels CopyMode kannst du dabei regeln, wie der Hintergrund übernommen wird.

Gruß,
maxk

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Tanrek Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Di 19.07.05 11:52 
zu 1:
ich habe 8 Images... und das sollte halt so schnell wie möglich beschrieben werden... jetzt braucht er so ungefähr ne halbe sec... was aber noch zu lang dauert :( ich meine... theoretisch isses nicht wichtig, aber es sieht halt net so toll aus, wenn man die schrift erscheinen sieht :wink:

zu 2:
öhm... um ehrlich zu sein versteh ich das net :oops: könntest du mir das vielleicht an einem beispiel erklären???

mfg
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Di 19.07.05 12:00 
2. mal ganz auf die Schnelle:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
const Text='Hello world';
begin
 with TBitmap.Create do try
  Canvas.Font.Assign(Image1.Canvas.Font);
  Width:=Canvas.TextWidth(Text);
  Height:=Canvas.TextHeight(Text);

  Canvas.Brush.Color:=clBlack;
  Canvas.Font.Color:=clWhite;
  Canvas.TextOut(0,0,'Hello world');

  Image1.Canvas.CopyMode:=SrcPaint;
  Image1.Canvas.CopyRect(Rect(100,100,100+Width,100+Height),Canvas,Rect(0,0,Width,Height));
 finally
  Free;
 end;


Gruß,
maxk

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Tanrek Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Di 19.07.05 12:09 
jo, danke :D
jetzt weiß ich endlich, was ich klicke 8)

mfg tanrek