Nadawanie koloru TPanel innej aplikacji

0

Cześć,

Chciałbym zmienić kolor kompnentu TPanel innej aplikacji z poziomu swojego programu.

**

SendMessage(uchwyt_TPanel_innego_okna.handle, WM_POLECENIE, 0, clRed);

**

Szukałem odpowiedniej funkcji, lecz nie udało mi się dokopać do czegoś co by działało.
Macie może jakieś pomysły ?

0

A po co by miał windows wysyłać komunikat 'zmiana koloru' ?!

Chyba tak nie pójdzie, spróbuj z podmianą w pamięci (lub w EXE).

0

Nie mogę ingerować w exe, ponieważ zmiana koloru ma nastąpić w zależności od statusu aplikacji testującej.
Jeśli chodzi o pamięć to nie opłaca się aż tak zagłębiać.

Aplikacja zewnętrzna:
Statusy jakie może przybrać panel (TPanel):

  1. Adjust [żółty];
  2. Pass [zielony];
  3. Fail [czerwony]

W momencie kiedy pojawia się status Pass [zielony] chcę nadać mu kolor żółty, ponieważ w tym momencie test zaczyna moja aplikacja. W przypadku, gdy w mojej aplikacji wynik testu też będzie Pass - nadam status zewnętrznej aplikacji z powrotem Pass [zielony] - status zewnętrznej aplikacji jest uzależniony od mojej.

Pobieram tekst z TPanel za pomoca WM_GETTEXT, która jest w timerze, ale potrzebuję jeszcze wysłać kolor - o ile to możliwe.

0

Komunikatem na pewno się nie da. Nie lepiej zeby twoja aplikacja pokazywała w swoim oknie wynik? .

0

Tak, pokazuje wynik tylko....

W pracy są różni ludzie, większość jak zobaczy Pass [zielony] odłącza kable komunikacyjne i zapomina, że jeszcze jedna aplikacja będzie testowała, tym samym przerywając działanie mojej aplikacji, która nie będzie już miała połączenia z urządzeniem. Dlatego myślę, że dobrym rozwiązaniem było by "zabranie im tego zielonego" i wstawienie dalej "żółtego", żeby po prostu dalej wiedzieli, że coś jest testowane. Takie zabezpieczenie :)

Ale hm. Skoro się nie da, to trudno, wymyślę coś innego.

0

No wiesz, to nie tak, że się nie da. Być może nie da się zrobić tego prostym komunikatem, ale np. modyfikując pamięć albo wywołując jakąś funkcję z runtime tamtej aplikacji może się udać. Ale to jest grubszy temat.

0

A nie możesz w inny sposób, np. po przez wypełnienie tego panela jakimś kolorem, lub narysowania na nim jakieś obrazka ostrzegającego itp ? Czy raczej nie możesz zasłonić tego co jest na tym panelu ? I czy w ogóle zawiera coś ten Panel ? Bo jak nie to po prostu wypełnij go tym żółty kolorem.Mam na myśli tutaj klasę TCanvas.

0

Ten panel zawiera tylko Caption:
"Adjust" kolor panelu żółty - podczas testu
"Pass" kolor panelu zielony - koniec test, wynik pozytywny
"NG" kolor panelu czerwony - koniec test, wynik negatywny

Mogę go zasłonić, napis też można canvas-nąć na nim, tylko czy przy następnym teście kolejnego urządzenia ten panel zostanie odświeżony, czy dalej zakryty canvasem ?
W sumie to nie jest głupi pomysł... i chyba z tym pokombinuje.

0

Zawsze możesz wrzucić to w pętlę.

0

Może okienko, które będzie zawsze na wierzchu o wyglądzie tego panelu?

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