Wer hat sich sowas ausgedacht, Meinung dazu

Hallo
wer denkt sich eigentlich sowas aus, das Textfeld kann nicht durchsichtig gemacht werden, ein Bezeichnungsfeld jedoch schon.

Ein Textfeld kann über eine Statusleiste gelegt werden, ein Bezeichnungsfeld nicht.

Wie soll jetzt ein Textobjekt bitte über eine Statusleiste und gleichzeitig darunter der Fortschrittsbalken angezeigt werden???

Is doch eine berechtigte Frage für alle Profiprogrammierer.
Ich ärgere mich jedenfalls schwarz darüber.

Mfg Werner

Hallo.

das Textfeld kann nicht durchsichtig gemacht werden

Äh …? Bei mir geht das ganz wunderbärchen …

Welche Version?

Gruß kw

Hallo
dann sag mir doch mal bitte wie VB6.0???

Ich will auf meinem Fortschrittsbalken, welcher jetzt nach 2 Tagen tüfteln endlich sauber in der Statusbar läuft einen Text haben, welcher die % anzeigt.
Er muß natürlich durchlässig sein, damit man die Anzeige weiterhin sieht.

Hilfe

Hallo Werner,

ich hatte dir mal eine Variante geschrieben wie du eine progressbar mit anzeige etc. gestalten kannst. Dann hatte ich dir auch eine Variante geschrieben wie du eine progressbar in die Statusbar bekommst.
Haettest du beide Varianten gewaehlt haettest du genau deine gewünschten effekte und das mit max. 10 Minuten schreibarbeit.

Nun aber mal zu deinem Problem. Wie man ein textfeld transparant macht. Soweit ich das weiss, ist dies nicht möglich in VB.
Aber wenn du nur die prozentzahl anzeigen willst, warum nimmst du dann nicht ein Label dafür? Diese kannst du ohne weiteres transparent machen.

MFG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ja ich weiss
Hi ja ich weiss,
ich hatte schon mehrmals gequängelt.
Leider habe ich feststellen müssen, das meine Wünsche eben so nicht relisierbar waren, weil immer optische Fehler den Ablauf beeinträchtigten. Ich musste ein DoEvents einfügen, dann konnte ich in der Routine aber keine Form mehr öffnen, bis sie durch war usw.

So jetzt habe ich mir also die Progressleiste in die Statusbar gestellt (nach deiner Vorlage). Ich hätte gern aber noch eine %-Anzeige darübergelegt.

Nun habe ich eben festgestellt, Bezeichnungsfelder kann man nicht über die Statusbar legen!!! und Textfelder kann man nicht durchsichtig machen!!!, zumindest in VB6.0.

Daher auch der Artikel. Oder sagst du dazu etwas anderes.
Dann bräuchte ich hier auch wieder eine Lösung.

Ich speichere mir übrigens schon alle Tips usw. ab, und ich werde sie sicher auch noch alle brauchen. Mittlerweile frage ich aber etwas konkreter in Bezug darauf, wo ich gerade feststecke im Programm.
Hab schon etwas dazugelernt.

Mfg Werner

Hallo Werner,

also das alles bringt uns hier nicht weiter. Unter VB kannst du sagen wir mal zu 99% alles realisieren. Es ist halt nur eine Frage des Weges.
Du schreibst das du dir die prgressbar selbst gebastelst hast.
Ok ist schoen, aber du hast sicher ne menge quelltext geschrieben um das zuu erzielen.
Viel Quelltext = Längere Zeit der Verabeitung = Performanceverlust :smile:

Wenn ich dich richtig verstanden habe, willst du eine Progressbar in die Statusleiste haben, mit prozentanzeige?
Dazu willst du dann von den 9 Schaltflächen ein paar Ausblenden und dafür dann die Progressbar einblenden.

Ok, warum machst du dir das so schwer.
Erstelle mal fix nen neues Projekt und kopiere dir dann den quelltext darein. Setze dazu die elemente wie besagt auf die Form und schaue dir das mal an.
Du wirst sehen das dein Vorhaben sehr leicht realisierbar ist und du dazu auch nicht viel quelltext brauchst.
Wenn dir das zusteht dann bastel am besten dein projekt nochmal um, denn sonst kommst du in Teufelskueche :frowning:

Also erstelle mal eine Form.
Darauf packst du eine Schaltfläche „Command1“ mit der Beschriftung „Einblenden und Füllen“
Dann machst du noch eine Schaltfläche drauf „Command2“ mit der Beschriftung „Ausblenden“
Dann packst du dort noch eine Statusbar drauf „Statusbar1“
In der Statusbar machst du nun 10 Schaltflächen hin!
Die 1 „Button1“ , Die 2 „Button2“ die 3 nennst du „PBar“ und setzt da die eigenschaft Visible auf false ( also haeckchen raus)
Die Schaltflächen gibst du den namen "Button4 etc … Button9

Dann lade dir aus dem Internet von
http://www.vbarchiv.net/download/download_detail.php…
das MB Progressbar OCX runter und setze in der Form ein Verweis darauf.
Diese progressbar stellst du dann wiefolgt ein. (rechtsklick auf das control und dann eigenschaften)

Haeckchen bei Smooth rein
Die Farben kannst du dir anpassen so wie du magst :smile:
bei dem eintrag „TextAfterCaption“ schreibst du " %" also ohne die " einfach nur ein Leerzeichen und dann das % Zeichen hin :smile:
Bei Max schreib mal eine 100 hin … also max 100 Fortschritte :smile:
Dieses Control kann weitaus mehr aber wir wollen ja das machen was du vorhast :wink:
Dann stellst du noch die visible Eigenschaft auf False ( also nicht sichtbar)

