Abrindo Programas quot;dentroquot; do Meu
Amigos desenvolvedores,
Me fizeram essa pergunta lá no trabalho hoje e eu sinceramente não soube responderse é possível tal coisa então recorro à sapiência dos camaradas de profissão:
Digamos que eu tenho uma janela simples com três botões:
BTOutlook; BTExcel e BTPhotoShop
e ao clicar nesses botões, quero ´abrir os programas DENTRO da minha janela´, não modal, mas como se fossem forms semples que eu abro em uma ScrollBox, por exemplo...
Primeiro achei que seria impossível, depois imaginei que o OLEObject pudesse ajudar em alguma coisa, anyway... a pergunta me foi feita no fim do dia e ainda não parei para pensar muito a respeito, mas já imaginei o que o cara quer... uma janela única, com todos os sistemas que ele quiser abrir e só o que ele queré trocar as abas... como no IExplorer 7... (acho que ele pegou o beta tb e goutou do que viu !!!!)
Então amigos... alguma opinião a respeito !!??
Abraços :wink:
Me fizeram essa pergunta lá no trabalho hoje e eu sinceramente não soube responderse é possível tal coisa então recorro à sapiência dos camaradas de profissão:
Digamos que eu tenho uma janela simples com três botões:
BTOutlook; BTExcel e BTPhotoShop
e ao clicar nesses botões, quero ´abrir os programas DENTRO da minha janela´, não modal, mas como se fossem forms semples que eu abro em uma ScrollBox, por exemplo...
Primeiro achei que seria impossível, depois imaginei que o OLEObject pudesse ajudar em alguma coisa, anyway... a pergunta me foi feita no fim do dia e ainda não parei para pensar muito a respeito, mas já imaginei o que o cara quer... uma janela única, com todos os sistemas que ele quiser abrir e só o que ele queré trocar as abas... como no IExplorer 7... (acho que ele pegou o beta tb e goutou do que viu !!!!)
Então amigos... alguma opinião a respeito !!??
Abraços :wink:
Paulocesar1301
Curtidas 0
Respostas
Paulocesar1301
21/03/2006
Alguma idéia ?
:cry: :cry: :cry:
:cry: :cry: :cry:
GOSTEI 0
Paullsoftware
21/03/2006
da uma olhada nesse tópico..
[url]http://forum.clubedelphi.net/viewtopic.php?t=75079&highlight=calculadora[/url]
[url]http://forum.clubedelphi.net/viewtopic.php?t=75079&highlight=calculadora[/url]
GOSTEI 0
Paulocesar1301
21/03/2006
Vlw pela resposta paull, mas não é exatamente isso que querem...
Eles imaginam um IE7 para sistemas:
Abre-se o programa dentro de uma ´Aba´ como se fosse um Form.
No exeplo do tópico eu abro programa ´a partir do meu´ e não ´dentro do meu´
Imagine uma janela onde você tem 2 abas... uma com o CorelDRAW! ´dentro dela´, outra com o Outlook ´dentro´.
Mesmo assim obrigado
Eles imaginam um IE7 para sistemas:
Abre-se o programa dentro de uma ´Aba´ como se fosse um Form.
No exeplo do tópico eu abro programa ´a partir do meu´ e não ´dentro do meu´
Imagine uma janela onde você tem 2 abas... uma com o CorelDRAW! ´dentro dela´, outra com o Outlook ´dentro´.
Mesmo assim obrigado
GOSTEI 0
Adriano Santos
21/03/2006
Eu acredito que seja possível, mas é só uma opnião; Acredito que outros camaradas devem saber isso. Por curiosidade apenas, você pode abrir janelas do seu sistema dentro de um determinado objeto, veja o exemplo que abre o Form2 da minha aplicação dentro de um Panel.
procedure TForm1.Button1Click(Sender: TObject); begin Form2 := TForm2.Create(Application); Form2.Parent := Panel1; Form2.Show; end;
GOSTEI 0
Paulocesar1301
21/03/2006
Foi exatamente o que eu pensei em um dado momento... trabalhar como se fosse um Form... mas ainda não consegui tal feito !!
GOSTEI 0
Alves
21/03/2006
Um colega aqui do forum uma vez me passou um codigo que abre um um execuvel dentro do form. Não sei se é isso q vc quer, mas alvez se fizer alguma alteração talvez consiga o q quer.
Código:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls
;
type
TForm1 = class(TForm)
Button1: TButton;
Lista: TListBox;
Button2: TButton;
Edit1: TEdit;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure LIstApp;
const
MAX_WINDOW = 16364;
var
I : Integer;
Caption: Array[0..255]Of Char;
//Lista : TStringList;
begin
//Lista:=TStringList.Create;
//Lista.Sorted:=True;
For I:=1 To MAX_WINDOW Do
Begin
If((GetWindowText(I,Caption,255)<>0)And (GetWindowLong(I,GWL_EXSTYLE)<>0)And
(GetWindowLong(I,GWL_HWNDPARENT)=0)And (GetWindowLong(I,GWL_HINSTANCE)<>0))Then
If(IsWindowVisible(I))Then
form1.Lista.Items.Add(inttostr(i) + ´ ´ + caption);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
lista.Clear;
listapp;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
windows.SetParent(strtoint(edit1.text),form1.handle);
end;
end.
The WinExec function runs the specified application
This function is provided for compatibility with earlier versions of Windows. For Win32-based applications, use the CreateProcess function.
The CreateProcess function creates a new process and its primary thread. The new process executes the specified executable file.
GOSTEI 0
Adriano Santos
21/03/2006
[b:c580a3af58]Alves[/b:c580a3af58] perfeito cara, eu fiz o teste aqui e deu tudo certo.
GOSTEI 0
Paulocesar1301
21/03/2006
Brow...
Tú és bom demais !!!!!!
Pensei que não fosse possível isso!!!! BRIGADÃO !!!!!!
Depois daquela história de quanto vale a hora do programador... acho que tô te devendo !!! :lol:
Vlw mesmo
Tú és bom demais !!!!!!
Pensei que não fosse possível isso!!!! BRIGADÃO !!!!!!
Depois daquela história de quanto vale a hora do programador... acho que tô te devendo !!! :lol:
Vlw mesmo
GOSTEI 0