AGB  ·  Datenschutz  ·  Impressum  







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

Runde Schaltflächen

Ein Thema von FBrust · begonnen am 26. Jan 2003 · letzter Beitrag vom 27. Jan 2003
Antwort Antwort
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#1

Runde Schaltflächen

  Alt 26. Jan 2003, 19:48
Hallo,

kennt jemand eine Komponente, mit der man seinem Programm (z. B.) runde Schaltflächen verpassen kann?

Grüsse
Frank
  Mit Zitat antworten Zitat
fedderle

Registriert seit: 3. Jan 2003
Ort: Reiskirchen
51 Beiträge
 
#2
  Alt 26. Jan 2003, 19:56
So spontan würde ich sagen, das man das sehr gut mit Images machen kann. Einfach Images erstellen, die so aussehen wie die gewünschte Schaltfläche und die Hintergrundfarbe des Images als unsichtbar einstellen!

Hab das selber noch nie gemacht. Aber es Müsste so gehen! Gibt sicher auch noch bessere Lösungen! Bin selbst noch ANfänger in Delphi!

Steffen!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3
  Alt 26. Jan 2003, 19:57
Hi,

im alten Delphi-Forum war darüber was zu finden. Gehen tut es schon. Vielleicht erinnert sich sonst noch jemand daran.

Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4
  Alt 26. Jan 2003, 19:59
Also es ging ziemlich einfach, nicht so kompliziert, wie Fedderle schreibt. Leider weiß ich trotzdem nicht, wie es genau ging.

Gruß
Hansa
  Mit Zitat antworten Zitat
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#5
  Alt 26. Jan 2003, 20:02
Hi Frank, versuch mal das:

Delphi-Quellcode:
var
  rgn : hRgn;
begin
  rgn := CreateEllipticRgn(10,10,Button1.Width,Button1.Height);
  SetWindowRgn(Button1.Handle,rgn,true)
Gruß, Sebastian
  Mit Zitat antworten Zitat
fedderle

Registriert seit: 3. Jan 2003
Ort: Reiskirchen
51 Beiträge
 
#6
  Alt 27. Jan 2003, 12:46
Ok! Gebe zu. Da war meine Methode doch viel komplizierter.
Geht das auch mit der ganzen Form. Also, das ich ne Runde Form erstellen kann?

Steffen!
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#7
  Alt 27. Jan 2003, 21:45
Hallo Leute,

vielen Dank für Eure Antworten.

Ich hab in der Zwischenzeit etwas rumprobiert, aber nichts davon gefällt mir.

Ich hab noch einen Komponentensatz für Flat-Buttons etc., dann werd ich eben den nehmen.

Grüsse
Frank
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#8
  Alt 27. Jan 2003, 21:51
Zitat von fedderle:
Geht das auch mit der ganzen Form. Also, das ich ne Runde Form erstellen kann?
Siehe Library: WinApi, der erste und der vierte Beitrag von mir.

Noch ein paar möglichkeiten:

Explosion:
Delphi-Quellcode:
Var
     P:Array[0..24] of TPoint;
     CLFRgn:HRgn;
Begin
     P[0]:=Point(0,0);
     P[1]:=Point(50,Form1.Height div 6);
     P[2]:=Point(0,2*(Form1.Height div 6));
     P[3]:=Point(50,3*(Form1.Height div 6));
     P[4]:=Point(0,4*(Form1.Height div 6));
     P[5]:=Point(50,5*(Form1.Height div 6));
     P[6]:=Point(0,Form1.Height);
     P[7]:=Point(Form1.Width div 6,Form1.Height -50);
     P[8]:=Point(2*(Form1.Width div 6),Form1.Height);
     P[9]:=Point(3 *(Form1.Width div 6),Form1.Height -50);
     P[10]:=Point(4*(Form1.Width div 6),Form1.Height);
     P[11]:=Point(5 *(Form1.Width div 6),Form1.Height -50);
     P[12]:=Point(Form1.Width,Form1.Height);
     P[13]:=Point(Form1.Width-50,5*(Form1.Height div 6));
     P[14]:=Point(Form1.Width,4*(Form1.Height div 6));
     P[15]:=Point(Form1.Width-50,3*(Form1.Height div 6));
     P[16]:=Point(Form1.Width,2*(Form1.Height div 6));
     P[17]:=Point(Form1.Width-50,Form1.Height div 6);
     P[18]:=Point(Form1.Width,0);
     P[19]:=Point(5*(Form1.Width div 6),50);
     P[20]:=Point(4*(Form1.Width div 6),0);
     P[21]:=Point(3*(Form1.Width div 6),50);
     P[22]:=Point(2*(Form1.Width div 6),0);
     P[23]:=Point(Form1.Width div 6,50);
     P[24]:=Point(0,0);
     CLFRgn:=CreatePolygonRgn(P,24,Alternate);
     SetWindowRgn(Form1.Handle,CLFRgn,True);
