Putty na formie

0

Witam.
Czy jest możliwość uruchomienia innego programu (mnie interesuje terminal putty) na formie (części formy) lub w panelu położonym na formie. Opisane ?zjawisko? ;) widziałem w kasie biletowej, na formie (górna część były przyciski zwykłe butony) a dolna połowa była zajęta właśnie przez terminal.
Proszę o podpowiedź jak to zrobić.

0

Wydaje mi się że to był jeden program... Tylko z podzielonym oknem. W obrębie jednej aplikacji jest także możliwe umieszczenie jednej formy "na drugiej" (np. JvEmbedded Forms z pakietu JVCL). A czy jest możliwe mieszanie form z różnych aplikacji? Podobno wszystko jest możliwe, ale ja o takim czymś nie słyszałem...

0
keinxor napisał(a)

Witam.
Opisane ?zjawisko? ;) widziałem w kasie biletowej, na formie

Abstrahujac...po co w kasie biletowej dostep via SSH?

0
lofix napisał(a)
keinxor napisał(a)

Witam.
Opisane ?zjawisko? ;) widziałem w kasie biletowej, na formie

Abstrahujac...po co w kasie biletowej dostep via SSH?

Tego to nie wiem czy bylo ssh <ort>polonczenie </ort>czy zwykly telnet predzej to drugie ;)

A <ort>na pewno </ort>byl to putty bo widzialem na pasku programu i byl on wlasnie w formie "ze tak nazwe nadrzednej" cos ala mdi.

Zassam to jedi i obacze co tam je ;)
oczekuje dalszych sugestii
pozdro

0

Może SetParent() pomoże?

0
procedure TForm1.FormCreate(Sender: TObject);
var h:HWND;
begin
h := findwindow(nil,'Bez tytułu - Notatnik');
form1.Caption := inttostr(h);
windows.SetParent(h,form1.Handle)
end;
0

Wielkie dzieki temp99 !!!
Kodzik który przedstawiłeś działa :> teraz postaram sie go "doszlifować" do swoich potrzeb, jeszcze raz wielkie dzieki !!!
Pozdrawiam

0

Jeszcze zapytam, jak ustawić właściwość wsMaximized okna programu które "przechwycimy" lub tez jak je dopasować do rozmiaru panela, i jeszcze jak ukryć pasek tego programu ??

0

ShowWindow - Zmiana stanu okna.
SetWindowPos - Zmiana rozmiarów okna.

0
keinxor napisał(a)

Wielkie dzieki temp99 !!!

Nie, żebym się opominał, ale to ja rzuciłem SetParent() :> Tylko pewnie nie zwróciłeś uwagi, bo nie było gotowego kodu.

0

Masz racje brodny, jako pierwszy rzuciłeś hasło "SetParent", ale jako że ja jestem jeszcze tempawy [wstyd] nie potrafiłem tego wykorzystać.
Teraz wracam do tematu..
mam taki kodzik:

begin {uruchomienie terminala} shellexecute(Handle,'Open',PCHar(pr_scierzka_do_terminala),nil,nil,SW_SHOWMAXIMIZED);
sleep(100);
uchwyt_do_okna_terminala:=findwindow(nil,PCHar(pr_tytul_okna_terminala));
windows.SetParent(uchwyt_do_okna_terminala,form1.GroupBox2.Handle);
end;

Nie wiem czemu ale uruchomione okno w groupbox (czy panel bez znaczenia)
nie jest "MAXIMIZED"

Wiecie dlaczego ??
A jeszcze jedno czy funkcja shellexecute w pierwszym parametrze Handle zwraca uchwyt do uruchomionej przez nią aplikacji ??

0
keinxor napisał(a)

A jeszcze jedno czy funkcja shellexecute w pierwszym parametrze Handle zwraca uchwyt do uruchomionej przez nią aplikacji ??

Nie:

Win32 SDK napisał(a)

hwnd

Specifies a parent window. This window receives any message boxes that an application produces. For example, an application may report an error by producing a message box.

I zobacz sobie to SetWindowPos().

0

Dzikęki brodny za sugestie z SetWindowPos, wykombinowałem tak...
begin {uruchomienie terminala} shellexecute(Handle,'Open',PCHar(pr_scierzka_do_terminala),nil,nil,SW_SHOWMAXIMIZED);
sleep(100);
uchwyt_do_okna_terminala:=findwindow(nil,PCHar(pr_tytul_okna_terminala));
windows.SetParent(uchwyt_do_okna_terminala,form1.GroupBox2.Handle);
SetWindowPos(uchwyt_do_okna_terminala, HWND_TOP, 0, 0, GroupBox2.Width, GroupBox2.Height,SWP_SHOWWINDOW);
end;

Jest może funkcja co zwraca automatycznie uchwyt do okna aplikacji przez nią uruchamianej coś w stylu shellexecute, bo teraz na stałe mam w pliku ini parametr
pr_tytul_okna_terminala zeby pobrać uchwyt funkcją findwindow, ale że tak powiem mało praktyczne to jest...
Słucham propozycji
pozdro

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