Модератор: Модераторы
B4rr4cuda писал(а):Наконец-то разобрался с миксованием LCL и прямых GTK вызовов.Начинаю писать WLX апи для линукса.
Душа поет , скоро, уже скоро у меня будет нормальный графический фм для линукса, там пара-пам.... =)
отя с Алексом мы нашли способ вызывать плагины ТС в лине без переделки, но не проверяли.
library project1;
{$mode objfpc}{$H+}
uses
gtk,glib,gdk;
var GBox,GButton1,Gbutton2:PGtkWidget;
procedure ButtonToPanel(X:PGtkWidget); stdcall;
begin
gBox:=gtk_hbox_new(false,0);
gtk_container_set_border_width (GTK_CONTAINER (gBox), 2);
gtk_container_add(GTK_CONTAINER(X),GBox );
gtk_widget_show(gBox);
GButton1:=gtk_button_new_with_label('Yehoo1');
//gtk_container_add(GTK_CONTAINER(PGtkWidget(panel1.Handle)),GButton1);
gtk_container_add(GTK_CONTAINER(gBox),GButton1);
gtk_widget_show(GButton1);
Gbutton2:=gtk_button_new_with_label('Yehoo2');
gtk_container_add(GTK_CONTAINER(GBox),Gbutton2 );
gtk_widget_show(Gbutton2);
end;
exports ButtonToPanel;
begin
end.
procedure TForm1.Button5Click(Sender: TObject);
begin
Hlib:=LoadLibrary('path to lib.so');
if Hlib<>0 then
begin
Button5.Caption:='LoadLib OK';
Button7.Caption:='UnLoadLib';
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
type TPro=procedure (X:PGtkWidget); stdcall;
var Proc:TPro;
begin
proc:=TPro(GetProcAddress(HLib,'ButtonToPanel'));
if proc <> nil then
begin
proc(PGtkWidget(Panel1.Handle));
end else showmessage('Error');
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
if UnloadLibrary(Hlib) then
begin
Button5.Caption:='LoadLib';
Button7.Caption:='UnLoadLib OK';
end;
end;
framepanel.pas(204,110) Error: Can't take the address of constant expressions
var
ls: TFileList;
begin
....
ls := pnlFile.FileList;
pnlFile.VFS.VFSmodule.VFSList(ExtractDirLevel(pnlFile.VFS.ArcFullName, ActiveDir), ls);
...
end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1