Einzelnen Beitrag anzeigen

Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#22

Re: PageControl - Tabs um Schließen-Symbol erweitern

  Alt 30. Jul 2009, 18:08
Hallo,
Zitat von anse:
Bei mir feuert die Form kein OnMouseDown wenn ich auf eine Komponente - egal welche und egal an welcher Stelle ich klicke. (D11)
da muss ich Dir zustimmen wenn Du meinen Code so genommen hast, meine vorgeschlagene Berechnung der Koordinaten ist falsch. Bleibe aber bei der Aussage, der Mausklick in dem leeren Bereich rechts neben den Tabs wird an das Parent-Element weitergereicht. Das Parent-Element kann die Form oder z.B ein Panel sein.

Hab den Code etwas überarbeitet, getestet mit D3 und Turbo Delphi:
Delphi-Quellcode:
procedure NewTab(PgC: TPagecontrol;TabPrefix : String);
var aRect : TRect;
    aPoint : TPoint;
begin
  aPoint := PgC.ClientOrigin;
  aRect := Rect(aPoint.x,aPoint.y,aPoint.x + PgC.Width,aPoint.y + PgC.Height);
  GetCursorPos(aPoint);
  if PtInRect(aRect, aPoint) then
    with TTabSheet.Create(PgC) do
      begin
      PageControl := PgC;
      Name := 'Tab' + IntToStr(PgC.PageCount);
      Caption := TabPrefix + IntToStr(PgC.PageCount);
      PgC.ActivePage := PgC.Pages[PgC.PageCount-1];
      end;
end;

//PageControl liegt direkt auf der Form
procedure TForm1.FormDblClick(Sender: TObject);
begin
  NewTab(PageControl1,'Unbenannt ');
end;

//PageControl ist einem Panel zugeordnet
procedure TForm1.Panel1DblClick(Sender: TObject);
begin
  NewTab(PageControl2,'New ');
end;


[OT]
Zitat von anse:
Hey Lannes, Grüße nach Münster aus Nienberge (bzw. Neuenkirchen privat)
(ähm, arbeitest du wirklich noch mit Delphi 3 (siehe dein Profil)?)
Grüße zurück, ist ja hier um die Ecke, reicht für einen Abendspaziergang
Ja, im wesentlichen mit D 3, startet sehr schnell(D3 = 2 Sek, Turbo Delphi 1/2 Minute).
Bisher konnte ich mit D3 alle Anforderungen abdecken, gut, einiges erfordert einen größeren Aufwand, aber man lernt auch viel dabei.
[/OT]
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat