Przenoszenie komponentów myszką

0

A propos TControl(Sender).Perform(WM_SysCommand, SC_SIZE + 9 ,0);

Jak ustawić Windowsa żeby podczas przenoszenia był pokazywany cały komponent a nie tylko kontur?

0

korzystając z onMouseDown, onMouseMove i onMouseUp napisać samemu procedure do poruszania komponentu

0

A tak się zastanawiam czy ustawienie "pokaż okno podczas przeciągania" na tak nie pomogło by trochę... (ale tak tylko strzelam bo nie sprawdzałem tego)

0
irek napisał(a)

A tak się zastanawiam czy ustawienie "pokaż okno podczas przeciągania" na tak nie pomogło by trochę... (ale tak tylko strzelam bo nie sprawdzałem tego)

może by i pomogło, ale to się ustawia dla całego windowsa

EDIT: [rotfl] lol no o to przecież chodziło pytaczowi, tak to jest jak się szybko pytania czyta, ech czas urlop wziąć

0

eee, jak by mi chodziło o "pokaż okno podczas przeciągania" , to bym się nie pytał programistów, tylko bym do instrukcji obsługi Windowsa zajrzał...

0

He, znowu sam sobie odpowiadam. Podaję, może się komuś przyda:

procedury API:

//pokazuj okno podczas przeciągania
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 1, nil, 0);

//anuluj poprzednią opcję
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 0, nil, 0);

Ale najpierw sprawdzenie, żeby pozostawić ustawienia Windowsa:

function OknoJestPokazywanePodczasPrzeciagania:Boolean;
var
   b:Bool;
begin
   SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, @b, 0);
   Result:=False;if b then Result:=True;
end;
0
jozkan napisał(a)

He, znowu sam sobie odpowiadam. Podaję, może się komuś przyda:

procedury API:

//pokazuj okno podczas przeciągania
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 1, nil, 0);

//anuluj poprzednią opcję
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 0, nil, 0);

Ale najpierw sprawdzenie, żeby pozostawić ustawienia Windowsa:

function OknoJestPokazywanePodczasPrzeciagania:Boolean;
var
   b:Bool;
begin
   SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, @b, 0);
   Result:=False;if b then Result:=True;
end;

ehh bede chamski i sie przyczepie ...

   Result:=False;if b then Result:=True;

nie lepiej

 result:=b; 

?
nie wiem czy by dzialalo ale tez mozna sprobowac :

   SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, @result, 0);
0

Niestety nie będzie...
Właśnie coś mi się zdaje, że sporo bywalców celuje w "czepianiu się"

0

Coś mi się zdaje, że migajek nie czepia się, tylko ma rację, bo to będzie działało tak, jak pokazał :]

[DOPISANE]

Sprawdziłem i działa (swoją droga wydaje się to oczywiste)

function GetDragMode():boolean;
begin
SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, @result, 0);
end;
0

ok może u Ciebie działa ale u mnie wywala błąd, więc coś jest chyba nie tak

...a co do czepiania się, to nie zmieniam stanowiska, nie podoba mi się postawa sępa czekajacego na jakiś najmniejszy błąd, rozumiem uwagi, są potrzebne - ale ten styl może tylko wnerwić

0

Powiedz, jaki masz błąd - może uda się go usunąć.

0

Project *.exe raised exception class EAccessViolation with message 'Accsess violation at address 00403C58 in module *.exe...

0
jozkan napisał(a)

Project *.exe raised exception class EAccessViolation with message 'Accsess violation at address 00403C58 in module *.exe...

a na ktora linie Ci wskazuje? :) BTW mi nie chodzi o czyste czepialstwo sie tylko o to zeby pokazac ze mozna inaczej :]

0

dobra
wiesza się cała aplikacja, moja postać sprawdza się bez problemu

0

Sorry że odświeżam tak stary temat, Ale chciałbym się dowidzieć jak te opcje można stosować tylko do jednego okienka a nie dla wszystkich w systemie np. Winamp tak ma

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1