# C++ Anfängerprobleme bei VCL-Anwendung



## Fritze (10 Juli 2008)

Hallo,
ich bin dabei mich in C++ einzuarbeiten und habe nun folgendes Problem:
Bei meinem Versuch mit ScrollBar eine Anzeige für Farbeinstellungen zu schaffen wird die Grafik (Kreis) erst nach dem ersten betätigen eines ScrollBar angezeigt.
Wie kann ich es schaffen, das schon beim starten der Kreis angezeigt wird?
Kann ich die  sich wiederholenden Funktionalitäten der ScrollBar auch zu einer Funktion zusammenfassen, die ich dann nur noch aufrufen muß?
Über Hilfe und Anregungen würde ich mich sehr freuhen Fritze.


----------



## vierlagig (11 Juli 2008)

ich würde eine funktion elipse machen:


```
*
void elipse(){
    HRGN EHandle=CreateEllipticRgn(70,220,140,280);
    HDC hdc=GetDC(Form1->Handle);
    HBRUSH hbr1=CreateSolidBrush(RGB(Farbe_RT,Farbe_GN,Farbe_BL));
    FillRgn(hdc,EHandle,hbr1);
    ReleaseDC(Form1->Handle,hdc);};
```

und diese dann in den entsprechenden änderungsbehandlungen aufrufen


```
*
void __fastcall TForm1::ScrollBar3Change(TObject *Sender)
{
        Farbe_BL = ScrollBar3->Position;
        Label3->Caption = Farbe_BL;

        elipse();
}
```

und eben auch in der main.

bin in C++ nicht so sattelfest, also code muß nicht stimmen, aber die idee sollte klar sein


----------



## Ralle (11 Juli 2008)

Und wahrscheinlich mußt du die Routine auch schon beim allerersten  Bildaufbau aufrufen, wenn die Applikation gestartet wird, da ansonsten ja erst bei einem OnChange-Ereignis die erste Ellipse gezeichnet wird. Was passiert denn, wenn du ein Fenster eines anderen Applikation über deine Ellipse hinwegziehst, verschwindet die dann? Dann sollte die Ellipsenroutine (4L) vielleicht in das Ereignis OnPaint des Fensters hinein und mit den Werten der Slider ständig neu gezeichnet werden.


----------



## Fritze (11 Juli 2008)

Vielen Dank für eure Antworten.
Der theoretische Ablauf ist mir schon klar aber das Problem bleibt die Umsetzung. Ich habe es durch nachlesen und probieren geschafft die Grafik in Form einer Funktion aus den einzelnen ScrollBars`s herauszulösen. Mein Problem bleibt aber immer noch das Aufrufen dieser Funktion beim START. 
Also bitte doch eine Lösung für meine Anwendung (Borland C++).
Mit freundlichen Grüßen und auf Hilfe wartend Fritze.


----------



## Fritze (11 Juli 2008)

@Ralle
Ich hatte das mit dem OnPaint überlesen, das war die Lösung.
Vielen Dank nun kann ich wenigstens beruhigt ins Wochenende gehen.
MfG Fritze.


----------

