AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Komponenten während der Laufzeit verschieben
Thema durchsuchen
Ansicht
Themen-Optionen

Komponenten während der Laufzeit verschieben

Ein Thema von tofse · begonnen am 10. Jan 2012 · letzter Beitrag vom 12. Jan 2012
Antwort Antwort
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
131 Beiträge
 
Delphi XE Professional
 
#1

AW: Komponenten während der Laufzeit verschieben

  Alt 12. Jan 2012, 06:57
Hallo,

verstehe ich nicht. Habe den OutputDebugString eingebaut, und nur im mouseup wird true ausgegeben, sonst immer false.
Trotzdem funktioniert ja grundsätzlich das Verschieben

Christof
  Mit Zitat antworten Zitat
Benutzerbild von roga
roga

Registriert seit: 15. Jun 2008
Ort: Sachsen-Anhalt
109 Beiträge
 
Delphi XE8 Professional
 
#2

AW: Komponenten während der Laufzeit verschieben

  Alt 12. Jan 2012, 07:50
Hallo Christof,

ich füge hier mal einige Codeschnipsel aus meiner Komponente ein, vielleicht kannst Du damit etwas anfangen.

Delphi-Quellcode:
// Benötigte Variable
  FDragging: Boolean;

procedure OnMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ...
  // Drag wird begonnen
  FDragging := True;
  ReleaseCapture;
  Perform(WM_SysCommand, $F012, 0);
  // Folgende Zeile ist sehr wichtig! Sonst keine Auslösung
  if Assigned(OnMouseUp) then MouseUp(Button, Shift, X, Y);
end;

procedure OnMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if FDragging then
  begin
    ...
  end;
end;

procedure OnMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FDragging then
  begin
    // Drag wird beendet
    FDragging := False;
    ...
  end;
end;
DoubleBuffered sollte auch aktiviert werden.

Gruß roga
Ronald
  Mit Zitat antworten Zitat
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
131 Beiträge
 
Delphi XE Professional
 
#3

AW: Komponenten während der Laufzeit verschieben

  Alt 12. Jan 2012, 08:04
Wird das bei Dir aufgerufen ?
Code:
procedure OnMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if FDragging then
  begin
    ...
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von roga
roga

Registriert seit: 15. Jun 2008
Ort: Sachsen-Anhalt
109 Beiträge
 
Delphi XE8 Professional
 
#4

AW: Komponenten während der Laufzeit verschieben

  Alt 12. Jan 2012, 09:01
Du hast Recht, in dieser Komponente brauchte ich nur das MouseUp-Ereignis für Korrekturen. Die einfachste Lösung wäre über einen Timer, hänge Dir mal eine Demo und die Source an.
Angehängte Dateien
Dateityp: zip PanelMoveDemo.zip (211,6 KB, 26x aufgerufen)
Ronald
  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 14:11 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