AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas auf SpeedButton zeichnen?

Offene Frage von "cYaONE"
Ein Thema von cYaONE · begonnen am 4. Aug 2003 · letzter Beitrag vom 5. Aug 2003
Antwort Antwort
cYaONE

Registriert seit: 18. Mai 2003
Ort: Sand am Main
192 Beiträge
 
Delphi 7 Personal
 
#1

Canvas auf SpeedButton zeichnen?

  Alt 4. Aug 2003, 15:31
Servus,

ist es irgendwie möglich mit Hilfe eines Canvas auf einen SpeedButton zu zeichnen?

Danke schonmal!
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#2

Re: Canvas auf SpeedButton zeichnen?

  Alt 4. Aug 2003, 15:45
SpeedButton.Canvas.CopyRect(Rect, Canvas);
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Canvas auf SpeedButton zeichnen?

  Alt 4. Aug 2003, 16:58
Du kannst dir eine temporäre Bitmap erzeugen, darauf herumzeichnen und diese dann dem SpeedButton als Glyph zuordnen.
Delphi-Quellcode:
var
  bmp: TBitmap;
begin
  try
    bmp := TBitmap.Create;

    { Hier kannst Du nun auf dem Bitmap herumzeichnen... }

    SpeedButton1.Glyph.Assign(bmp);
  finally
    bmp.Free;
  end;
end;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
cYaONE

Registriert seit: 18. Mai 2003
Ort: Sand am Main
192 Beiträge
 
Delphi 7 Personal
 
#4

Re: Canvas auf SpeedButton zeichnen?

  Alt 5. Aug 2003, 15:36
Danke erstmal!
Ein weiteres Problem: Warum funktioniert das hier nicht?

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
  var
  bmp: TBitmap;
begin
  try
    bmp := TBitmap.Create;

    bmp.Canvas.Rectangle(0, 0, 20, 20);
    { Hier kannst Du nun auf dem Bitmap herumzeichnen... }

    SpeedButton1.Glyph.Assign(bmp);
  finally
    bmp.Free;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#5

Re: Canvas auf SpeedButton zeichnen?

  Alt 5. Aug 2003, 17:51
Welche .Width und .Height hat BMP ?
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Canvas auf SpeedButton zeichnen?

  Alt 5. Aug 2003, 18:19
Zitat von negaH:
Welche .Width und .Height hat BMP ?
Du solltest das Bitmap ca. 16x16 Pixel gross machen...
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
cYaONE

Registriert seit: 18. Mai 2003
Ort: Sand am Main
192 Beiträge
 
Delphi 7 Personal
 
#7

Re: Canvas auf SpeedButton zeichnen?

  Alt 5. Aug 2003, 20:21
Is das nötig?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Canvas auf SpeedButton zeichnen?

  Alt 5. Aug 2003, 21:05
Zitat von FriFra:
Du solltest das Bitmap ca. 16x16 Pixel gross machen...
Würde ich so generell nicht sagen. Was ist wenn sein Button 20x46 Pixel groß ist?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#9

Re: Canvas auf SpeedButton zeichnen?

  Alt 5. Aug 2003, 22:47
Also im obigen Code wird Rectangle(0, 0, 20, 20), das rechteck soll also 20x20 Pixel groß werden .

Nun frage ich dich nochmal wie groß der Canvas der BMP ist ?

Da du das im Source nicht festgelegt hast ist die Bitmap BMP 0 Pixel breit und 0 Pixel hoch. Wie soll darin ein Rechteck mit 20x20 reinpassen. Das nichts angezeigt wird ist also logsich. Änders ab in

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
  var
  bmp: TBitmap;
begin
  try
    bmp := TBitmap.Create;
    bmp.Width := SpeedButton1.Width -2;
    bmp.Height := SpeedButton1.Height -2;
    
    bmp.Canvas.Rectangle(0, 0, 20, 20);
    { Hier kannst Du nun auf dem Bitmap herumzeichnen... }

    SpeedButton1.Glyph.Assign(bmp);
  finally
    bmp.Free;
  end;
end;
-2 für den 1 Pixel breiten Rahmen des Speedbuttons.

Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz