AGB  ·  Datenschutz  ·  Impressum  







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

z.B. roundrect und das nötige handle

Ein Thema von Haegar · begonnen am 12. Nov 2003 · letzter Beitrag vom 12. Nov 2003
Antwort Antwort
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#1

z.B. roundrect und das nötige handle

  Alt 12. Nov 2003, 15:03
hi, ich hab aus spass einfach mal nen ladebalken simpuliert, sprich mit timer einfach ne varible hochzählen (quasi den fortschritt) und dann den balken inner paintbox malen lassen, funktioniert alles super, aber nur solange ich nen normales rechteck nehme (drect:=rect(x1,y1,x1+f,y2))!
wenn ich beispielsweise roundrect nehme dann möchte er ja noch zusätzlich ein handle übergeben haben.
da dachte ich mit dem paintbox-canvas-handle is das eröledigt, aber da kommt dann immer ne fehlermeldung.

Delphi-Quellcode:
procedure Tform1.ladebalken(f:integer);
var drect:Trect;
begin
 drect:=roundrect(pb.Canvas.Handle,50,50,50+f,70,10,10);
 pb.Canvas.StretchDraw(drect,bild.Picture.Bitmap);
end;
tja da kommt die fehlermeldung:
Incompatible types: TRect and LongBool

was stimmt denn da nicht?

gruss haegar
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#2

Re: z.B. roundrect und das nötige handle

  Alt 12. Nov 2003, 15:25
Das kann auch nicht gehen.
"Canvas.StretchDraw(Rect, Bitmap);" - Rect gibt die Ecken für das Zeichnen und nicht die Form an.

Es ist aber möglich den Zeichnenbereich für alle Zeichenfunktionen einzuschrenken:
Delphi-Quellcode:
Procedure TForm1.ladebalken(f: Integer);

Var RHandle: HRgn;

Begin
  RHandle := CreateRoundRectRgn(50, 50, 50 + f, 70, 10, 10);
  SelectObject(pb.Canvas.Handle, RHandle);
  DeleteObject(RHandle);

  pb.Canvas.StretchDraw(Rect(50, 50, 50 + f, 70), bild.Picture.BitMap);
End;
Notfalls danach wieder den gesammten Bereich freigeben:
Delphi-Quellcode:
Procedure TForm1.ladebalken(f: Integer);

Var RHandle: HRgn;

Begin
  RHandle := CreateRoundRectRgn(50, 50, 50 + f, 70, 10, 10);
  SelectObject(pb.Canvas.Handle, RHandle);
  DeleteObject(RHandle);

  pb.Canvas.StretchDraw(Rect(50, 50, 50 + f, 70), bild.Picture.BitMap);

  RHandle := CreateRectRgn(0, 0, pb.Width, pb.Height);
  SelectObject(pb.Canvas.Handle, RHandle);
  DeleteObject(RHandle);

  ...

End;

Eine Demo von mir, für's Clipping, findest du dort Durchsichtiges Fenster (nicht Alpha Blend)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#3

Re: z.B. roundrect und das nötige handle

  Alt 12. Nov 2003, 15:31
jetzt seh ich gar nix mehr!!??


hab den ersten teil so übernommen von dir.

[edit=Daniel B]Doppelpost gelöscht. Mfg, Daniel B[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#4

Re: z.B. roundrect und das nötige handle

  Alt 12. Nov 2003, 15:38
Bereich erstellen:RHandle := CreateRoundRectRgn(50, 50, 50 + f, 70, 10, 10); Kopie an Canvas übergeben:SelectObject(pb.Canvas.Handle, RHandle); Objekt wieder freigeben:DeleteObject(RHandle);
Im 3. Post auf der Seite ist das Demo als Download (Durchsichtiges Fenster)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#5

Re: z.B. roundrect und das nötige handle

  Alt 12. Nov 2003, 15:41
ja ist ja schön und gut, aber ich seh nix. sieht nun wie folgt aus:

Delphi-Quellcode:
procedure Tform1.ladebalken(f:integer);
var RHandle:HRgn;
begin
  RHandle := CreateRoundRectRgn(50, 50, 50 + f, 70, 10, 10);
  SelectObject(pb.Canvas.Handle, RHandle);
  pb.Canvas.StretchDraw(Rect(50, 50, 50 + f, 70), bild.Picture.BitMap);
  DeleteObject(RHandle);
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#6

Re: z.B. roundrect und das nötige handle

  Alt 12. Nov 2003, 15:54
Also bei mir geht's.
Angehängte Dateien
Dateityp: exe clipping2.exe (113,3 KB, 13x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 06:48 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