Dann mache noch einen timer drauf der fuellt nur die progressbar.
Die enable Eigenschaft setzt du auf false und den intervall auf 500

Wenn du später mal den Button Einblenden drueckst, so werden die Grundflächen 2 + 3 bis 8 ausgeblendet und die progressbar eingeblendet. bei Klcik auf Ausblenden werden wieder alle 9 Schaltflächen eingeblendet und die progressbar aus .

Es ist nur zum Demozweck Werner, schaue dir mal den Quelltext an und du wirst sehen wie man das anstellt und kannst das dann für dich übernehmen :smile:
So nun kopierst du dir folgendes Quelltext in die Form damit alles Funktioniert :smile:

Option Explicit

Private Declare Function SetParent Lib "user32" ( \_
 ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
'Ein Kleiner Tipp, wenn du Schaltfläche 3 einrichtest dann kannst du sie sehr breit machen.
'Sobald du die Eigenschaft visible auf False setzt, ist sie weg und nimmt den platz net mehr weg
'Und du hast den Vorteil das sie dann später beim einblenden so breit angezeigt wird :wink:

'Bei den Bemerkungen ist SF = Schaltfläche :smile:

Private Sub Command1\_Click()
On Error Resume Next
 With StatusBar1
 .Panels(2).Visible = False 'SF 2 ausblenden
 .Panels(3).Visible = True 'SF 3 einblenden
 ProgressBar1.Visible = True 'progressbar einblenden
 ProgressBar1.Top = 60 'Progressbar ausrichten ( höhe)
 ProgressBar1.Left = StatusBar1.Panels(3).Left 'Progressbar ausrichten ( wo beginnt sie)
 ProgressBar1.Width = StatusBar1.Panels(3).Width 'Progressbar ausrichten ( wie breit ist sie)
 ProgressBar1.Height = StatusBar1.Height - 90 'Progressbar ausrichten (gesamthoehe)
 .Panels(4).Visible = False 'SF 3 ausblenden -\> hat index = 4 weil die 3 schon die progressbar belegt :smile:
 .Panels(5).Visible = False 'SF 4 ausblenden
 .Panels(6).Visible = False 'SF 5 ausblenden
 .Panels(7).Visible = False 'SF 6 ausblenden
 .Panels(8).Visible = False 'SF 7 ausblenden
 .Panels(9).Visible = False 'SF 8 ausblenden
 End With
 Timer1.Enabled = True 'Timer einschalten und die Progressbar füllen :smile:
End Sub

Private Sub Command2\_Click()
On Error Resume Next
Dim i As Byte
 Timer1.Enabled = False 'Timer1 abschalten
 For i = 1 To StatusBar1.Panels.Count 'Durchlauf aller SF in der Statusbar1
 If i 3 Then StatusBar1.Panels(i).Visible = True 'Wenn es sich nicht um die 3 SF handelt dann einblenden
 Next i
 StatusBar1.Panels(3).Visible = False 'SF 3 ausblenden
 ProgressBar1.Visible = False 'progressbar1 ausblenden
End Sub

Private Sub Form\_Load()
 On Error Resume Next
 Call SetParent(ProgressBar1.hWnd, StatusBar1.hWnd) 'Progressbar in die Statusleiste einsetzen
End Sub

Private Sub Timer1\_Timer()
 On Error Resume Next
 With ProgressBar1
 If .Value = 100 Then 'Wenn Wert der progressbar gleich 100 ( Max) ist dann
 .Value = 0 'Wieder auf 0 setzen!
 Else 'ansonsten
 .Value = .Value + 1 'Einen balken mehr anzeigen :smile:
 End If
 End With
End Sub

Wie du siehst Werner ist es ein geringer Aufwand das zu bewerkstelligen :smile: und du kannst mit dieser Variante noch vieles mehr erreichen :smile:
Falls du noch fragen hast dann poste einfach :smile:

MFG Alex

Das war vielleicht das Problem
Hallo
nicht genervt sein bitte.
Das war dann doch das Problem, das du ein anderes OCX hast, ich habe nur das Standard-Tool. Da geht das eben nicht mit der %Anzeige.

So jetzt kann ich es nochmal auf dieser Basis hin probieren.

Das war etwas missverständlich, die Progressbar läuft ja schon (mit deiner Code-Vorlage!!!), ich möchte nur noch eine %-Anzeige drüber.

Mfg Werner

Hallo

Hallo Werner :smile:

nicht genervt sein bitte.

Nein das bin ich net. keine Bange :smile:

Das war dann doch das Problem, das du ein anderes OCX hast,

Ich weiss das hatte ich dir aber geschrieben und auch einen Link zuim Download gegeben :wink: Sicher haettest du dir deine selbst basteln können und dann als OCX abspeichern koennen und dies einbinden. Aber das waere dann fast das selbige gewesen und ob sich der Aufwand lohnt ?

ich habe nur das Standard-Tool. Da geht das eben nicht mit der
%Anzeige.

Richtig, aber das was ich dir angegeben habe in dem link kann das :smile:

So jetzt kann ich es nochmal auf dieser Basis hin probieren.

Das war etwas missverständlich, die Progressbar läuft ja schon
(mit deiner Code-Vorlage!!!), ich möchte nur noch
eine %-Anzeige drüber.

So wie wir es am anfang probiert hatten geht es nicht :frowning:
und eh wir hier noch lange diskutiert haetten, schrieb ich dir ein paar zeilen und wenn du dir das mal anschaust, wirst du sehen das das alles sehr einfach ist und deine Wünsche erfuellt :wink:

Falls du dann noch fragen hast, dann melde dich einfach wieder :smile:

Mfg Werner

MFG Alex