![]() |
Objekte auf einem Panel oder einer anderen Komponente
Hallo,
ich programmiere zur Zeit eine Klassenraum Anwendung für Schulen. Auf einem Panel oder einer anderen Komponente möchte ich Objekte (Computer, Drucker) darstellen. Nach Möglichkeit sollten die Objekte per Drag und Drop frei positionierbar sein. Außerdem wäre es schön wenn die Position der Objekte in der Registry oder einer Ini-Datei abgespeichert werden können (bevorzugt Ini-Datei) damit sie beim nächsten Programmaufruf wieder an Ort und Stelle vorzufinden sind. Zu einem späteren Zeitpunkt plane ich die Objekte als Mini Bildschirm zu konfigurieren, sodass der Lehrer sehen kann was an dem Computer passiert. Zunächst wäre es aber ausreichend wenn ein einfaches Computericon als Symbol für die Objekte angezeigt wird. Kann mir da jemand ein paar Tipps geben wie sowas zu realisieren ist und ob ich irgendwo Beispiele mit Delphi Quellcode finde ?? Vielen Dank !! |
AW: Objekte auf einem Panel oder einer anderen Komponente
Würde ein TListview mit ViewStyle vsIcon passen? Das gibt sowas wie den Windows Desktop oder Windows Explorer in der Symbol-Ansicht.
|
AW: Objekte auf einem Panel oder einer anderen Komponente
Liste der Anhänge anzeigen (Anzahl: 1)
Vielen Dank für den Tipp. Ich habe das gerade ausprobiert, sieht eigentlich schon ganz gut aus. Aber wie kann ich die Elemente per Drag und Drop anders anordnen ?
|
AW: Objekte auf einem Panel oder einer anderen Komponente
Wäre für so etwas mit absolut freier Positionierung nicht besser auf einem Bitmap/PaintBox mit Shapes das geeignete Mittel?
|
AW: Objekte auf einem Panel oder einer anderen Komponente
Zitat:
![]() Allerdings sollte der Listview schon nativ das Verschieben von Icons per Maus erlauben. Die IconOptions-Eigenschaft bestimmt, wie das Control das verschobene Icon plaziert wenn die Maus "losgelassen" wird. |
AW: Objekte auf einem Panel oder einer anderen Komponente
Also, wenn ich sowas mal gemacht habe, dann habe ich das über eine Paintbox (vielleicht in einer Scrollbox) gelöst. Für die Icons würde ich Objects erzeugen mit x,y- und width/height-Eigenschaft. Beim zeichnen gehe ich dann die Objectlist durch uns zeichne die Icons.
Über das Event OnMouseDown der Paintbox kann man fix über die ObjectList mit einer Funktion z.B. ObjextAsPoint(x.y): TObject das selektierte Icon herausfinden. Und mit der Funktion OnMouseMove könnte man das Object verschieben und Invalidate die Paintbox neuzeichnen. Auch ein PopupMenu wäre so realisierbar. (Beim Zeichnen mit BitBlt arbeiten) So kann man das mit ein paar Methoden schon so machen, als würde man dort mit richtigen Icons arbeiten. Gibt vielleicht Ärger einfachere Lösungen, aber bei mir hat das gut funktioniert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 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