![]() |
Panel mit nicht sichtbarem Klickbereich
Ich möchte gerne auf einem Panel einen definierten Bereich haben (Rechteck oder Viereck, nix kompliziertes), in dem durch einen Mausklick darauf z.B. ein bis dahin versteckter Button an anderer Stelle des Panels sichtbar wird. D.h. nur wer weiss, wo er hinklicken muss, kommt auch an den ansonsten nicht sichtbaren Button. Ich bräuchte mal eine Idee, wie ich das realisieren könnte - wahrscheinlich sehe ich mal wieder den Wald vor lauter Bäumen nicht, aber so ist es halt gerade...
Hartmut |
AW: Panel mit nicht sichtbarem Klickbereich
Im OnMouseDown bekommst du die Klickkoordinaten und kannst mit
![]() Ich würde so etwas aber z.B. mit dem Drücken der Strg-Taste kombinieren, damit es niemand zufällig trifft. |
AW: Panel mit nicht sichtbarem Klickbereich
Noch ein bisschen einfacher (aber auch amateurhafter :-)) geht es auch, wenn du ein weiteres Panel2 in das bestehende Panel1 legst. Setzte die Eigenschaften borderstyle usw. von Panel2 so, dass man es nicht mehr sehen kann. Visisble und Enabled müssen aber auf true stehen bleiben. Dann machst du das OnClick-Ereignis für das nun nicht mehr erkennbare Panel2 und sagst dann: Button1.Visible:=true
|
AW: Panel mit nicht sichtbarem Klickbereich
Irgendwo hinklicken und so tun, als wäre da ein Button,
oder irgendwo hinklicken und ein Button wird sichtbar, welcher sich danach anklicken lässt?
Delphi-Quellcode:
// das Erste (wurde in Bereich geklickt)
procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Rect(8, 8, 50, 50).Contains(Point(X, Y)) then machwas; end; // oder das Zweite (wurde da hingecklickt, wo der Knopf mit Visible=False wäre) procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button1.BoundsRect.Contains(Point(X, Y)) then Button1.Visible := True; end; [edit] Ja, oder eben mit der Funktion ![]() oder selbstgemacht
Delphi-Quellcode:
.
if (X > 8) and (X < 50) and (Y > 8) and (Y < 50) then
|
AW: Panel mit nicht sichtbarem Klickbereich
Geht auch ohne viel Aufwand in dem man ein TImage entsprechend platziert und auf dessen OnClick reagiert.
|
AW: Panel mit nicht sichtbarem Klickbereich
@Jaenike: Gute Idee mit der Strg-Kombi - danke!
@Papaschlumpf73: Ebenfalls gut! Mir ist schon klar, dass das ein wenig primmi ist, aber bevor ich eine ganze Nutzerverwaltung mit Rechten für ein so kleines Programm hochziehe, war das eine (zugegeben seeeehr einfache) Idee eines Schutzes. @himitsu: das entspricht wohl dem Vorschlag von Jaenike - aber ja, genausoetwas war angedacht...danke für den Quelltext...da kann ich noch schneller testen:lol: @Uwe Rabbe: Auch gut! Danke euch für die Ideen - ich werde mal testen! Hartmut |
AW: Panel mit nicht sichtbarem Klickbereich
Zitat:
Image und PaintBox haben den Vorteil, dass man sie im Designer sieht. Oder die Anderen erst zur Laufzeit im Constructor bzw. OnCreate unsichtbar machen. Wobei PaintBox von den Beiden das Ressourcenschonenstere ist, da eh kein Bild gemalt werden wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz