![]() |
Wie Controls disabled zeichnen
Hallo zusammen
ich habe mir einen eigenen Button gebaut der von TCustomControl abgeleitet ist. In Paint zeichen ich dann Farben, Caption oder Picture auf den Canvas. Ich finde leider nichts wie ich das Teil disabled zeichnen kann. Hat jemnd ne Idee wie das geht. :gruebel: Grüsse Udo |
Re: Wie Controls disabled zeichnen
ich versteh dich nicht. Du zeichnest das alles selbst aber weißt nicht wie du es "disabled" zeichnen sollst? Du als derjenige der zeichnet bist doch derjenige der bestimmt wie es aussieht :gruebel:
|
Re: Wie Controls disabled zeichnen
Ich denke mal genau da liegt der Denkfehler, wenn du selbst ein Control zeichnest,
musst du auch selbst dafür sorgen, dass es "disabled" dann anders aussieht. //edit: Sprich änder die Schriftfarbe und sorg dafür, dass der Knopf nicht drückbar ist (visuell). gruß |
Re: Wie Controls disabled zeichnen
Hallo
Da war ich wohl etwas missverständlich. Mir ist schon klar dass ichs selbst tun muss. Ich dachte mehr an ne Grafikroutine. Ich nehme mal an Caption muss ich in Color clGrayText(oder so) zeichnen, aber wie geht das mit einem Pic. Wie lass ich ein Bitmap(kann auch png, jpg sein) disabled aussehen? Cavas.DrawDisabled(x, y, FPicture.Graphic) sozusagen. gruss |
Re: Wie Controls disabled zeichnen
Text mit einer hellen Farbe (Hellgrau oder sogar weiss) in fett malen und danach das ganze nochmal in einer dunkleren Graufarbe (clGray) und nicht mehr fett, aber x und y um je einen pixel erhöht.
|
Re: Wie Controls disabled zeichnen
Ich glaube er will ein Bild (TBitmap) sozusagen "die Farbe entziehen", also es ausgrauen.
Ich würde 2 Bitmaps nehmen, 1x enabled und 1x disabled. (Oder auch 2 nebeneinander. Guck dir mal TBitBtn an. ->Glyph und GlyphCount oder so). |
Re: Wie Controls disabled zeichnen
Also hab dir mal was geschrieben was dir vielleicht helfen könnte.
Delphi-Quellcode:
Wobei sollte/muss man eigentlich p Disposen? Dann müsste man das noch einbauen aber ansonsten gehts.
procedure MakeGray(ABmp: TBitmap);
procedure SetGray(var x: PRGBQuad); var mitte: Byte; begin mitte := (x^.rgbBlue + x^.rgbGreen + x^.rgbRed) div 3; x^.rgbBlue := mitte; x^.rgbGreen := mitte; x^.rgbRed := mitte; end; var i,j: Integer; x: PRGBQuad; begin ABmp.PixelFormat := pf32Bit; for i:= 0 to ABmp.Height-1 do begin x := ABmp.ScanLine[i]; for j:= 0 to ABmp.Width-1 do begin SetGray(x); inc(x); end; end; ABmp.PixelFormat := pf24Bit; ABmp.Modified := true; end; // Verwendung MakeGray(Image1.Picture.Bitmap); Natürlich nicht. Man will ja nicht die Bitmapdaten freigeben :roll: Gruß Neutral General |
Re: Wie Controls disabled zeichnen
Hallo,
der Code zeichnet Text und ein Bitmap "disabled" auf das Canvas der Form:
Delphi-Quellcode:
var s : String;
bmp : TBitmap; begin s := 'Hallo'; DrawState(Canvas.Handle, Canvas.Brush.Handle, nil, Integer(s), 0, 10,10,0,0,DST_TEXT or DSS_DISABLED); bmp := TBitmap.Create; try bmp.LoadFromFile('C:\Temp\Image.bmp'); DrawState(Canvas.Handle, Canvas.Brush.Handle, nil, bmp.Handle, 0, 50,10,0,0,DST_BITMAP or DSS_DISABLED); finally bmp.Free; end; |
Re: Wie Controls disabled zeichnen
Ich danke euch :thumb:
DrawState hab ich gesucht. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz