Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 2.798 pregleda

Najnovija ↓

Prikaz forme bez fokusa 07.12.2010. u 10:02 · pre 193 meseca #1
Pozdrav

Kako prikazati formu 2 bez da se izgubi fokus sa form 1?

opis:
- na formi 1 se nalaze razlicite komponente
- forma 2 sluzi kao virtualna tastatura, keybd_event()
- u formi 2 untura FormShow je SetWindowsPos(Handle, HWND_TOPMOST, ...)
- za simuliranje tastature na formi 2 se koriste komponente koje ne uzimaju focus (grafika), tako da na formi 2 ne postoji komponenta koja treba ili ima focus

mislim da je jasno sta mi treba :)
sa forme 1 klikom na neki button pokrenem formu 2 (tastaturu) itd. i onda unosim ili mjenjam tekst na formi 1

to za sad radi jer ja sa forme 2 saljem focus na formu 1 "TWinControl(Form1).SendFocus;" prije nego sto pozovem keybd_event()
ali problem je sto neke komponente na formi 1 nakon sto izgube focus i ponovo dobiju focus markiraju unesen tekst pa se s tim uvijek brise kompletan sadrzaj

ima li neko neku ideju kako se ovo moze rijesti?
unaprijed hvala
Re: Prikaz forme bez fokusa 07.12.2010. u 11:32 · pre 193 meseca #2
Zašto koristiš formu za virtualnu tastaturu? Mislim da bi bilo lakše da staviš panel npr.
Potpis
F
Re: Prikaz forme bez fokusa 07.12.2010. u 13:13 · pre 193 meseca #3
formu koristim iz razloga sto je aplikacija u fullscreen-u, a polja za editovanje se nalaze na rzlicitim pozicijama,
s toga mi je i potrebno da virtualnu tastaturu mogu pomjerati, znaci ako je neko polje iza tastature samo tastaturu pomjeris malo u desno i dalje kucas
Re: Prikaz forme bez fokusa 07.12.2010. u 17:10 · pre 193 meseca #4
> - forma 2 sluzi kao virtualna tastatura, keybd_event()
> - u formi 2 untura FormShow je SetWindowsPos(Handle, HWND_TOPMOST, ...)

Nećeš moći da pozivaš formu sa Show (bez nekih većih izmena) jer po defaultu se prozor aktivira. Možeš npr. napraviti formu i pozvati SetWindowsPos sa SWP_NOACTIVATE flagom.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Prikaz forme bez fokusa 16.12.2010. u 22:16 · pre 193 meseca #5
> - ali problem je sto neke komponente na formi 1 nakon sto izgube focus i ponovo dobiju focus markiraju unesen tekst pa se s tim uvijek brise kompletan sadrzaj

> - ima li neko neku ideju kako se ovo moze rijesti?

Moguce resenje je da koristis neki Temp string prilikom slanja kontroli na Form1, tacnije nemoj slati samo karakter koji je otkucan nego ga belezi u neki Temp pa kontroli na Form1 salji ceo Temp string.

Drugo resenje, cini mi se elegantnije, je sa SendMessage pogledaj primere:

http://www.cryer.co.uk/brian/d...send_custom_window_message.htm

http://www.delphitricks.com/so..._message_with_sendmessage.html

pozdrav
Re: Prikaz forme bez fokusa 19.12.2010. u 21:30 · pre 193 meseca #6
Napravio sam jedan prost primer sa dve forme i timerom, jednostavno ali radi.

procedure TForm1.Button1Click(Sender: TObject);
begin
form2.Show;//fsStayOnTop
end;



procedure TForm2.Button1Click(Sender: TObject);
begin
form1.Edit1.Text:=form1.Edit1.Text+Inttostr(Random(9));
timer1.Enabled:=true;
end;

//Timer1.Interval:=100; Timer1.enabled:=false u Object Inspektor-u

procedure TForm2.Timer1Timer(Sender: TObject);
begin
form2.Button1.SetFocus;
timer1.Enabled:=false;
end;

end.
Potpis
Arduino Control Center
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme