Jak odwolac sie do okienka znajac jego uchwyt ?

0

Witam
Mam aplikacje MDI i na niej kilka dynamicznych okienek.
Kazde okienko ma tam jakis swoj uchwyt.
Jedno z okien jest aktywne, reszta jest nieaktywna ale widoczna
Jak teraz znajac uchwyt zmienic np napis na guziku w jednym z neiaktywnych okien?

0

musisz miec nie tyle handle okna co handle przycisku ktory sie na nim znajduje:
http://www.google.pl/search?q=delphi+button+findwindowex+setwindowtext
no, chyba ze to Twoj program wtedy po prostu:

Child.Button1.Caption:='caption';
0

Jeśli jednak znasz nazwę formy to można to zrobić tak:

 if FindControl(Self.Tag).ClassName = 'TForm1' then
    begin
      with TForm1(FindControl(uchwyt)) do
      begin
        i tutaj masz dostęp do komponentów na formie
      end;
    end;
0
Pele2 napisał(a)

Jeśli jednak znasz nazwę formy to można to zrobić tak:

 if FindControl(Self.Tag).ClassName = 'TForm1' then
    begin
      with TForm1(FindControl(uchwyt)) do
      begin
        i tutaj masz dostęp do komponentów na formie
      end;
    end;

Czy ten patent zadziała do dowolnego okna w systemie ?

0

Przecież wyraźnie widać, że ten kod operuje na formatce programu, a nie na jakimś tam oknie innej aplikacji.

0
olesio napisał(a)

Przecież wyraźnie widać, że ten kod operuje na formatce programu, a nie na jakimś tam oknie innej aplikacji.

Przyjacielu.

Chodziło mi o to, czy po podstawieniu pod zmienna uchwyt wyniku funkcji: GetForegroundWindow i usunięciu pierwszego wartunku będę mógł operować na dowolnym oknie.

Fakt - za szybko zadałem pytanie - mogłem to sam sprawdzić - ale na swoją obronę mam tylko tyle, ze akurat szukam materiałów na zbliżony temat i nie chciałem przerywać buszowania po googlach w poszukiwania odpowiedzi na moje pytanie.

0

Ciekawe wlasnie czy da sie dostac uchwyt w ten sposob dowolnego okienka

0

toyman: O ile się nie mylę to również FindControl działa w obrębie Twojej aplikacji. A jak chcesz uzyskać
dostęp do kontrolki w innym programie to zobacz pod poniższy adres. Jest tam przykład dla Notatnika.

http://www.delphi3000.com/articles/article_4013.asp?SK=

masterO: Uchwyt okna innej aplikacji można dostać podając do niej PId czyli identyfikator procesu. Zaś Pid
można uzyskać podając nazwę pliku exe aplikacji. Mój kod który kiedyś poskładałem "do kupy" znajduje się
pod poniższym adresem. Może da się inaczej, ale ja zrobiłem tak jak zrobiłem. Zmienne globalne są tam - z
tego co testowałem - potrzebne, gdyż jak próbowałem te wszystkie funkcje scalić w jedną i podawać Result,
w postaci HWND na zewnątrz to wywalało mi wyjątki. Nie analizowałem dlaczego, bo obecny sposób działa.

http://www.speedyshare.com/files/19464498/pid_to_hwnd.rar

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