Entwickler-Ecke

Sonstiges (Delphi) - Fenster Verschieben und image mouse over


hibbert - So 25.05.03 22:14
Titel: Fenster Verschieben und image mouse over
Hallo,
ich habe mal wieder 2 Fragen:
1.Ich habe eine neue Form erstellt und habe den BorderStyle auf bsNone gesetzt, nun sind ja alle Rahmen der Form verschwunden, nun habe ich meinen eigenen Rahmen als Imgae dahin gesetzt. Wie kann ich das Fenster jetzt noch verschieben?

2. Beim label gibt es das onmouseenter, aber beim image nicht, wie kann ich ein onmouseenter für ein Image machen?

ach und weil ich gerade dabei bin noch ne dritte Frage:
3. Immer wenn ich über Delphi (ein selbstgeschriebendes Update Programm) eine Datei aus dem Internet lade, frieren alle meine Animationen ein. Das sieht net schön aus, was kann ich dagegen machen?

4. Wie kann ich herrausfinden wieviel % der datei schon heruntergeladen wurden und wie lange es noch dauern wird.

thx hibbert

achso: wenn du nicht alle fragen beantworten kannst, egal hauptsache das ich irgendwann mal alle Fragen beantwortet bekomme. :wink:

nochmal thx hibbert


Delete - So 25.05.03 22:32
Titel: Re: Fenster Verschieben und image mouse over
hibbert hat folgendes geschrieben:
Hallo,
ich habe mal wieder 2 Fragen:

Für jede frage bitte einen eigenen Thread auf machen.
Zitat:

1.Ich habe eine neue Form erstellt und habe den BorderStyle auf bsNone gesetzt, nun sind ja alle Rahmen der Form verschwunden, nun habe ich meinen eigenen Rahmen als Imgae dahin gesetzt. Wie kann ich das Fenster jetzt noch verschieben?

In dem du auf ONMouseDown und OnMouseMove des TImages reagierts.
Zitat:

2. Beim label gibt es das onmouseenter, aber beim image nicht, wie kann ich ein onmouseenter für ein Image machen?

Wozu? Um dein Problem mit dem Verschieben zu lösen ist es überflüssig. Siehst du, das kommt dabei raus, wenn man mehrere Fragfen in einen Thread packt.
Zitat:

ach und weil ich gerade dabei bin noch ne dritte Frage:
3. Immer wenn ich über Delphi (ein selbstgeschriebendes Update Programm) eine Datei aus dem Internet lade, frieren alle meine Animationen ein. Das sieht net schön aus, was kann ich dagegen machen?

Pack es in einen separaten Thread oder wenn du die Indy-Komponenten benutz, dann nutz TIDAntiFreeze oder wie die haißt.
Zitat:

4. Wie kann ich herrausfinden wieviel % der datei schon heruntergeladen wurden und wie lange es noch dauern wird.

Jetzt sind wir schon soweit, dass du sogar Fragen zusammenwirfst, die in unterschiedliche Sparten gehören.
Kommt drauf an, was du für Komponenten benutz. Die Indys kennen onWorkbegin und OnWork. Bei den Fastnet gibt es OnBytesSent.


Raphael82 - So 25.05.03 22:32

Mh, zuerstmal muss gesagt werden, dass es ganz nett wäre für jede Frage einen extra Thread zu beginnen, jetzt stehen unter einer Überschrift gleich mehrerer verschiedene Fragen..

Zur Beantwortung:

1.
Um das Fenster trotzdem verschiebbar zu machen kannst du dieses hier tun:

Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 ReleaseCapture;
 Form1.perform(WM_SysCommand, $F012, 0);
end;


Habe die Funktion direkt aus einem meiner Programme entnommen. Hier liegt eine Memo über das ganze Formular (align=alClient). Klicke ich auf das Memo und halte die linke Maustaste gedrückt kann ich das Fenster verschieben. Du musst also den Code in die OnMouseDown-Funktion der Komponente einfügen, welche nachher als Fläche zum Verschieben dienen soll, zBsp Form1.

2.
Indem du der Komponente dieses Event vererbst.

3.
Niemand hier kennt dein Programm deswegen kann dir darauf niemand eine Antwort geben...

4.
Dazu solltest du dir die Hilfe der Komponente ansehen, welche du zum Download benutzt. Wenn keine vorgefertigte Angabe der bislang heruntergeladenen Datei in % da ist so musst du dir das eben selber errechnen. Kleiner Tipp:

Bisher in % = Bisher heruntergeladene bytes / Dateigröße in bytes * 100

Wenn du angeben würdest, welche Komponente du benutzt, könnte man dir sicher besser helfen. Also in Zukunft etwas genauer bitte..

MfG, Raphael


toms - So 25.05.03 22:33

1) http://www.swissdelphicenter.ch/de/showcode.php?id=417

2) ht[url]tp://www.swissdelphicenter.ch/de/showcode.php?id=1068[/url]

3 + 4) Verwendest du eine Komponente zum Herunterladen/ Was für eine?


Raphael82 - So 25.05.03 22:34

Mist, Luckie war wohl schneller..aber nur ein paar Sekunden :D