![]() |
Re: Übersetzung Class MagneticWindow
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Ok, genug den Blutdruck beruhigt... Gute Nacht! |
Re: Übersetzung Class MagneticWindow
@Muetze1
Hat dich jemand aufgefordert dein Kommentar abzugeben? Ich habe dich jetzt nicht drum gebeten. Also immer locker bleiben Wenn du probs mit deinen Blutdruck hast ist das nicht das richtige Umfeld für dicht. Das ist nicht böse gemeint, ich denk halt an deine Gesundheit. :-D Zitat:
Da muss man noch arbeiten. Zitat:
Als Hochtitulierter, Studierter ? bestimmt! Hätte ich dir etwas mehr zugetraut. Zitat:
Na gut habe jetzt wie du siehst jemand anderen gefunden mit einer weniger aufreibenden Ausdrucksweise. Benötige deine Hilfe für die zukunft auch nicht mehr ;) wenn überhaupt was rüberkam, was halbwegs Hilfreich gewesen wäre. Ja,ja ich war zu dumm dazu dich zu verstehen. Aber egal ! So kannst deinen ach so argen Blutdruck schonen. Für mich ist das Thema abgehakt .. könnt euch jetzt über diese Post noch etwas auslassen. ABER ! Denkt an euren Blutdruck :lol: Guen Morgen. EDIT: @Webmaster.. Sorry aber das mußte mal raus bin nicht auf streit aus .. aber solche Leute nerven !!!! |
Re: Übersetzung Class MagneticWindow
@EWeiss: Stänker hier nicht so rum! Deine Ausführungen lassen darauf schließen, das Du deinem Alter nicht würdig bist. Setzen, sechs! :twisted:
Immerhin pöbelst Du hier rum, beschwerst Dich wegen der ach so unqualifizierten Hilfe und meinst Dann auch, noch, das "selbst" wir "noch was lernen" können. Ich empfinde das als unverschämt. Weiterhin beschwerst Du dich, das Muetze1 einen (fundierten) Kommentar abgibt. Hmmm... Und dann, NACH den Pöbeleien, sich auch noch scheinheilig beim webmaster zu entschuldigen, ist schon mehr als :oops: peinlich: Entweder Dampf ablassen, oder nicht. Aber erst pöbeln und dann entschuldigen, nee, also... Dessenungeachtet: So eine MagneticWindow-Klasse ist doch einfach zu implementieren. Wieso machst Du das nicht selbst? Ich habe eine, und wollte Sie Dir zur Verfügung stellen, aber so lasse ich das wohl (Werde es aber bei Gelegenheit an anderer Stelle nachholen). Kleiner Tipp: SharedMemory, ein Masterfenster und im SharedMemory melden sich alle Kindfenster an (mit ihrem Handle sowie den aktuellen Abmessungen). Bewegt sich das Masterfenster, kann es dann einfach alle Kindfenster mitbewegen. "Magnetisch" sind sie auch, denn da sie wissen, wo die anderen Fenster sind, kleben sie ab einem Abstand von <3pxl einfach am Nachbarn. Dann auf die Fenster noch eine Skinengine und fertig. Krieg dich mal wieder ein und :cheers: auf VB :wall: Von renomierten Programmierern stammt übrigens die Aussage, das mit VB programmierte Anwendungen per se nicht laufen. Ob das so ist, weiss ich nicht, aber ich weiss, das VB vor allen Dingen in IT-Abteilungen eingesetzt werden, die von Amateuren durchsetzt sind. Insofern hat es auch etwas mit Etikette zu tun, ein VB-Mist *nicht* in Delphi zu übersetzen. Vor allen Dingen diese 'Hacks'. Sowas bescheuertes: Eine Routine, die soetwas implementiert, kommt in den Mülleimer: Wer richtig programmieren kann, braucht so etwas nicht. |
Re: Übersetzung Class MagneticWindow
Hallo,
@Muetze: Danke für die Erklärung. Ich hatte den oben verlinkten Code nur überflogen, weil mir gleich schlecht wurde. Bin ich froh, dass der Kelch VB an mir vorüberging :mrgreen: . @EWeiss: Ich kann mich alzaimar nur anschließen. Gruß xaromz |
Re: Übersetzung Class MagneticWindow
Moin, moin zusammen,
etwas tiefer die Bälle bitte, es regnet schon fast.. Hier kommen zwei Programmierichtungen auffeinander wo offentischtlich das gegenseitige Einarbeitungskapital etwas niedrig ausgefallen ist. Da ist ein VB-Programmierer der etwas auf Delphi versucht umsznusetzen. Prima, er hätte ja auch C# nehmen können. Das man mit VB auch Assembler nutzen muß fasziniert mich sogar etwas! Etwas mehr Toleranz gegenüber dem Delphi-Slang muß da allerdings investiert werden, den die Progracmmierkonzepte unterscheiden sich doch reichlich. Jeder der sich mal mit Office-Automation beschäftigt hat, kommt um VB nicht herum, das sind auch etliche Delphi Entwickler! Das dürfte wohl auch auf der DelphIseite abgehakt sein. ------------------------------------------------------------------------------------------------------------------------- Das Delphi Vorteile bietet ist offensichtlich also Konsens! Damit kann man arbeiten. ------------------------------------------------------------------------------------------------------------------------- Zurück in die Zukunft, zum Thema: ------------------------------------------------------------------------------------------------------------------------- Was macht der Assemblercode? Welche Aufgabe hat das? Welchen Variablenwert ändert das Ding? ------------------------------------------------------------------------------------------------------------------------- Ohne eine allgemeine Beschreibung ist das nicht in das Objektmodell von Delphi umzusetzen. Welcher Befehl fehlt dem VB, dass man hier auf Assembler umsteigen muß? Viele Grüße in die Runde // Martin |
Re: Übersetzung Class MagneticWindow
Wieso dafür eigentlich eine eigene Klasse? Um die Funktionlität generell zu ermöglichen, sollte doch so was ausreichen:
Delphi-Quellcode:
type
TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure OnMove(var Msg: TWMMove); message WM_MOVE; procedure OnMoving(var Msg: TWMMoving); message WM_MOVING; private { Private declarations } FTopLeft : TPoint; public { Public declarations } end; var Form1: TForm1; implementation uses unit2; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin TForm2.Create(self).Show; end; procedure TForm1.OnMove(var Msg: TWMMove); var i : integer; begin inherited; for i := 0 to Screen.FormCount -1 do begin if Screen.Forms[i] is TForm2 then begin // Differenz zwischen alter und neuer Position ebenfalls // auf die anderen Fenster anwenden Screen.Forms[i].Top := Screen.Forms[i].Top+Top-FTopLeft.X; Screen.Forms[i].Left := Screen.Forms[i].Left+Left-FTopLeft.Y; end; end; end; procedure TForm1.OnMoving(var Msg: TWMMoving); begin // Alte Postion merken FTopLeft := Point(Top, Left); end; |
Re: Übersetzung Class MagneticWindow
Zitat:
Egal, prinzipiell hast Du Recht, die Implementierung ist wirklich relativ simpel. Es sollen aber auch andere Applikationen magnetisch sein, denn es könnte sein, das ein 'Childfenster' in C++ oder -ja :zwinker: das geht- in VB implementiert wird (Stichwort: Plugins). Und dann sollte man schon zu etwas generischen Methoden greifen. Ich habe Windows-Messages und Shared Memory verwendet. Weiterhin ist meine Klasse skinfähig und wenn ein neuer Skin geladen wird, sollte das schon irgendwie mitgeteilt werden. Ergo kapselt man diese Funktionalität dann doch in eine eigene Klasse. Bei mir war das ein 'MagneticManager', der sich um die Visualisierung und das Management gekümmert hat.
Delphi-Quellcode:
Wusste gar nicht, das das geht... Aber zappeln da die Fenster nicht?
...
Screen.Forms[i].Top := Screen.Forms[i].Top+Top-FTopLeft.X; Screen.Forms[i].Left := Screen.Forms[i].Left+Left-FTopLeft.Y; ... |
Re: Übersetzung Class MagneticWindow
Zitat:
Zitat:
|
Re: Übersetzung Class MagneticWindow
Zitat:
|
Re: Übersetzung Class MagneticWindow
Union hat das fatal einfach gelöst. Mir fällt dazu nur ein, dass man auch mit einer Komponente auf die Messages eines Forms zugreifen kann. Man muß nur die Parents durchlaufen bis man am Form angekommen ist und klinkt sich dann ein.
Ach so, so ein Ingenieur- oder Informatiikstudium hat aus gutem Grund einen Titel. Das wird einem nicht geschenkt und ist einfach der Nachweiss, für Biss und Ausdauer und (Prüfungs-)(Sresstoleranz auf einem Arbeitsgebiet. Es gibt natürlich auch andere Nachweismöglichkeiten, z.B. die Bill Gates-Variante. Grüße // Martin |
Re: Übersetzung Class MagneticWindow
Habe gerade den Tab hier im FF entdeckt.
Unions code lässt sich ziemlich easy in eine Komponente werfen, die man dan auf ein Form ziehen kann. Habe das eben mal durchprobiert und es geht eigentlich...
Delphi-Quellcode:
Natürlich ist es Blödsinn das ganze von der Seite aufzuwickeln.
unit uFormMagnet;
interface uses Classes, Forms, Messages, Windows; type TFormMagnet = class(TComponent) private fPreviousLocation : TPoint; fParentsOldWinProc : TWndMethod; fParent : TCustomForm; protected procedure WindowProcHandler(var message: TMessage); virtual; procedure OnMove(var msg: TWMMove); message WM_MOVE; public property Parent : TCustomForm read fParent; procedure AfterConstruction; override; procedure BeforeDestruction; override; end; implementation uses Types; { TFormMagnet } procedure TFormMagnet.AfterConstruction; begin inherited; if Owner is TCustomForm then begin fParent := TCustomForm(Owner); fParentsOldWinProc := Parent.WindowProc; Parent.WindowProc := WindowProcHandler; fPreviousLocation := Point(Parent.Left, Parent.Top); end; end; procedure TFormMagnet.BeforeDestruction; begin inherited; if Assigned(fParentsOldWinProc) then Parent.WindowProc := fParentsOldWinProc; end; procedure TFormMagnet.WindowProcHandler(var message: TMessage); begin if message.Msg = WM_MOVE then OnMove(TWMMove(message)); if Assigned(fParentsOldWinProc) then fParentsOldWinProc(TMessage(message)); end; procedure TFormMagnet.OnMove(var msg: TWMMove); var i : Integer; form : TCustomForm; begin for i := 0 to Screen.FormCount - 1 do begin form := Screen.Forms[i]; if form <> Parent then begin // Differenz zwischen alter und neuer Position ebenfalls // auf die anderen Fenster anwenden form.Top := form.Top + (Parent.Top - fPreviousLocation.y); form.Left := form.Left + (Parent.Left - fPreviousLocation.x); end; end; fPreviousLocation := Point(Parent.Left, Parent.Top); end; end. Eigentlich sollte derjenige, der sich an ein Fenster gedockt hat, sich in dessen MessageLoop klinken und mitbewegen und beim Abdocken wieder herausklinken. Die simple Lösung oben würde schon bei einem 2. Form mit der Komponente drauf oder eine weitere auf der gleichen Form aus den Fugen geraten. ;) |
Re: Übersetzung Class MagneticWindow
Zitat:
1 Prüfung zu den Screenrändern fehlt 2 Taskbar wurde nicht mit einbezogen 3 spätstens mit der 3 Form bricht das Gerüst zusammen 4 Sobald von der Masterform getrennt ist der magnetismus der anderen Formen nicht mehr gegeben 5 die ausmaße der parent Formen wurde nicht berücksichtigt 6 Kein TRECT Array 7 Kein HWND Array usw... über performance müssen wir gar nicht erst reden. Zitat:
Die Parents sollten bei der Übergabe von vorn herein schon zu einer HWND Collection addiert werden. Dann muss man nix suchen, da vorhanden. Davon sehe ich in seiner Lösung auch nichts. gruß |
Re: Übersetzung Class MagneticWindow
Zitat:
Es ging nur um ein Beispiel wie man a) simpel die Nachrichten eines Fensters abfangen kann b) andere Fenster mitbebewegen kann. Zitat:
Herauszufinden ob ein Form an die Hauptform gedockt ist wirst du doch noch hinkriegen, oder? :roll: Zitat:
Zitat:
Nix? Richtig! Zitat:
Es ist übrigens enorm schwierig Argumente zu suchen, meine Meinung darüber zu ändern, warum ich Benutzer einer gewissen "Programmier"-sprache nicht ausstehen kann. Vor allem wenn sie sich alle Mühe geben, jedem Detail des herrschenden Klischees zu entsprechen. :? |
Re: Übersetzung Class MagneticWindow
Zu deinen Antworten.
Einfach Genial hast dich selbst übertroffen. Zitat:
Verzichte Dankend auf fertigen Code wenn er so .. eine zeile höher. Zitat:
Nur dokumentieren wie schlecht die Codeansätze sind.. Kein Hand kein Fuss. Man übergibt das Handle seiner anwendung AddMainWindow(MasterHandle) Mit jeder neu aufgerufenen Form wird das Handle dieser Form mit AddMainWindow(Form, MasterHandle) zum ParentWindow(MasterHandle) als Collection addiert. Was ist da so schwer ? Ist ein leichtes abgeleitet davon Records und andere benötigte funktionen aus der Collection zu übergeben/zu vergleichen. Zitat:
Ich wiederhole mich !!! :-D Zitat:
Zitat:
Du solltest aber mal von deinen Egotripp runterkommen .. Delphi über alles. :mrgreen: gruß |
Re: Übersetzung Class MagneticWindow
Zitat:
Es ist im Übrigen generell nicht sehr performant, wenn man mehrere Fenster gleichzeitig verschiebt. Letztendlich mündet alles, ob Delphi oder VB, in einem Sendmessage(WM_WINDOWPOSCHANGED...) und das löst wieder eine unendliche Kette von Folgenachrichten aus. Eine Lösung, wie das peformanter vonstatten gehen kann, würde mich aber sehr interessieren. |
Re: Übersetzung Class MagneticWindow
Emil, kommt mal wieder ein wenig runter. Dein Interesse an einer sachlichen Diskussion ist nicht mehr erkennbar.
Wenn es nur noch um hohles Geblöke geht oder die Frage, nun doch noch irgendwie Recht zu behalten, dann bitte ich darum, diese Diskussion woanders fortzusetzen. Aktuell ist dieses Thema in einer Situation festgefahren, in der wir lediglich primitivem Herumgetrolle beiwohnen können und dafür zahle ich den Server nicht. Also: Reißt Euch allesamt (!) am Riemen und hievt diese Diskussion wieder auf ein ordentliches Level. Wer daran kein Interesse hat, möge diesem Thema fern bleiben. Union hat dankenswerterweise die Frage nach der Performanz aufgegriffen. Vielleicht ist das ja ein netter Punkt zum Anknüpfen. |
Re: Übersetzung Class MagneticWindow
Zitat:
Es löst gerade mal 1 nachfolgende Nachrichten aus. WM_GETMINMAXINFO Danach wird WM_WINDOWPOSCHANGED continue processing false ausgeführt. gruß |
Re: Übersetzung Class MagneticWindow
Moin, moin,
THEMA Eigenformsuche durch Komponente: Es gibt da zwei Fälle: 1. Die Komponente ist von TComponent abgeleitet. Diese kann sie auf Panels liegen, die wieder auf Panels liegen... Da kann man sich zur Form hochhangeln. Das ist aber im Create der Komponente ein einmaliger Vorgang. Dann hat man den Pointer auf das Form in einer Variable. 2. Die Komponente ist von TObjekt abgeleitet. Dann ist ihr Parent automatisch das Form. Zitat:
THEMA Perfomance: Innerhalb einener MDI Applikation kann man auch ohne Windows-Messages auskommen, denn in der MDI-ChildListe hat man die anderen Childfenster. Über ihre Position und Größe lassen sich dann die Fensterabstände berechnen und das Verschieben direkt ohne Message erreichen. So long // Martin |
Re: Übersetzung Class MagneticWindow
Hi,
welche Aktion hat diese (und nur diese?) Nachricht ausgelöst? Die VB-Klasse oder ein Delphi-Programm? Oder einfach das manuelle Verschieben eine bleibigen Fensters? |
Re: Übersetzung Class MagneticWindow
Zitat:
Winspector Spy überprüft nur meine Fenster andere Fenster werden nicht berücksichtigt. gruß |
Re: Übersetzung Class MagneticWindow
Also bei mir löst es immer folgendes aus (in den "angedockten" Fenstern):
![]() |
Re: Übersetzung Class MagneticWindow
Zitat:
Man hätte ja auch noch die möglichkeit
anstelle von MoveWindow zu verwenden. Dürfte die performance wieder etwas verbessern. Aber das ist ja allgemein bekannt. gruß |
Re: Übersetzung Class MagneticWindow
Ja, darüber strieten sich die Experten. Wenn ich mein altes Beispiel wie folgt ändere:
Delphi-Quellcode:
... dann verbessert sich die Performance nicht merklich. Und es werden immer noch die selben Nachrichten ausgeführt, nur eben in geringerem zeitlichen Abstand. Vielleicht elimiert der Aufwand für den Aufbau der Liste den dadruch entstehenden Performancegewinn ?
procedure TForm1.OnMove(var Msg: TWMMove);
var i, NumWindows : integer; hWinPosInfo : Cardinal; OldPos : TRect; begin inherited; NumWindows := 0; for i := 0 to Screen.FormCount -1 do begin if Screen.Forms[i] is TForm2 then begin inc(NumWindows); end; end; hWinPosInfo := BeginDeferWindowPos(NumWindows); for i := 0 to Screen.FormCount -1 do begin if Screen.Forms[i] is TForm2 then begin // Differenz zwischen alter und neuer Position ebenfalls // auf die anderen Fenster anwenden GetWindowRect(Screen.Forms[i].handle, OldPos); hWinPosInfo := DeferWindowPos(hWinPosInfo, Screen.Forms[i].Handle, 0, OldPos.Left+Left-FTopLeft.Y, OldPos.Top+Top-FTopLeft.X, OldPos.Right-OldPos.Left, OldPos.Bottom-OldPos.Top, SWP_NOZORDER or SWP_NOACTIVATE); end; end; EndDeferWindowPos(hWinPosInfo); end; |
Re: Übersetzung Class MagneticWindow
Zitat:
Die handles und Recs in einen array einzubinden. Jeder zugriff auf die Form (bei VB zumindest so) setzt eine neue Initialisierung dieser vorraus. das geht auf die performance. Der Vorteil es wird keine Form mehr abgefragt sondern nur noch über die API IsWindow(handle) or IsWindow(hParent) die handles selbst überprüft. Gruß |
Re: Übersetzung Class MagneticWindow
Zitat:
Zitat:
|
Re: Übersetzung Class MagneticWindow
@EWeis: Evtl. solltest du dir doch mal ein gutes Buch über Delphi holen und mal von Null anfangen? :duck:
|
Re: Übersetzung Class MagneticWindow
Zitat:
gruß |
Re: Übersetzung Class MagneticWindow
Zitat:
Denke wenn man zu einer anderen Sprache wechselt kann man nicht vorraussetzen das die gepflogenheiten der neuen Sprache direkt bekannt sind. Delphianer machen das mit ihren Boardmitteln weil bekannt ich über die API was bitte schön ist da verkehrt ? Wie schon gesagt es führt zum gleichen ziel, wenn auch von euch mit unverständnis ausgelegt! Übrigends habe ich festgestellt das einige hier mit API überhaupt nichts anzufangen wissen. Weil sie 'nur' mit Boardmitteln arbeiten. Und fragen zu stellen davor habe ich mich noch nie gefürchtet. Dumme Fragen gibt es nicht ... nur dumme Antworten. In dem Sinne . Gruß |
Re: Übersetzung Class MagneticWindow
Zitat:
Es macht halt nur dann Sinn wenn man es von der VCL nicht vorgesetzt bekommt. Denn redundanter Code ist nicht wirklich das Gelbe vom Ei. Irgendwann in den nächsten 2 Jahren wird die VCL von ANSI auf Unicode umgestellt. Code, der daran vorbeigeht könnte dann schnell Ärger machen. |
Re: Übersetzung Class MagneticWindow
Liste der Anhänge anzeigen (Anzahl: 1)
hi:
i found a better Class for make magnet form, please look at: ![]() ![]() you can download it here: |
Re: Übersetzung Class MagneticWindow
This one seems to be ingenious! :bounce1: :bounce1:
Thank you very much! |
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Falsche Sparte, da delphispezifisch |
Re: Übersetzung Class MagneticWindow
Zitat:
mir verwendete Classe zu leisten vermag. gruß |
Re: Übersetzung Class MagneticWindow
Zitat:
Zitat:
Wie weit bist Du eigentlich mit deinen Bemühungen? Willst Du uns Deine Ergebnisse nicht einmal präsentieren? |
Re: Übersetzung Class MagneticWindow
Zitat:
Aber ! Die ´Klasse sollte schon alles beinhalten und das ohne AV. Damit meine ich .. Die Screenränder beachten, die Form darf nicht drüber hinaus gehen. Eine Snap funktion vorweisen welche bei eingestellter Pixelanzahl automatisch am screenrand oder bei anderen Formen des gleichen Projekts andocken. Unabhängig davon ob die Hauptform im verbund mit einer anderen Form ist. Alle Formen(Fenster) sollten untereinander andockbar sein auch unabhängig von der Masterform. screenrand,snap muss dabei ebenfalls funktionieren. Das ganze sollte ganz einfach aus einer Plugin Schnittstelle (So wie bei mir) verwendet werden können. Hat den vorteil das man diese Funktionen nicht extra in den plugins einbinden muss. aus dem Plugin übergeben .. dann merkt die Hauptanwendung das, also nur das Hwnd des Fensters aus dem Plugin. Zusätzlich Mit und ohne Titelleiste.. zu verschieben sein. So.. und das wichtigste alles nur mit einer zeile Code. So wie in der von mir benutzen OpenSourceVb-Classe. Ich selbst habe leider im moment nicht viel zeit was das proggen angeht. Deshalb habe ich diese Classe(Übersetzumg) erst mal zurseite gelegt. Mache weiter wenn ich wieder bock dazu habe. :mrgreen: gruß EDIT: Aber wir hatten ja schon das vergnügen. :zwinker: Noch mal zum besseren verständnis! Was du als Hack bezeichnet hast ist keiner. Bei VB ist halt das problem das man mit Subclassing in der IDE nicht arbeiten kann wenn es darum geht Fehler aufzuspüren. Die IDE schmiert dann einfach ab ohne irgendeine Meldung.(MS-Mist!) Die ASM Routine beinhaltet nichts anderes als die 'Subclass, Winproc' stellt diese VB also als Maschinencode zur verfügung damit bei der Fehlersuche innerhalb der IDE (sollte man einen Breakpoint) in der Winproc setzen es nicht zum Absturz kommt. In Delphi ist dieser ASM-Code nicht nötig!!! Wollte das nur nochmal gesagt haben. M Zitat:
Ohne fremde Fenster im Hintergrund macht es sich bemerkbar. Wenn andere Fenster dahinter sind bringt es keinen Vorteil da beim ziehen die Fenster dahinter auch neu gezeichnet werden müssen. Das geht dann auf die performance. |
Re: Übersetzung Class MagneticWindow
Wozu über Perfomance sprechen?
Kann nicht egal sein wieviel CPU Zeit das verschieben von Fenstern in Anspruch nimmt, solange die CPU nicht bei 100% landet? *provozier* Und wie schnell das Fenster wieder bereit für Ereignisse ist ist wohl auch egal wenn es unter 500 ms dauert, oder? Kann man da nicht einfach doppelt gepufferte Fenster nehmen so das die Bewegungen flackerfrei ablaufen? (Unqualifizierte Meinung von jemandem der für sowas die Dock Eigenschaften benutzt) |
Re: Übersetzung Class MagneticWindow
Zitat:
Die Zeit kann schon sehr lang sein. Könnte ja meine Form in zeitlupentempo über den Desktop ziehen dann dauert es unter umständen Minuten. Solange wie das Mousedown ereignis nicht aufgelößt wird befindest du dich immer noch in der releasecapture methode und solange lastest du deine CPU aus. Unabhängig davon ob du das Fenster nun schiebst oder nicht. Hat aber nix mit der doppelpufferung des fensters zu tun. gruß |
Re: Übersetzung Class MagneticWindow
Zitat:
Zitat:
Schnöde Windows-Fenster zu bewegen ist keine Kunst, aber mit Bitmaps, Alpha-Blending (wegen der weischen Ränder) und sonstigem Schnickschnack wird das schon haarig. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 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