FreePascal и GTK Глюки

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

FreePascal и GTK Глюки

Сообщение AlexanderS » 13.07.2009 10:09:36

Решил попробовать GTK и налетел на такой глюк:
создал окно с многострочным редактором. запускаю. выделяю мышкой в редакторе текст и пытаюсь перетащить. и тут программа падает. аналогичная программа на Си работает нормально. текст переносится мышкой как положено.
Может какой нибудь уважаемый гуру объяснит суть проблемы? Буду очень признателен.
вот код

program Project1;

{$mode objfpc}{$H+}

uses
glib2,gtk2;

procedure destroy(widget : pGtkWidget ; data: pgpointer ); cdecl;
begin
gtk_main_quit();
end;

var
window, editor : pGtkWidget;

begin
gtk_init (@argc, @argv);

window := gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (pGTKOBJECT (window), 'destroy',
GTK_SIGNAL_FUNC (@destroy), NULL);

editor := gtk_text_view_new();
gtk_container_add(GTK_Container(window), editor);

gtk_widget_show_all (window);
gtk_main();
end.
AlexanderS
незнакомец
 
Сообщения: 5
Зарегистрирован: 13.07.2009 10:00:24

Re: FreePascal и GTK Глюки

Сообщение bw » 13.07.2009 16:47:23

В Linux (Debian Lenny) всё работает.
* FPC 2.2.4 (собирал из исходников)
* GTK+ 2.12

..bw
Аватара пользователя
bw
постоялец
 
Сообщения: 359
Зарегистрирован: 01.12.2005 11:36:23
Откуда: Усть-Илимск

Re: FreePascal и GTK Глюки

Сообщение AlexanderS » 13.07.2009 17:32:45

Пардон. У меня Windows XP
GTK 2.16
Попробовал то же самое в Delphi 7. Тот же глюк. Вроде программа ниче не делает, только вызовы DLL, а не работает. В Си работает.

#include <gtk/gtk.h>

void destroy( GtkWidget *widget,
gpointer data )
{
gtk_main_quit ();
}


int main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *editor;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK (destroy), NULL);
editor = gtk_text_view_new();
gtk_container_add(GTK_CONTAINER (window), editor);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
AlexanderS
незнакомец
 
Сообщения: 5
Зарегистрирован: 13.07.2009 10:00:24

Re: FreePascal и GTK Глюки

Сообщение Mr.Smart » 13.07.2009 17:40:05

Народ пользуйтесь тэгом CODE!!!!
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: FreePascal и GTK Глюки

Сообщение AlexanderS » 13.07.2009 20:30:37

Попробовал это скомпилить в Delphi без RTL. Заработало. Получается нужно копать в RTL :?:
AlexanderS
незнакомец
 
Сообщения: 5
Зарегистрирован: 13.07.2009 10:00:24

Re: FreePascal и GTK Глюки

Сообщение Mr.Smart » 13.07.2009 21:14:13

AlexanderS писал(а):Попробовал это скомпилить в Delphi без RTL. Заработало. Получается нужно копать в RTL :?:

Вы форумом случайно неошиблись? Причём тут Delphi? Без RTL Вы никак не сможете собрать программу!
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: FreePascal и GTK Глюки

Сообщение AlexanderS » 13.07.2009 21:31:10

Я делал как http://www.excode.ru/art2775p7.html
Думаю проблема та же, что и в Delphi. Чего то они там в RTL нахакали. Иначе как объяснить то, что программа которая ничего не делает кроме вызовов DLL в паскале не работает, а в Си работает.

Добавлено спустя 11 минут 14 секунд:
Скомпилил с RTL от KOL http://kolmck.net/rindex.htm
тоже работает нормально. уже можно жить :D
AlexanderS
незнакомец
 
Сообщения: 5
Зарегистрирован: 13.07.2009 10:00:24

Re: FreePascal и GTK Глюки

Сообщение Sergei I. Gorelkin » 13.07.2009 22:31:46

Случайно не в том причина, что в примере на C сигнал называется delete_event, а в примере на Паскале - destroy?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: FreePascal и GTK Глюки

Сообщение AlexanderS » 14.07.2009 08:11:55

а без разницы. все равно глюк происходит во время работы, а не когда окно закрывается
AlexanderS
незнакомец
 
Сообщения: 5
Зарегистрирован: 13.07.2009 10:00:24

Re: FreePascal и GTK Глюки

Сообщение bw » 14.07.2009 18:50:21

Собранный кросс-компиляцией для w2k (Gtk+ 2.12.9) пример не работает.
Стоит начать с изучения traceback-а. Исключение - деление на ноль.

..bw
Аватара пользователя
bw
постоялец
 
Сообщения: 359
Зарегистрирован: 01.12.2005 11:36:23
Откуда: Усть-Илимск


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru