Thema: Delphi Rahmen um Label

Einzelnen Beitrag anzeigen

IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#39

Re: Rahmen um Label

  Alt 31. Jan 2007, 10:07
Zitat von Hansa:
Was soll denn das jetzt ? Nun gut, dann fangen wir mal überflüssigerweise an.
Zitat von IngoD7:
Genau das meine ich! Ich habe dir in Posting #21 genau das geliefert. Die Zauberformel lautete: Rand um das Label herum legen und Label.Refresh. Letzteres, damit das Label immer vor dem Rectangel angezeigt wird.
Refresh war ein Schuss in den Ofen. Völlig Sinnlos.
Dann hast du nicht richtig gelesen/getestet/verstanden. Du schreibst selber, dass es anfangs erst darum ging überhautpt einen Rahmen zu sehen. Dein Code aus Posting #20 zeichnete den Rahmen ja, du hast ihn nur kaum sehen können, weil er unter dem Label lag und du da die Rahmendicke noch nicht so dick hattest, dass der Rahmen untendrunter weit hervorquoll (so wie in deiner jetzigen Lösung). Daraufhin habe ich dir Code gepostet, der den Rahmen 5 Pixel entfernt um das Label zieht und der per Refresh das Label nach vorne holt, damit es nicht vom Rectangel verborgen wird. Das passiert nämlich bei deinem Code aus #20 und denen davor, wenn man ein zweites mal mit der Maus auf das Label fährt. Wohlgemerkt - das alles ohne irgendeine MouseLeave-Methode. Die war da noch gar kein Thema.
Du schreibst in #17 sogar noch selber:
Zitat von Hansa:
Noch ein Effekt : ist der Rahmen zu sehen, dann ist die Label.Caption weg oder wohl eher überdeckt.
Die Lösung dagegen war zu dem Zeitpunkt Label.Refresh! Erst die spätere MouseLeave-Methode macht das Refresh überflüssig, weil sie die Geschichte eh nochmal neu zeichnet.

Zitat von Hansa:
Zitat von IngoD7:
..Schon vorher wurde dir gesagt.. Anstatt das zu überprüfen, kam eine unbrauchbare
Vermutungsäußerung von dir.
K.A. was damit gemeint ist.
Das hier ist gemeint:
onlinekater schrieb in #19
Zitat von Hansa:
Ich denke das Rectangle zeichnet nur Linien ? Habe doch kein FillRect etc. verwendet.
Falsch gedacht.
Rectangle zeichnet mit dem Pen einen Rahmen rundum und füllt dann mit dem brush aus.
Versuch brush.style auf bsClear zu setzen und evtl auch Brush.Color auf clClear.

Hansa schrieb in #20
Ne, Brush bezieht sich auf die Form. Das hier liefert etwas wie im Anhang. Aber nur, solange die showmessage da ist.

Da hattest du weder verstanden, was onlinekater meinte (das ist nicht schlimm), noch hast du versucht es nachzuvollziehen und zu verstehen (das ist schlimm).


Zitat von Hansa:
Zitat von IngoD7:
Natürlich war das nicht klar. Du hattest bis dahin gar nicht gesagt, dass der Rahmen auch wieder verschwinden soll. Denkbar wäre ja auch gewesen, dass alle Rahmen bestehen bleiben sollen. Angenommen das wäre so, dann wäre dein Code Murks, weil du kein zweites Mal auf ein Label fahren kannst, ohne dessen Anzeige zu versauen.
Es ging darum, erst einmal überhaupt einen Rahmen hinzukriegen.
Der Rahmen war immer da. Es gibt kein Fitzel Code in diesem Thread, der nicht einen Rahmen irgendwo gezeichnet hat! Du hast lediglich jeden Hinweis ignoriert (und/oder nicht begriffen), der den Rahmen auch wie gewünscht hätte erscheinen lassen.

Zitat von Hansa:
Zitat von IngoD7:
Okay, deine MouseLeave-Methode reisst das raus. Aber auch nur halbherzig. Eine MouseEnter-Methode mit durchsichtigem Rectangel (Canvas.Brush.Style:=bsClear) und herumgelegtem Rahmen würde auch dann funktionieren.
bsClear nützt überhaupt nichts !!
Das erkläre ich dir jetzt nicht nochmal. Du weigerst dich, selbst nach der x-ten Erklärung des Ansatzes, dich damit seriös zu befassen. Okay, das ist deine Sache, aber dann sei wenigstens so fair und höre auf, zu provozieren mit deinen schon lange widerlegten Fehlschlüssen.

Zitat von Hansa:
Zitat von IngoD7:
Das Problem einer eventuellen Überdeckung von anderen visuellen Sachen auf der Form hast du auch nicht gelöst. Es wurde angesprochen. Es interessiert dich aber gar nicht. Wer mit deinem Code noch etwas direkt neben den Rahmen-Labeln liegen hat...
Interessant ist lediglich, dass alles so geht wie erwartet. Die Farben/Koordinaten stimmen.
So eine Aussage akzeptiere ich ja. Ich weiß dann, dass dich das eh alles nicht interessiert, sondern du eigentlich nur solange herumprobierst, bis eine Lösung halbwegs so aussieht, wie du sie sehen möchtest. Aber das hättest du auch vorher sagen können, denn schon mit Posting #10 hast du den Ansatz per Canvas.Rectangel mitgeteilt bekommen. Das hast du (un)dankend angenommen und danach ... naja, ich fange an, mich zu wiederholen.

Du huscht von Codeschnipsel zu Codeschnipsel, postest zwischendurch Zwischenergebnisse mit Anmerkungen, was immer noch nicht geht, und wenn man darauf eingeht, bist du schon lange beim nächsten Schnipsel und interessierst dich für das "Geschwätz von gestern" überhaupt nicht mehr. Irgendwann erscheint dein "Ergebnis" so, wie du es sehen möchtest, und du bist begeistert. Du könntest weder erklären, warum es jetzt so aussieht, noch warum andere Lösungsversuche oder -ratschläge (von uns) angeblich nicht funktionieren. Dabei rede ich noch gar nicht von den kosmetischen Unfeinheiten, wie z.B. die Angabe einer 12-er Pen-Stärke, wenn man einen 6 Pixel dicken Rand zeichnen möchte.

Amen!

Zitat von Hansa:
[comprende ? -> Google
Letzte Frage, die ich nicht einmal beantwortet haben möchte: Nennst du das programmieren? -> Google

Aber gut, der eine ist so, der andere ist anders. Es ist nur schade, dass so viel gut gemeintes Gedankengut oftmals einfach im Gulli versickert. Aber dein Avatar ist trotzdem schön.
  Mit Zitat antworten Zitat