Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#103

Re: Benötige Hilfe beim Entwickeln einer Komponente

  Alt 8. Sep 2007, 14:01
Um das noch mal in Erinnerung zu bringen, hier der Code den ich gepostet habe
Delphi-Quellcode:
procedure TMyControl.DoInvisible;
begin
  //gesamten Clientbereich erfassen
  if FullRgn <> 0 then
    DeleteObject(FullRgn);
  FullRgn := CreateRectRgn(0, 0, Width, Height);
  //'Mask' alles unsichtbar
  CombineRgn( FullRgn, FullRgn, FullRgn, RGN_DIFF );

  // alle sichtbaren Bereiche einblenden
  PointRgn := CreateRectRgn( X, Y, Width, Hight); // das ist ein Bereich im Rect der eingeblendet wird
  CombineRgn( FullRgn, FullRgn, PointRgn, RGN_OR );
  DeleteObject(Pointrgn);

  // alles Kombiniert und fertig
  SetWindowRgn(Handle, FullRgn, TRUE);
end;
Hier wird nirgens der FullRgn nach SetWindowRgn angefaßt!

Das einzige, was gelöscht wird ist PointRgn. PointRgn wird aber nur für die Kombination der Sichtbaren Bereiche(PointRgn; heisst bei mir so, weil das Rect-Bereiche von Eckpunkten sind) auf den FullRange verwendet. Das dann in einer Schleife.

Ob in meinem ersten Bereich das DeleteObject auf FullRange jetzt korrekt ist, keine Ahnung, bin ich jetzt auch etwas unsicher. Dort wird auf jeden Fall erst mal das ganze Control/Form unsichtbar gemacht.

Im mittleren Abschnitt werden alle sichtbaren Bereiche auf FullRgn kombiniert und im letzten Abschnitt alles gesetzt.

Das was Tom macht ist den letzten Teil meines (auch hier dem Forum entlehnt) Codes herauszunehmen. Der Anfangs- und Mittelteil fehlt völlig und der Rest ist inkorrect!

Kein Wunder, dass nichts mehr geht.

Gruß oki
42
  Mit Zitat antworten Zitat