Wheel Problem mit Frames
-
Hi,
So wie du es beschrieben hast hab ich das Frame eingebaut.
Als erstes musst du in der Frame.cpp die unit.h deklarieren (auch wenn das nicht ganz richtig ist)
Es geht nicht anderst du musst die unit.h includieren!!!!
Includieren, deshalb damit du von jedem dynamisch angelegten Frame aus +++++hallo+++++ in der unit.h
ändern kannst.Frame.cpp
#include "unit1.h" //damit hallo in Form1 ein Wert zugewiesen . //werden kann (ist dort ein ScrollBox-Zeiger) . . . . . //wenn auf das TImage in der ScrollBox klicken void __fastcall TFrame2::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { Form1->hallo=ScrollBox1; } //---------------------------------------------------------------------------Den Konfortvelust sehe ich darin, dass jedesmal in die ScrollBox geklickt werden muss,
bevor man die ScrollBox ''scrolen kann''.
Ein Weiter Nachteil ist wenn zufällig noch ein TRichEdit da ist, können diese ebenfalls nicht
mehr ohne weiteres gescrollt werden.
Dann muss Form1->hallo=RichEdit->.....Srcoll.... heissen.
Ich sehe auf die Schnell keine bessere Lösung.
Komponenten entwickeln macht am Anfang auch keinen sonderlichen Spass und ist sehr
Zeitaufwendig.
Ich bin aber davon überzeugt, wenn man eine Komponente von TPanel ableitet und darin
ein ScrollBox mit Alingn->all einbaut wirst du keine Probleme mit der Mausradfunkion haben.
Dazu muss man es allerdings erst schaffen die Mausradfunktion richtig in die Komponente zu
vererben.Grüsse
-
Also jetzt muss ich dir mal fettes Dankeschön aussprechen. Wenn das mal keine freundliche Hilfe war und auch so extrem engagiert!
Aber der wichtigste Satz und Lösungsschlüssel hast mal so nebenläufig erwähnt

Den Konfortvelust sehe ich darin, dass jedesmal in die ScrollBox geklickt werden muss, bevor man die ScrollBox "scrolen kann".
Der Satz ist wie ein Leuchtfeuer losgegangen

Einfach Focus setzen und dann kannes losgehen mit scrollen, ja so einfach kann manchmal die Lösung sein. Folgender Code arbeitet primstens.
//--------------------------------------------------------------------------- void __fastcall TMyFrame::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { ScrollBox1->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TMyFrame::ScrollBox1MouseWheel(TObject *Sender, TShiftState Shift, int WheelDelta, TPoint &MousePos, bool &Handled) { long msg = (Shift.Contains(ssShift)) ? WM_HSCROLL : WM_VSCROLL; long code = (WheelDelta>0) ? SB_LINEUP : SB_LINEDOWN; for (int i=1;i<Mouse->WheelScrollLines;i++) { ScrollBox1->Perform(WM_VSCROLL, code, 0); ScrollBox1->Perform(WM_VSCROLL, SB_ENDSCROLL, 0); } } //---------------------------------------------------------------------------
-
Hi Schnappi,
Ich weis nicht ob du das Lied kennst '''Der um das Klo tantz'''
Wir haben beide getantz...... ich etwas länger wie du.
Danke
Es ist noch einfacher als gedacht
Grüsse