Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#8

Re: Vorschau-Programm - welche Technik?

  Alt 12. Nov 2005, 17:44
Ich denke, du meinst diese Funktion:
Zitat:
Color32ToRGB

Delphi-Quellcode:
procedure Color32ToRGB(Color32: TColor32; var R, G, B: Byte);

procedure Color32ToRGBA(Color32: TColor32; var R, G, B, A: Byte);
Both procedures split the Color32 parameter up into their respective components.

These procedures are provided for convenience only. Use direct conversion in performance-critical parts of your code:

Alpha := Color32 shr 24;

Red := (Color32 and $00FF0000) shr 16;

Green := (Color32 and $0000FF00) shr 8;

Blue := Color32 and $000000FF;

Bit-Shifting ist also schneller, da du dir einen Funktionsaufruf sparst (wobei du dank D2005 auch die Inline-Methoden Red/Green/BlueComponent benutzen kannst, die sollten dann gleich schnell sein).
Eine weitere Möglichkeit ist der Zugriff über Delphi-Referenz durchsuchenTColor32Entry:
Delphi-Quellcode:
var
  C: TColor32;
  Red: Byte;
begin
  Red := TColor32Entry(C).R;
end;
Was nun am Schnellsten ist, kann ich dir nicht sagen, da müsstest du unsere Assembler-Experten fragen ^^ .

Zitat:
Also ich glaube ich weiß jetzt was mein Fehler war, den ich die ganze Zeit gemacht habe. Ich zeige das Bitmap in das ich schreibe (bzw. male) die ganze Zeit an. So wie ich dich verstanden habe sollte ich besser ein Bitmap im Hintergrund erstellen und da rein zeichnen und dann dieses Bitmap in ein Bitmap kopieren das angezeigt wird.
Wenn du TImage32 benutzt, musst du dich darum nicht mehr kümmern, das benutzt schon ein OffScreenBitmap.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat