TWindowsLabel zu TScrollClient hinzufügen
Übersicht

![]() |
das wurgelBetreff: TWindowsLabel zu TScrollClient hinzufügen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Doku hat Folgendes geschrieben: The client area is the panel that will actually be scrolled and is retrieved using the ScrollPanelClient command. This is the panel whose dimensions determine the total scrollable area, and is also the panel that all your child gadgets should be added to.
Die Funktion gibt ein Gadget vom Typ TScrollClient als TGadget zurück. TScrollClient extends TProxyGadget extends TGadget. Nun zum Problem: Wenn ich versuche ein TWindowsLabel hinzuzufügen passiert folgende: TWindowsGUIDriver ruft CreateGadget auf. CreateGadget erstellt ein TWindowsLabel und ruft dessen Methode setShape() auf. setShape() ruft die Methode setArea() auf, welche in TWindowsLabel überschrieben wird. setArea() ruft wiederum Super.setArea() auf, welche sich in TWindowsGadget befindet. Diese setArea() ruft dann rethink() auf. rethink() ruft dann QueueResize() auf. QeueResize versucht dann den parent, also den ScrollClient zu einem TWindowsGadget zu casten, was natürlich nicht geht und will dann auf hdwpStruct zuzugreifen. Dabei kommt eine NullPointer Execption. Es kann doch nicht sein, dass es nicht möglich ist, einen Label in einem Scrollpanel zu erstellen. Ich wüsste aber auch nicht was ich falsch gemacht haben könnte, jeder Methodenaufruf ab CreateLabel() führt unweigerlich zum nächsten. Ich könnte das Label zwar zu ScrollPanelClient(sp).proxy hinzufügen, aber in diesem Fall importiere ich ProxyGadgets überhaupt nicht und bekomme den ScrollPanel-Client nur als Gadget übergeben. Da heißt, ich habe nur zugriff auf die TGadget-Sachen. Wie kann man das also machen, ohne ProxyGadgets importieren zu müssen?, denn das ist ja eigentlich nicht der Sinn der Sache. |
||
1 ist ungefähr 3 |
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hilft das hier:
Code: [AUSKLAPPEN] SuperStrict Import MaxGui.ProxyGadgets Import MaxGui.Drivers Local Window1:TGadget = CreateWindow:TGadget("Window1",332,194,397,162,Null,WINDOW_TITLEBAR|WINDOW_RESIZABLE |WINDOW_STATUS |WINDOW_CLIENTCOORDS ) Local PScrollPanel1_Type:TScrollPanel = CreateScrollPanel:TScrollPanel( 17,15,366,135,Window1:TGadget,Null ) Local PScrollPanel1:TGadget = ScrollPanelClient(PScrollPanel1_Type) Local Button1:TGadget = CreateButton:TGadget("Button1",52,68,75,23,PScrollPanel1:TGadget,BUTTON_PUSH) Local Label1:TGadget = CreateLabel:TGadget("Label1",19,19,80,16,PScrollPanel1:TGadget,Null) Local TextField1:TGadget = CreateTextField:TGadget(90,129,80,23,PScrollPanel1:TGadget,Null) SetGadgetText( TextField1:TGadget,"TextField1") Local BorderPanel1:TGadget = CreatePanel:TGadget(106,168,158,53,PScrollPanel1:TGadget,PANEL_BORDER,"BorderPanel1") FitScrollPanelClient( PScrollPanel1_Type ) Repeat WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE Select EventSource() Case Window1 Window1_WC( Window1:TGadget ) End Select Case EVENT_GADGETACTION Select EventSource() Case Button1 Button1_GA( Button1:TGadget ) Case TextField1 TextField1_GA( TextField1:TGadget ) End Select End Select Forever Function Window1_WC( Window:TGadget ) DebugLog "Window Window1 wants to be closed" End End Function Function Button1_GA( Button:TGadget ) DebugLog "Button Button1 was pressed" End Function Function TextField1_GA( TextField:TGadget ) DebugLog "TextField TextField1 was modified" DebugLog "Text = "+ TextFieldText$( TextField:TGadget ) End Function |
||
Logic Gui Professional a Gui Designer for MaxGui |
![]() |
das wurgel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Beispielcode funktioniert bei mir und ich meine eigentlich, ich hab das genauso gemacht. Ich hab zwar den alten Code nicht mehr, aber dort scheint in der Methode QueryResize in der Zeile
Code: [AUSKLAPPEN] If parent And GetParent(hwnd) = parent.Query(QUERY_HWND_CLIENT) And TWindowsGadget(parent).hdwpStruct Then
"GetParent(hwnd) = parent.Query(QUERY_HWND_CLIENT)" True gewesen zu sein. Ich weis aber nicht was das zu bedeuten hat und wie das mit meiner Programmierweise im Zusammenhang steht. |
||
1 ist ungefähr 3 |
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Na Hauptsache es funktioniert jetzt für dich ![]() Warum das vorher nicht wollte, k.a. aber deine Beispielzeile sieht ein wenig unnötig kompliziert aus. |
||
Logic Gui Professional a Gui Designer for MaxGui |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group