End;
Schatteneffekt:
Delphi-Quellcode:
Var
     CLFRgn:HRgn;
     CLFRgnTmp:HRgn;
Begin
     CLFRgn:=CreateRectRgn(0,0,Form1.Width-10,Form1.Height-10);
     CLFRgnTmp:=CreateRectRgn(10,10,Form1.Width,Form1.Height);
     CombineRgn(CLFRgn,CLFRgn,CLFRgnTmp,RGN_OR);
     SetWindowRgn(Form1.Handle,CLFRgn,True);
End;
Schöne Titelleiste:
Delphi-Quellcode:
Var
     CLFRgn:HRgn;
     CLFRgnTmp:HRgn;
Begin
     CLFRgn:=CreateRectRgn(0,0,Form1.Width,Form1.Height);
     CLFRgnTmp:=CreateRectRgn(10,10,Form1.Width-10,30);
     CombineRgn(CLFRgn,CLFRgn,CLFRgnTmp,RGN_DIFF);
     CLFRgnTmp:=CreateRectRgn((Form1.Width div 2)-5,10,(Form1.Width div 2)+10,30);
     CombineRgn(CLFRgn,CLFRgn,CLFRgnTmp,RGN_OR);
     CLFRgnTmp:=CreateRectRgn(10,18,Form1.Width-10,22);
     CombineRgn(CLFRgn,CLFRgn,CLFRgnTmp,RGN_OR);
     CLFRgnTmp:=CreateRectRgn(12,12,Form1.Width-12,28);
     CombineRgn(CLFRgn,CLFRgn,CLFRgnTmp,RGN_OR);
     SetWindowRgn(Form1.Handle,CLFRgn,True);
End;
Rechteck auf rechteck:
Delphi-Quellcode:
Var
     CLFRgn:HRgn;
     CLFRgnTmp:HRgn;
Begin
     CLFRgn:=CreateRectRgn(0,30,Form1.Width-30,Form1.Height);
     CLFRgnTmp:=CreateRectRgn(Form1.Width-80,0,Form1.Width,60);
     CombineRgn(CLFRgn,CLFRgn,CLFRgnTmp,RGN_OR);
     SetWindowRgn(Form1.Handle,CLFRgn,True);
End;
Trapezformen hätte ich noch, musst nur sagen auf welcher Seite die schmale Seite sein soll...

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9
  Alt 27. Jan 2003, 22:39
Werden bei der Titelleiste auch die Systemeinstellungen berücksichtig? Also manche haben eine dickeren rand eingstellt, manche einen dünneren und so wieter.

Wenn man WM_NCPAINT abfängt, bekommt man übrigens auch einen HDC auf den nonClient-Bereich des Fensters. Und wenn die Nachricht kommt, muß man auch zeichnen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#10
  Alt 27. Jan 2003, 22:42
Zitat von Luckie:
Werden bei der Titelleiste auch die Systemeinstellungen berücksichtig? Also manche haben eine dickeren rand eingstellt, manche einen dünneren und so wieter.
Das ist ja auch nur was zum Spielen, wer "verbaut" schon sowas in seine Programme?!?

Grüsse, Daniel
  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 07:56 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