AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TGraphicControl verschieben

Ein Thema von oki · begonnen am 28. Jun 2007 · letzter Beitrag vom 28. Jun 2007
Antwort Antwort
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

TGraphicControl verschieben

  Alt 28. Jun 2007, 07:25
hi Leute,

Matzel hat hier Komponente verschieben einen sehr einfachen und guten Weg gezeigt, wie man eine Komponente über WM_SYSCOMMAND's verschieben und in der Größe ändern kann. Leider gilt das nur für TWinControls. Wenn ich nicht was falsch gemacht habe, dann klappt das aber nicht bei TGraphicControl.

Bsp. für TWinControl im Ereignis OnMouseDown:
Delphi-Quellcode:
    //Fängt alle Mausereignisse ab
    ReleaseCapture;
    // mit TWinCotrol verschieben, $F012 verschiebt das Control
    TWinControl(self).Perform(WM_SYSCOMMAND, $F012, 0);
Gibt es sowas auch für TGraphicControl?

Das hat bei mit nicht geklappt:
Delphi-Quellcode:
    //Fängt alle Mausereignisse ab
    ReleaseCapture;
    // mit TWinCotrol verschieben, $F012 verschiebt das Control
    TControl(self).Perform(WM_SYSCOMMAND, $F012, 0);
Gruß oki
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TGraphicControl verschieben

  Alt 28. Jun 2007, 07:28
Das wird damit zu tun haben, dass TGraphicControl kein Handle hat. Du könntest aber von TCustomControl ableiten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: TGraphicControl verschieben

  Alt 28. Jun 2007, 07:41
Hallo oki,

in diesem Beitrag findest du einen Code, der das Verschieben von TShapes mit der Maus ermöglicht.

Gruß Hawkeye
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#4

Re: TGraphicControl verschieben

  Alt 28. Jun 2007, 07:55
@DaddyH: Das ist so richtig; nutze ich auch für meine anderen Kompos. Nun ist aber das Problem, das ich Verbindungslinien zwischen meinen Kompos brauche. Bei TGraphicControl wird nur die Linie die ich zeichne angezeigt. Bei TCustomControl auch der Hintergrund. Somit verdeckt das Control dann meine anderen Komponenten, was TGraphicControl nicht macht.

@Hawkeeye219: Ich nenne das mal den "klassischen Weg". Die Variante von Matzel ist halt sehr elegant. Bei dem von dir gezeigten Code hatte ich immer das Gefühl, das das Control manchmal hinter der Mouse nicht so richtig hinterher kommt.
Falls nicht noch einer ne Idee für Matzels Weg hat werd ich aber diese nehmen.

Dank und Gruß

oki

[edit] Text verständlicher gemacht. [/edit]
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: TGraphicControl verschieben

  Alt 28. Jun 2007, 08:54
Hi,

für ein TLabel welches mit Drag Drop verschoben wird, hatte ich mal eine kleine Demo geschrieben. Das ist natürlich auch komplizierter als mit dem Code von Mazel. Eventuell kannst du davon ja was gebrauchen.
Miniaturansicht angehängter Grafiken
label_174.jpg  
Angehängte Dateien
Dateityp: zip labeldragdrop_107.zip (10,2 KB, 12x aufgerufen)
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6

Re: TGraphicControl verschieben

  Alt 28. Jun 2007, 09:28
Hi Bitsetter,

Dank für deine Hilfe. Leider hilft mir das nicht weiter. Liegt aber an meiner halb konkreten Fragestellung.

Ich baue mir gerade eine Kompo, mit der ich einzelne Controls auf meinem Bildschirm miteinander graphisch verbinden will. Das ist leide komplizierter als ich gedacht habe. Wer Visio und die enthaltenen Verbinder kennt, der weiß was ich meine. Nun hab ich hier mehrere Probleme:

- nur die Linien und Punkte dürfen gezeichnet werden,
- das dahinter befindliche Control muß transparent sein um andere Controls nicht zu verdecken,
- durch das Ziehen der Punkte müssen die Linien "mitkommen",
- wird über den Rand des Controls gezogen, muß sich die Größe des Controls logischerweise ändern,
- Beim verschieben einer "äußeren" Linie nach "innen" soll sich das Control automatisch auf die notwendige Größe reduzieren,

Das nur mal für den Grafikteil.

Ich häng mal einen Screenshot ran.

Gruß
Miniaturansicht angehängter Grafiken
connector_138.png  
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz