AGB  ·  Datenschutz  ·  Impressum  







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

Panels

Ein Thema von ConTaCt · begonnen am 19. Apr 2007 · letzter Beitrag vom 21. Apr 2007
Antwort Antwort
ConTaCt

Registriert seit: 22. Feb 2007
37 Beiträge
 
#1

Panels

  Alt 19. Apr 2007, 22:44
hi


ich hab hier mal etwas programmiert wo man panels braucht!

meine frage ist nur, da ich diese rund haben will!

Wie macht man Panels rund????
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: Panels

  Alt 20. Apr 2007, 00:53
Moin!

MSDN-Library durchsuchenCreateRoundRectRGN und dann MSDN-Library durchsuchenSetWindowRGN, mehr dazu: Hier im Forum suchenSetWindowRGN
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#3

Re: Panels

  Alt 20. Apr 2007, 09:23
Hah, das ist ja witzig. Sowas hab ich schon lange gesucht und dann mit einem TShape realisiert. Wenn ich mir die Lösung ansehe mit CreateRoundRectRGN ist das ja viel cooler.

Ein Beispiel mit dem Panel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a:hrgn;
begin
  Form1.Color:=clOlive; //Farbig, damit man den Unterschied sieht
  Panel1.Color:=clTeal;
  a:=CreateRoundRectRgn(0,0,90,90,20,20);
  setwindowrgn(panel1.Handle,a,true);
end;
Achim
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: Panels

  Alt 20. Apr 2007, 17:13
Bitte das Freigeben der Region(en) nicht vergessen da es Speicher belegt! Delphi-Referenz durchsuchenDeleteObject

Delphi-Quellcode:
var rgn: hrgn;

procedure TForm1.FormCreate(Sender: TObject);
begin
  rgn := CreateRoundRectRgn(0,0, panel1.Width, panel1.Height, 20, 20);
  SetWindowRgn(panel1.Handle, rgn, TRUE);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  DeleteObject(rgn);
end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Panels

  Alt 20. Apr 2007, 17:49
Hallo Matti,

Zitat:
Bitte das Freigeben der Region(en) nicht vergessen
normalerweise ja, in diesem Fall aber nicht:

Zitat von Microsoft PSDK:
After a successful call to SetWindowRgn, the system owns the region specified by the region handle hRgn. The system does not make a copy of the region. Thus, you should not make any further function calls with this region handle. In particular, do not delete this region handle. The system deletes the region handle when it no longer needed.
Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Panels

  Alt 20. Apr 2007, 18:13
Ich habe feststellen müssen das dem nicht immer so ist.
Im meiner D6 Hilfe steht das nicht im MSDN aber schon.

Allerdings find ich es sauberer so... Hatt Du wat Created denn mach's och wieder free.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Panels

  Alt 20. Apr 2007, 18:58
Hast du den Rückgabewert von DeleteObject schon einmal überprüft? Raymond Chen zitiert in einer Antwort ebenfalls das PSDK - und der sollte es eigentlich wissen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#8

Re: Panels

  Alt 20. Apr 2007, 19:58
Zitat von turboPASCAL:
Ich habe feststellen müssen das dem nicht immer so ist.
Im meiner D6 Hilfe steht das nicht im MSDN aber schon.

Allerdings find ich es sauberer so... Hatt Du wat Created denn mach's och wieder free.
Das steht in meiner D2, D5 und C++ Hilfe so drin, das man die Finger weg tun soll.
Nur in der D1 Hilfe stehts nicht, wenn ich bloß wüste warum

Ich habe mal die Erfahrung gemacht, das sich das Programm nach einiger Zeit aufhängte, wenn man regelmäßig die Regions ändert und diese löscht...
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#9

Re: Panels

  Alt 21. Apr 2007, 07:22
Echt witzig, über was für abgefahrene Dinge ihr diskutiert bei solch simplen Fragen
Achim
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#10

Re: Panels

  Alt 21. Apr 2007, 15:07
Zitat von Aike:
Echt witzig, über was für abgefahrene Dinge ihr diskutiert bei solch simplen Fragen
Äh, weil es bei vielen "modernen" Programieren nicht mehr in den Sinn kommt ein Programm
so zu Bauen das es sein reservierten Speicher für ... wieder frei gibt oder die Bitmaps
für ein ... alle 2 min neu von der Festplatte zu laden.

Nein, das gehört schon dazu.


Zitat von Sunlight7:
... Ich habe mal die Erfahrung gemacht, das sich das Programm nach einiger Zeit aufhängte, wenn man regelmäßig die Regions ändert und diese löscht...
Japp, so ist es auch mir ergangen. Ich lösche die Region nur noch zum Programende.
Das liegt aber, so glaube ich am Betriebssystem.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  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 15:38 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