Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pomoc oko misa i linija

[es] :: Pascal / Delphi / Kylix :: pomoc oko misa i linija

[ Pregleda: 2622 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

milan_kol
Beograd

Član broj: 6463
Poruke: 113
*.vdial.verat.net.



Profil

icon pomoc oko misa i linija08.11.2004. u 12:14 - pre 236 meseci
1) kako da postavim misa na tacno odredjenu poziciju? probao sam sa mouse.CursorPos.x:=100; ali nece? zasto?

2) kako da napravim na formi, kao sto win ima, da se selektuje vise stvari, znaci, klikne se misem, i vuce se, a stvara se pravougaonik, i sve sto potpadne pod taj pravougaonik da je selektovano? mene ustvari interesuje samo pravougaoni,, ja sam kao nesto slicno uradio, ali prvi put je ostavljalo crno svuda za sobom, a drugo je mnogo treperelo :)

Pozdrav&hvala
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 617
*.zaslon-telecom.si.



Profil

icon Re: pomoc oko misa i linija08.11.2004. u 12:48 - pre 236 meseci
1) WinAPI: SetCursorPos(x, y); x, y = screen coordinates

2) Self.Canvas.DrawFocusRect(r: TRect);

Otprilike ovako, na brzinu (da bi zaista radilo treba malo da se zezas s ovim top/bottom i left/right, ovako radi samo u slucaju da vuces misa s leva nadesno i odozgo prema dole):

Code:


var
  r: TRect;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 r.Top := y;
 r.Left := x;
 r.Bottom := y;
 r.Right := x;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ssLeft in shift then
  begin
    self.Canvas.DrawFocusRect(r);
    r.Bottom := y;
    r.Right := x;
    self.Canvas.DrawFocusRect(r);
  end;
end;



Naravno, treba i na mouse up da se obrise selekcija.

ss.
When something is hard to do, then it's not worth doing.
 
Odgovor na temu

milan_kol
Beograd

Član broj: 6463
Poruke: 113
*.vdial.verat.net.



Profil

icon Re: pomoc oko misa i linija09.11.2004. u 12:19 - pre 236 meseci
hvala za misa

ovo sa focusRect je otprilike to, ali nije tacno ono sto sam mislio! treba ja da napravim - nacrtam taj pravougaonik, trebaju ivice da mu budu u boji (plave boje) i deblje od ovog focusRecta... da li je to moguce napraviti? kao sto sam vec rekao, problem je samo u tomesto trepuce ako uradim na jedan nacin, a ako uradim na drugi, ostaje plavo po formi :( ? kako to da resim?
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
212.62.58.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: pomoc oko misa i linija09.11.2004. u 18:25 - pre 236 meseci
probaj da promenis Canvas.Pen.Width i Canvas.Pen.Color za okvir i Canvas.Brush.Color za boju unutrasnjosti. to je za obicne Rect, valjda radi i ovde :)
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 617
195.246.3.*



Profil

icon Re: pomoc oko misa i linija09.11.2004. u 19:33 - pre 236 meseci
Citat:
bancika: to je za obicne Rect, valjda radi i ovde


Na zalost nece da radi. FocusRect se crta sa XOR copy mode-om. Mozes crtati tako i obicni rect, ali XOR ce da ti zeza boje pravougaonika (u zavisnosti na kakvoj pozadini ih crtas).

Ako ti je bas stalo do plavih debelih linija, moraces da ih crtas nekako rucno. Za izbegavanje treperenja mozes pogledati twincontrol.doublebuffered property (delphi 7). Nisam siguran da ce ti raditi na svim windowsima, ako ne radi mozes uvek sam napraviti isto to pomocu winapija.

I da, windows posle toliko godina nema vsync koji je na kucnim racunarima postojao u doba spekija (i ranije), a koji bi ti sad tako dobro dosao.

ss.
When something is hard to do, then it's not worth doing.
 
Odgovor na temu

Almedin

Član broj: 5895
Poruke: 425
*.bih.net.ba.



+27 Profil

icon Re: pomoc oko misa i linija09.11.2004. u 20:32 - pre 236 meseci
Po čemu crtaš plavi okvir? Ovo bi moglo da se uradi slično kako je 'sasa' na pisao samo što umjesto korištenja XOR moda za brisanje prijašnjeg pravougaonika uradiš invalidate za prethodni pravougaonik. Da bi izbjegao treperenje invalidate uradiš za svaku liniju posebno a ne za čitav pravougaonik tako da se ponovo iscrta samo područje gdje su linije. Ako invaliduješ linije u pixel tačno, treperenje nećeš primijetiti.
 
Odgovor na temu

milan_kol
Beograd

Član broj: 6463
Poruke: 113
*.vdial.verat.net.



Profil

icon Re: pomoc oko misa i linija11.11.2004. u 22:10 - pre 236 meseci
crtam bas po formi! ne moze da se brise u pixel tacno, probao sam, ako korisnik cimne misa brzo, win ne uhvati svaki pixel preko koga je mis stvarno presao, nego samo neke... zato ostaje trag iza pravougaonika! jos neko resenje? zaista me ubi ovo :(
 
Odgovor na temu

Almedin

Član broj: 5895
Poruke: 425
*.as54.tz.bih.net.ba.



+27 Profil

icon Re: pomoc oko misa i linija11.11.2004. u 22:37 - pre 236 meseci
To što Windows ne registruje pomak za svaki pixel nema veze sa ovim. Ti zabilješić zadnju registrovanu poziciju i kod sljedeće pozicije brišeš zadnju registrovanu tako da nema veze kako win registruje pomak. Pošalji malo koda koji si koristio.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: pomoc oko misa i linija

[ Pregleda: 2622 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.