AGB  ·  Datenschutz  ·  Impressum  







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

Übersetzung Class MagneticWindow

Ein Thema von EWeiss · begonnen am 9. Okt 2006 · letzter Beitrag vom 18. Dez 2006
Antwort Antwort
Seite 2 von 12     12 34     Letzte »    
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Übersetzung Class MagneticWindow

  Alt 9. Okt 2006, 16:17
Mal etwas ganz anderes - bei Deiner Kurzbeschreibung was Deine Magnetic-Klasse macht solltest Du vielleicht mal unter Delphi-Referenz durchsuchenDockSite nachsehen. Vielleicht spart Dir das eine Menge Arbeit. Wenn Du die Umstellung der Klasse auf Delphi allerdings nur als Übung machen willst, halte ich es für den Einstieg vielleicht für ein wenig zu komplex.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#12

Re: Übersetzung Class MagneticWindow

  Alt 9. Okt 2006, 16:31
Zitat von Union:
Mal etwas ganz anderes - bei Deiner Kurzbeschreibung was Deine Magnetic-Klasse macht solltest Du vielleicht mal unter Delphi-Referenz durchsuchenDockSite nachsehen. Vielleicht spart Dir das eine Menge Arbeit. Wenn Du die Umstellung der Klasse auf Delphi allerdings nur als Übung machen willst, halte ich es für den Einstieg vielleicht für ein wenig zu komplex.
Nein soll keine übung sein.

Bin mit dieser Klasse eigentlich bisher sehr gut gefahren mit meinen Player.
Möchte wenn möglich meinen Code(VB) so halbwegs erhalten.

Übung in soweit das wenn ich meinen Player umschreibe
ich auf die bisher gewonnenen Erkenntnisse zurückgreifen kann.

Werde mir das Projekt 'DockSite' wenn es eins ist trotzdem einmal anschauen

EDIT;
Sehe gerade du meinst die Delphi Hilfe .....

gruß
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Übersetzung Class MagneticWindow

  Alt 9. Okt 2006, 16:37
Zitat:
Werde mir das Projekt 'DockSite' wenn eins ist trotzdem einmal anschauen
Nein, das ist kein Projekt sondern eine Standard-Eigenschaft von Delphi. Die VCL-Komponenten sind von sich aus dockingfähig, da braucht man nur sehr wenig zu programmieren. Schau mal unter file://C:\Programme\Borland\BDS\4.0\Demos\DelphiWin32\VCL Win32\Docking nach, da ist ein Beispielprojekt.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#14

Re: Übersetzung Class MagneticWindow

  Alt 9. Okt 2006, 16:54
Zitat von Union:
Zitat:
Werde mir das Projekt 'DockSite' wenn eins ist trotzdem einmal anschauen
Nein, das ist kein Projekt sondern eine Standard-Eigenschaft von Delphi. Die VCL-Komponenten sind von sich aus dockingfähig, da braucht man nur sehr wenig zu programmieren. Schau mal unter file://C:\Programme\Borland\BDS\4.0\Demos\DelphiWin32\VCL Win32\Docking nach, da ist ein Beispielprojekt.
Habs mir mal angeschaut!
Nein das ist etwas komplett anderes da geht es um Docking in einer MDI Form
Komponente innerhalb einer Form andocken.

Bei mir docken alle übergebenen Fenster gegenseitig an
Und können über das Hauptfenster(Applikation) gleichzeitig verschoben werden.

EDIT:
Ich will aber niemanden nerven oder das Forum zumüllen.
Traue mich jetzt gar nicht mehr zu fragen

Gruß
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#15

Re: Übersetzung Class MagneticWindow

  Alt 10. Okt 2006, 15:43
Problem mit Property

Delphi-Quellcode:
Type TMagnetic = class
   constructor Create;
   constructor Destroy;
   private
    function GetSnapWidth: Integer;
    procedure SetSnapWidth(NewSnapWidth: Integer);
   public
    property SnapWidth: Integer read GetSnapWidth write SetSnapWidth;

Delphi-Quellcode:
function TMagnetic.GetSnapWidth: Integer;
begin
  Result := SnapWidth;
end;

procedure TMagnetic.SetSnapWidth(NewSnapWidth: Integer);
begin
  SnapWidth := NewSnapWidth;
end;
In Create wird die default SnapWidth zugewiesen.

Delphi-Quellcode:
constructor TMagnetic.create;
begin
  // Default snap width
  SnapWidth := 10;

  // Initialize array (handled windows info)
  m_lWndCount := 0;
end;
Hier kommt der Fehler!

