Autor |
Beitrag |
DaBass
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 10.09.03 18:25
Salü zusammen
Ich möchte eine ProgressBar in meine StatusBar integrieren.
Wie ich die ProgressBar über die ganze StatusBar lege, ist mir klar.
Jedoch möchte ich die StatusBar nur in einem einzigen Panel anzeigen.
hat jemand eine Ahnung, wie das gehen könnte??
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Mi 10.09.03 20:23
such mal hier im forum !!!
STATUSBAR AND PROGRESS*
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
ErnestoChe
      
Beiträge: 528
Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
|
Verfasst: Mi 10.09.03 20:23
Hi,
das geht z.B. folgendermaßen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure PutCtrlInPanel(wCtrl: TWincontrol; StatusBar: TStatusBar; PANEL_ID: Integer); var ARect: TRect; begin StatusBar.Perform((WM_USER + 10), PANEL_ID, Integer(@ARect)); wCtrl.Parent := StatusBar; wCtrl.BoundsRect := ARect; end;
procedure TfrmMain.FormShow(Sender: TObject); begin PutCtrlInPanel(ProgressBar1, StatusBar1, 2); end; |
Mit dieser Methode kann man auch andere WinControls in eine Statusbar einfügen, wie z.B. einen Button.
MFG
- Ernesto -
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 10.09.03 21:07
Und was macht /ist WM_USER + 10?
www.luckie-online.de...cks/komponenten.html untere drittel: "Komponente in Statusbar".
|
|
DaBass
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 10.09.03 22:58
Vielen Dank euch allen!
Werde die Funktion am nächsten Montag in der Firma testen... habe bis dahin eben noch Schule.. 
|
|
ErnestoChe
      
Beiträge: 528
Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
|
Verfasst: Mi 10.09.03 23:06
Hi,
WM_USER
Was gefällt Dir an dem Code nicht, dass du nochmal einen Link auf Code setzst, der fast das gleiche macht? Funktioniert doch einwandfrei. Bei dir etwa nicht? Kriegst du einen Fehler?
Ausserdem ist WM_USER geschickter als SB_GETRECT, da man die CommCtrls.pas nicht einbinden muss.
Und das hier
Delphi-Quelltext 1:
| wCtrl.BoundsRect := ARect; |
ist ebenfalls geschickter als das
Delphi-Quelltext 1: 2: 3: 4:
| progressbar1.top := r.top; progressbar1.left := r.left; progressbar1.width := r.right-r.left; progressbar1.height := r.bottom-r.top; |
MFG
- Ernesto -
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 11.09.03 03:18
Ich frage, weil WM_USER+10 eien benutzerdefinierte Nachricht ist. Woher weiß jetzt diese Zeile:
Delphi-Quelltext 1:
| StatusBar.Perform((WM_USER + 10), PANEL_ID, Integer(@ARect)); |
was es damit anfangen soll?
|
|
ErnestoChe
      
Beiträge: 528
Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
|
Verfasst: Do 11.09.03 09:08
Hi,
Luckie hat folgendes geschrieben: | Ich frage, weil WM_USER+10 eien benutzerdefinierte Nachricht ist. Woher weiß jetzt diese Zeile:
Sourcecode:
StatusBar.Perform((WM_USER + 10), PANEL_ID, Integer(@ARect));
was es damit anfangen soll? |
Weil (WM_USER + 10) dasselbe ist wie SB_GETRECT, sprich die Selbe Konstante. Daher finde ich es besser als SB_GETRECT, weil man nicht die CommCtrl.pas einbinden muss, wenn man sie sonst nicht braucht.
Hättest auch gleich so fragen können, dann hätt ich dich nicht missverstanden
MFG
- Ernesto -
Zuletzt bearbeitet von ErnestoChe am Do 11.09.03 13:40, insgesamt 1-mal bearbeitet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 11.09.03 09:21
OK. Dann hätte ich das aber so gemacht:
Delphi-Quelltext 1: 2:
| const SB_GETRECT = WM_USER + 10; |
Dann wäre es gleich um einiges klarer gewesen.
|
|
DaBass
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 15.09.03 12:46
Titel: JUHUII....
Es funktioniert Einwandfrei..
*freude herscht*
|
|
florian
      
Beiträge: 30
Win XP Home
D5 Enterprise
|
Verfasst: Fr 13.08.04 13:36
Titel: Re: JUHUII....
DaBass hat folgendes geschrieben: | Es funktioniert Einwandfrei..
*freude herscht* |
tjo..... bei mir eigentlich auch, nur ist die progressBar mit der "Luna Haut"  etwas zu hoch... wat muss ich am code änder, damit dat dingens (die progressBar) nich ganz so hoch ist?
danke für die hilfe im voraus! 
_________________ "640Kb should be enough for anybody." Bill Gates (in den 80'ern)
|
|