Autor Beitrag
babeuf
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 04.09.02 09:22 
Hallo ich hab ne Frage wie ich bei meinem Formblatt eine bestimmte Form hinbekomme. Ja, ich habe die FAQ gelesen, nur leider schaffe ich es trotzdem nicht meine gewünschte Form zu erzeugen. Das Formblatt soll folgendermaßen aussehen: oben gerade (die titelzeile soll komplett zu sehen sein), aber unten abgerundet.

Ich schätze mal, dass man bei diesen Code die Arrayzahlen verändern muss um meine Form hinzubekommen. Ich weiß aber eben nicht wie...


ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.FormCreate(Sender: TObject); 
var 
  HR: HRgn; 
  p:array[0..3] of TPoint; 
begin 
  p[0]:=Point(Width div 2,1); 
  p[1]:=Point(1, Height div 2); 
  p[2]:=Point(Width div 2,Height); 
  p[3]:=Point(Width, Height div 2); 
  HR:= CreateEllipticRgn (0, 0, Width, Height); 
  SetWindowRgn(Handle, HR, True); 
end;


Danke im Voraus
babeuf

_________________
From Munich to Seattle, continue the battle!
GPF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 85



BeitragVerfasst: Mi 04.09.02 11:50 
Folgender Codeschnipsel sollte genau das machen, das Du suchst:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  HR, Hr2: HRgn;
  p:array[0..3] of TPoint;
begin
  Hr2:=CreateRectRgn(0,0,width, Height div 2);
  p[0]:=Point(Width div 2,1);
  p[1]:=Point(1, Height div 2);
  p[2]:=Point(Width div 2,Height);
  p[3]:=Point(Width, Height div 2);
  HR:= CreateEllipticRgn (0, 0, Width, Height);
  CombineRgn(Hr, Hr, Hr2, RGN_OR);
  SetWindowRgn(Handle, HR, True);
  DeleteObject(Hr2);
end;


Du erstellst einfach den rechteckigen Bereich als zweite Region, die bleiben soll, und kombinierst (CombineRgn) beide Regionen per Oder-Operator.
Vergiß nicht über DeleteObject die zweite Region wieder frei zu geben.

_________________
"Wenn Debugging ein Vorgang ist, Fehler aus einem Programm auszubauen, dann ist Programmieren der Vorgang, Fehler einzubauen."
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Mi 04.09.02 12:15 
genau dies wollte ich auch vorschlagen,
GPF ist mir nur zuvorgekommen :(


Ich habe aber auch noch eine Verbesserung :D

Das Array P wird hierfür nicht benötigt und du kannst es
hier wieder raus löschen.
babeuf Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 04.09.02 16:05 
Titel: Danke
Vielen Dank , für die Antwort, es hat funktioniert. :)

Das Array wurde auch tatsächlich nicht benötigt.

babeuf

_________________
From Munich to Seattle, continue the battle!