Delphi-Quellcode:
                        Case True of
                          Abs(rcTmp.x1 - x1) < SnapWidth:
                           rcWnd.x1 := x1;
                          Abs(rcTmp.x1 - x2) < SnapWidth:
                           rcWnd.x1 := x2;
                        End;
Zitat:
[Pascal Error] Magnetic.pas(386): E2026 Constant expression expected
Wo liegt das Problem ?

gruß
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Übersetzung Class MagneticWindow

  Alt 10. Okt 2006, 15:49
Delphi-Quellcode:
function TMagnetic.GetSnapWidth: Integer;
begin
  Result := SnapWidth;
end;

property SnapWidth: Integer read GetSnapWidth write SetSnapWidth;
Also diese Kombination ist schon mal tödlich, da rekursiv - der Getter ruft die Property auf, diese wieder den Getter... Du solltest ein internes Feld anlegen (FSnapWidth).
Delphi-Quellcode:
  TMagnetic = class
  private
    FSnapWidth: integer;
    procedure SetSnapWidth(const Value: integer);
  public
     Property SnapWidth : integer read FSnapWidth write SetSnapWidth;
  end;
Geht übrigens vollautomatisch, wenn Du auf der Zeile stehst...
Property SnapWidth : integer ... und dann Strg-Shift-C drückst!
Uups, sorry xaromz da war ich wohl wieder zu schnell...
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#17

Re: Übersetzung Class MagneticWindow

  Alt 10. Okt 2006, 15:51
Hallo,
Zitat von EWeiss:
Problem mit Property
Vorsicht! Hier
Delphi-Quellcode:
procedure TMagnetic.SetSnapWidth(NewSnapWidth: Integer);
begin
  SnapWidth := NewSnapWidth;
end;
hast Du eine Rekursion gebaut. Die Zuweisung ruft ja wieder SetSnapWidth auf!
Delphi-Quellcode:
                        Case True of
                          Abs(rcTmp.x1 - x1) < SnapWidth:
                           rcWnd.x1 := x1;
                          Abs(rcTmp.x1 - x2) < SnapWidth:
                           rcWnd.x1 := x2;
                        End;
Das Problem ist, dass die Werte, die bei case als Möglichkeiten angegeben werden, Konstanten sein müssen.
Du musst das also umformulieren:
Delphi-Quellcode:
case Abs(rcTmp.x1 - x1) < SnapWidth of
  True:
    rcWnd.x1 := x1;
  False:
    rcWnd.x1 := x2;
end;
Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
rayman

Registriert seit: 31. Jul 2003
Ort: Lohsdorf
40 Beiträge
 
Delphi 6 Enterprise
 
#18

Re: Übersetzung Class MagneticWindow

  Alt 10. Okt 2006, 16:01
Ich glaube er meint aber:
Delphi-Quellcode:
if (Abs(rcTmp.x1 - x1) < SnapWidth) then rcWnd.x1 := x1;
if (Abs(rcTmp.x1 - x2) < SnapWidth) then rcWnd.x1 := x2;
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#19

Re: Übersetzung Class MagneticWindow

  Alt 10. Okt 2006, 16:10
Zitat von rayman:
Ich glaube er meint aber:
Delphi-Quellcode:
if (Abs(rcTmp.x1 - x1) < SnapWidth) then rcWnd.x1 := x1;
if (Abs(rcTmp.x1 - x2) < SnapWidth) then rcWnd.x1 := x2;
Nein..

Delphi-Quellcode:
                                
Case True of
   Abs(rcTmp.x1 - x1) < SnapWidth:
   Begin
   lOffx := x1 - rcTmp.x1;
   end;
   Abs(rcTmp.x1 - x2) < SnapWidth:
   Begin
   lOffx := x2 - rcTmp.x1;
   end;
   Abs(rcTmp.x2 - x1) < SnapWidth:
   begin
   lOffx := x1 - rcTmp.x2;
   end;
   Abs(rcTmp.x2 - x2) < SnapWidth:
   begin
   lOffx := x2 - rcTmp.x2;
   end;
End;
gruß
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#20

Re: Übersetzung Class MagneticWindow

  Alt 10. Okt 2006, 16:13
Zitat:
Geht übrigens vollautomatisch, wenn Du auf der Zeile stehst...
Habe ich genau nach deiner Anweisung von letztens versucht!
Bei dieser Kombination wir die procedure automatisch erstellt aber ohne Inhalt


Zitat:
(FSnapWidth).
Verstehe ich nicht dafür gibt es doch

Delphi-Quellcode:
function TMagnetic.GetSnapWidth: Integer;
begin
  Result := SnapWidth;
end;
gruß
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 12     12 34     Letzte »    


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 05:35 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