AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi RTTI - Typinformation kommt nicht am Ziel an

RTTI - Typinformation kommt nicht am Ziel an

Ein Thema von I.A · begonnen am 16. Mär 2009 · letzter Beitrag vom 21. Mär 2009
Antwort Antwort
I.A

Registriert seit: 14. Jan 2007
83 Beiträge
 
#1

Re: RTTI - Typinformation kommt nicht am Ziel an

  Alt 20. Mär 2009, 23:58
Hallo,

leider muss ich Euch noch mal nerven.

Wenn ich die Eigenschaft

ActiveControl von Form1

des Formdesigners aus dem DemoSizeCtrl Projekt vom User _frank_ im Objektinspektor einstelle, klappt alles wie gewünscht.

Aber wenn ich ActiveControl durch Klicken in die Komponente finden will, klappt es nicht mehr.

Nach meinem Verständnis musste es so aussehen:
Delphi-Quellcode:
procedure TForm1.SizeCtrlMouseDown(Sender: TObject;
  Target: TControl; TargetPt: TPoint; var handled: boolean);
var
  i: integer;
begin
  //When clicking the PageControl, it's kind of nice to be able to change pages.
  //So, let's see if a new page needs to be displayed ...

  //##### Diese Zeile habe ich eigefügt #####
  ActiveControl := TWinControl( SizeCtrl.TargetCtrlFromPt(TargetPt) );

  if (Target is TPageControl) then
    with TPageControl(Target) do
    begin

      //We need the PageIndex of the tab being clicked. The following line
      //is fine in Delphi 7 but isn't available with older compilers ...
      // with TargetPt do i := PageControl1.IndexOfTabAt(X, Y);
      //Therefore, this is my workaround which works back to Delphi 3 ...
      with TargetPt do i := My_IndexOfTabAt(TPageControl(Target), X, Y);

      if (i >= 0) and ( ActivePage.PageIndex <> i) then
      begin
        //since further mouse handling stuff is not required ...
        handled := true;
        //Unregister from SizeCtrl all controls on the current page ...
        UnregComponents(PageControl1, SizeCtrl);
        //select the new page ...
        ActivePage := Pages[i];
        //finally, register controls on the new page...
        RegComponents(PageControl1, SizeCtrl);
      end;
    end;
end;
Habe soeben in TSizeCtrl.DoWindowProc folgendes gefunden. Werde als nächstes hier erweitern:

Delphi-Quellcode:
case Msg.Msg of
          WM_LBUTTONDOWN: PostMouseDownMessage(true, ssShift in ShiftState);

//ich werde das hier versuchen:
case Msg.Msg of
          WM_LBUTTONDOWN:
              begin
                CurrentControl := regCtrl; //was ich im OI sehen will
                PostMouseDownMessage(true, ssShift in ShiftState);
              end;
Fall das nicht klappt, frag ich mal, an welcher Stelle im Message Record vom Typ TMessage das gesuchte Control zu finden ist?

Das Musste ich ja denn anstelle von regCtrl zuweisen können.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:47 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