Fórum Abrindo Programas quot;dentroquot; do Meu #316968
21/03/2006
0
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
Curtir tópico
+ 0Posts
23/03/2006
Paulocesar1301
:cry: :cry: :cry:
Gostei + 0
23/03/2006
Paullsoftware
[url]http://forum.clubedelphi.net/viewtopic.php?t=75079&highlight=calculadora[/url]
Gostei + 0
23/03/2006
Paulocesar1301
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
23/03/2006
Adriano Santos
procedure TForm1.Button1Click(Sender: TObject); begin Form2 := TForm2.Create(Application); Form2.Parent := Panel1; Form2.Show; end;
Gostei + 0
23/03/2006
Paulocesar1301
Gostei + 0
24/03/2006
Alves
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
24/03/2006
Adriano Santos
Gostei + 0
24/03/2006
Paulocesar1301
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
Clique aqui para fazer login e interagir na Comunidade :)