![]() |
Re: Sechseckige Komponente
TGraphicControl ist doch ein nachfahre von TWinControl. Es geht eben nur darum das die Komponente ein Handle benötigt deswegen eben ein nachfahre von TWinControl
|
Re: Sechseckige Komponente
Danke @SirThornberry und marabu
das klingt nach dem wonach ich gesucht habe :-D :bounce1: werde es mal damit probieren :coder: Gruß Nara |
Re: Sechseckige Komponente
Ich habe da noch mal ein paar fragen zu...
verzweifle gerade an der CreatePolyPolygonRgn Funktion... Ich verstehe die Parameter nicht, die er haben will: Zitat:
was will der haben? erst dachte ich ein array mit den Punkten des Polygons, was ich erzeugen will, aber dann irritiert mich, dass von mehreren Polygonen die Rede ist. Ausserdem machen dann die nachfolgenden Parameter keinen Sinn... weil was will denn lpPolyCounts haben? Ein array mit integern, wieviele Punkte das jeweilige Polygon hat, soweit ich verstanden habe...deutet auch auf mehrere hin. Aber wie bekomme ich mehere Polygone in ein Array, wenn ich für jedes Polygon mehrere Punkte angeben muss. Wird das dann ein zweidimensionales array, aber welche dimension bekommt welche Punkte? und bei n count hörts dann ganz auf: will der die dimension des lpPolyCounts array haben? wofür braucht er die? fn polyfillMode verstehe ich zwar auch noch nicht so ganz, aber das ist ja erst mal unwichtig, weil dieser Parameter zwei mögliche Konstanten bekommen kann. Das kann ich noch herausfinden, wofür die gut sind :zwinker: Kann ja sein, dass das alles simpel ist, aber ich blicke da gerade überhaupt nicht durch :wall: :wall: Kann mir das vielleicht jemand erläutern, oder ein gutes Turorial o.ä. empfehlen? Ich habe schon im INet gesucht, aber auch nichts wirklich aufschlußreiches gefunden... In der Delphipraxis ist das, soweit ich gefunden habe auch nicht wirklich aufschlussreich erklärt worden :-( Ich würde mich eine Erklärung echt freuen :-) Wie ich die SetBounds ändern muss weiß ich auch noch nicht so recht, damit habe ich mich aber auch noch nicht ganz so eindringlich beschäftigt... Meine Eingentliche Frage nochmal zusammengefasst: Was genau mach die CreatePolyPolygonRgn Funktion, wie sehen die Parameter genau aus, die sie haben will (das zweite ergibt sich fast aus dem ersten)? Danke im Vorraus :-) |
Re: Sechseckige Komponente
hier mal eine Sechseckkomponente (farbe im Create weg machen und dann kannst du davon ableiten)
Delphi-Quellcode:
TSechsEck = class(TCustomControl)
protected procedure SetParent(AParent: TWinControl); override; public constructor Create(AOwner: TComponent); override; procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override; end; constructor TSechsEck.Create(AOwner: TComponent); begin inherited Create(AOwner); Color := clBlue; SetBounds(Left, Top, 100, 100); end; procedure TSechsEck.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); var LPoints: Array[0..5] of TPoint; LPart: Integer; begin if Assigned(Parent) then begin LPart := Round(AHeight / 4); LPoints[0] := Point(AWidth div 2 - 1, 0); LPoints[1] := Point(AWidth - 1, LPart); LPoints[2] := Point(AWidth - 1, LPart * 3); LPoints[3] := Point(AWidth div 2 - 1, AHeight - 1); LPoints[4] := Point(0, LPart * 3); LPoints[5] := Point(0, LPart); SetWindowRgn(Handle, CreatePolygonRgn(LPoints, length(LPoints), ALTERNATE), True); end; inherited SetBounds(ALeft, ATop, AWidth, AHeight); end; procedure TSechsEck.SetParent(AParent: TWinControl); begin inherited SetParent(AParent); if Assigned(Parent) then SetBounds(Left, Top, Width, Height); end; |
Re: Sechseckige Komponente
Zitat:
Ableiten will ich zwar nicht davon, aber ich denke dass sie mir bei der erstellung meiner eigenen Komponente helfen wird :bouncing4: Da hast du ja auch von TCustomControl abgeleitet... und die CreatePolygonRgn hast eine Variable weniger... aber egal, ich werds mir in Ruhe ansehen :coder: Vielen lieben Dank :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz