Einzelnen Beitrag anzeigen

Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#1

TabSheet Hintergrund zeichen

  Alt 9. Feb 2005, 17:41
Ich habe es jetzt mittels zwei Varianten probiert, einen Hintergrund auf meine TabSheets zu kriegen (JvPageControl)

BG_CONTENT_LINE = selbst wenn man BorderWidth usw. ausstellt, hat man immernoch einen 2px hohen Rand oben bei der PageControl

BG_CONTENT = ein einfaches Hintergrundbild

1.) per Button - funktioniert aber die Objekte werden übermalt
2.) per OwnerDraw - funktioniert erst gar nicht (OwnerDraw ist aktiviert)

Delphi-Quellcode:
procedure Tf_USBLOCK.jvPagesDrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
  var jpeg : TJpegImage;
      sFile : String;
begin

  // PaintPageControl
  jpeg := TJpegImage.Create;
  with jpeg do begin
    Canvas.Handle := GetDC(jvPages.Handle);
    sFile := ExtractFilePath(Application.ExeName) + 'Images\BG_CONTENT_LINE.jpg';
    LoadFromFile(sFile);
    try
      Canvas.Draw(0,0, jpeg);
    finally
      ReleaseDC(Canvas.Handle, jvPages.Handle);
      Free;
    end;
  end;

  // PaintTab
  jpeg := TJpegImage.Create;
  with jpeg do begin
    Canvas.Handle := GetDC(jvPages.ActivePage.Handle);
    sFile := ExtractFilePath(Application.ExeName) + 'Images\BG_CONTENT.jpg';
    LoadFromFile(sFile);
    try
      Canvas.Draw(0,0, jpeg);
    finally
      ReleaseDC(Canvas.Handle, jvPages.ActivePage.Handle);
      Free;
    end;
  end;
end;
Meine Frage ist also, wie kann ich verhindern, das die Objekte übermalt werden?
Christian Reber
  Mit Zitat antworten Zitat