Entwickler-Ecke

Multimedia / Grafik - Canvers = Bild Größe


mimi - Mi 20.11.02 21:40
Titel: Canvers = Bild Größe
Hallo,
ich habe volgenden code geschrieben:

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:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
var
  i,x:Integer;
  e:array[0..2] of integer;
  menus:array [0..2,0..4] of String;
  BitMap1 : TBitMap;
begin
  BitMap1 := TBitMap.Create;
  menus[0,0]:='Spiel Starten';
  menus[0,1]:='Einstellungen';
  menus[0,2]:='Hilfe';
  menus[0,3]:='Beenden';

  menus[1,0]:='Spiel Starten';
  menus[1,1]:='Level Laden';
  menus[1,2]:='Level Editor';
  menus[1,3]:='Zurück';

  menus[2,0]:='Level Speichern';
  menus[2,1]:='Level Laden';
  menus[2,2]:='Einstellungen';
  menus[2,3]:='Zurück zum Hauptmenu';
  menus[2,4]:='Zurück';

  e[0]:=3; e[1]:=3; e[2]:=4;
  for i:=0 to 2 do begin
    for x:=0 to e[i] do begin
      if CheckBox1.Checked = True then begin
        BitMap1.Canvas.Font:=FontDialog2.Font;
        BitMap1.Canvas.TextOut(0,0,menus[i,x]);
        BitMap1.SaveToFile(BUDirectoryBox1.Directory + '\s_' + IntToStr(i) + '_' + intToStr(x) + '.bmp' )
      end
      else begin
        BitMap1.Height:=30; BitMap1.Width:=FontDialog2.Font.Size + StrLen(PChar(menus[i,x])) ;
        BitMap1.Canvas.Font:=FontDialog1.Font;
        BitMap1.Canvas.TextOut(0,0,menus[i,x]);
        BitMap1.SaveToFile(BUDirectoryBox1.Directory + '\u_' + IntToStr(i) + '_' + intToStr(x) + '.bmp' )
      end;
    end;
  end;

nunu möchte ich gerne das die große der BMP angepasst wird also automatisch wie geht das ????

MFG
mimi


Anonymous - Do 21.11.02 20:42

Immer diese Ratespiele :evil: Du solltest vielleicht schreiben was du willst und nicht einfach nur

Zitat:
nunu möchte ich gerne das die große der BMP angepasst wird also automatisch wie geht das ????


An was? Sollen die Leute raten was du meinst? Canvars ist die Bildgröße. Nachdem ich also erst deinen Code studieren mußte um zu raten was du willst, glaube ich zu denken, daß die Schrift weggeschnitten wird. Wie gesagt, das glaube ich nur.

Es gibt:

Canvas.TextWidth

und

Canvas.TextHeight

Daraus kannst du berechnen wie viel Pixel breit der Text sein wird.

Also kannst du abfragen


Quelltext
1:
2:
3:
4:
with Bmp do begin
  if Canvas.TextWidth('Ein Text') > Width then Width := Canvas.TextWidth('Ein Text'); 
  //Height := Height + Canvas.TextHeight(#32);
end;


mimi - Do 21.11.02 21:01

DANKE FÜR DEINE ANTWORT: Es hat funktioniert was ich wollte;)

Ich habe ja versucht mich klar auszudrücken, dahrer habe ich auch den code rein kopiert,aber mir fehtl sowas immer schwer, naja egal,
aufjedenfall danke für deine HILFE

MFG
mimi


Delete - Fr 22.11.02 02:22

Gehört jetzt nicht zum Thema, aber ein kleiner persönlicher Rat von mir:

Du solltest eventuell dafür Sorge tragen, dass am 24.12. ein Duden bei dir unter dem Weihnachtsbaum liegt. :wink:

Rechtschreibfehler machen immer einen schlechten Eindruck, nicht nur in einer Bewerbung. Auch wenn es beim Posten schnell gehen muß, mit etwas Ruhe tippen und das Posting macht schon einen viel besseren Eindruck. Desweiteren ist es dann auch einfacher zu lesen und somit verständlicher.

PS: Jeder macht _mal_ Tippfehler (Für meine Tutorials habe ich Gott sei dank einen guten Lektor), aber bei dir war ja fast jedes zweite Wort falsch.


mimi - Fr 29.11.02 15:14

ich habe schon ein "duden", aber danke für deinen tipp,ich werde größer Fragen jetzt offline schreiben und dann ins Frum kopieren das ist viel besser !

MFG
mimi


Delete - Fr 29.11.02 16:05

So extrem muß es nicht sein. Einfach nur mal noch mal durchlesen, was man geschrieben hat.


mimi - Fr 29.11.02 16:48

naja mal sehen wie die nächsten beiträge werde von mir :P :P