AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Frames auf PageControl oder Form ! Ich werd verrückt
Thema durchsuchen
Ansicht
Themen-Optionen

Frames auf PageControl oder Form ! Ich werd verrückt

Ein Thema von DataCool · begonnen am 19. Jul 2004 · letzter Beitrag vom 19. Jul 2004
 
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Frames auf PageControl oder Form ! Ich werd verrückt

  Alt 19. Jul 2004, 17:25
Hi Mirage,

habe ich gerade gemacht, dann hangelt er sich von der Action hoch bis zum TControl.WMLButtonUp
Code:
procedure TControl.DoMouseUp(var Message: TWMMouse; Button: TMouseButton);
begin
  if not (csNoStdEvents in ControlStyle) then
    with Message do MouseUp(Button, KeysToShiftState(Keys), XPos, YPos);
end;

procedure TControl.WMLButtonUp(var Message: TWMLButtonUp);
begin
  inherited;
  if csCaptureMouse in ControlStyle then MouseCapture := False;
  if csClicked in ControlState then
  begin
    Exclude(FControlState, csClicked);
    if PtInRect(ClientRect, SmallPointToPoint(Message.Pos)) then Click;
  end;
  DoMouseUp(Message, mbLeft);
end;
In dem DoMouseUp, sprint er dann von der ZEile with Message do MouseUp(Button, KeysToShiftState(Keys), XPos, YPos); in die System.pas
Code:
procedure      GetDynaMethod;
{       function       GetDynaMethod(vmt: TClass; selector: Smallint) : Pointer;      }
asm
        { ->   EAX    vmt of class           }
        {       SI     dynamic method index   }
        { <-    ESI pointer to routine }
        {       ZF = 0 if found        }
        {       trashes: EAX, ECX              }

        PUSH   EDI
        XCHG   EAX,ESI
        JMP    @@haveVMT
@@outerLoop:
        MOV    ESI,[ESI]
@@haveVMT:
        MOV    EDI,[ESI].vmtDynamicTable
        TEST   EDI,EDI
        JE     @@parent
        MOVZX  ECX,word ptr [EDI]
        PUSH   ECX
        ADD    EDI,2
        REPNE  SCASW
        JE     @@found
        POP    ECX
@@parent:
        MOV    ESI,[ESI].vmtParent
        TEST   ESI,ESI
        JNE    @@outerLoop
        JMP    @@exit

@@found:
        POP    EAX
        ADD    EAX,EAX
        SUB    EAX,ECX        { this will always clear the Z-flag ! }
        MOV    ESI,[EDI+EAX*2-4]

@@exit:
        POP    EDI
end;
MOVZX ECX,word ptr [EDI] ist die Zeile wo er crashed
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
 


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 07:16 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