|
| Autor |
Nachricht |
Slay2oo7_ Tutorial Leser

Anmeldedatum: 20.07.2007 Beiträge: 34 Wohnort: C:\Windows\XRooTX
|
Form verschieben, im laufendem Prozess verbieten?
Verfasst am: 19.02.2008, 20:13 |
|
|
Hey Leute,
wollte eigentlich eine Checkbox machen, die man "Aktiviert", und dann das form verschieben unterbindet..., nur gibt er mir immer nur ne fehlermeldung -,-...
Das ist mein Code
| Code: | Private Sub move_cmd_Click()
If move_chk.Value = 1 Then
Main.Moveable = False
End Sub
|
hatte ihn einmal in nem Button, und einmal in der check selber, aber beides klappt nicht ...
Könnt ihr mir vlt. helfen,
Mfg,
Slay2oo7 |
|
| |
|
 |
Marduk_ « Moderator »

Anmeldedatum: 17.06.2007 Beiträge: 389
|
Verfasst am: 19.02.2008, 20:35 |
|
|
| Zum einen fehlt End if am ende und zum anderen könnte es sein, dass Moveable Readonly ist, kA. Das heisst aber, dass du dein Ziel nicht so ohne weiteres erreichst. |
|
| |
|
 |
Slay2oo7_ Tutorial Leser

Anmeldedatum: 20.07.2007 Beiträge: 34 Wohnort: C:\Windows\XRooTX
|
Verfasst am: 19.02.2008, 20:46 |
|
|
ok das end if hab ich auch dran, nur vergessen mitzukopieren, aber kennt denn dann jemand noch ne andere möglichkeit, die form "fest" zu machen?
Mfg
Slay2oo7 |
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 19.02.2008, 20:50 |
|
|
Schau mal ob es bei der Form eine Prozedur Move gibt (Form_Move).
Du liest die Position aus und verschiebst dann die Form wieder dorthin.
| Code: | Private Sub Form_Move()
' Position lesen
Dim MyTop as Long
Dim MyLeft as Long
MyTop = Form.Top
MyTop = Form.Left
' Warten bis Form verschoben ist
Do Until Not Form.Top = MyTop Or Not Form.Left = MyLeft
DoEvents
Loop
' Positionieren
Form.Top = MyTop
Form.Left = MyLeft
End Sub |
Du musst nur noch den Form Namen anpassen.
Ich weiß aber nciht genau, ob es eine solche Prozedur gibt.
Wenn das nicht funktioniert kanst du es auch ganz unsauber machen.
Dafür legst du zuerst ein Modul mit folgendem Inhalt an.
| Code: | Global MyTop as Long
Global MyLeft as Long |
Dann kommt der Code für den Klick auf die CheckBox.
| Code: | If CheckBox.Value = 0 Then
MyTop = Form.Top
MyLeft = Form.Left
Timer1.Enabled = True
Else
Timer1.Enabled = False
End If |
Dann stellst du im Form Load noch den Timer aus.
| Code: | | Timer1.Enabled = False |
Dann platzierst du einen Timer auf der Form und fügst folgenden Code ein.
| Code: | Form.Left = MyLeft
Form.Top = MyTop |
So. Jetz läuft ein Timer, der die Form immer wieder an den Ausgangsort verschiebt.
Natürlich nur, wenn die CheckBox aktiviert ist. Jetzt musst du nur noch die Namen der Komponenten abändern. |
|
| |
|
 |
Slay2oo7_ Tutorial Leser

Anmeldedatum: 20.07.2007 Beiträge: 34 Wohnort: C:\Windows\XRooTX
|
Verfasst am: 20.02.2008, 09:55 |
|
|
hmmz... ich hab alles genau so gemacht, wie c0re geschrieben hat, aber leider funktioniert es nicht ... aufjedenfall danke an c0re, das er versucht hat mir zu helfen, weis den noch jemand ne andere möglichkeit?
Mfg
Slay2oo7 |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 20.02.2008, 14:32 |
|
|
Oh, es gibt kein Form Move. o0
Das ist ja mal ne echte Lücke.. |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 20.02.2008, 14:43 |
|
|
Ne das ist VB6. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
|
|