Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Сравнение Kylix с другими кросс-платформенными инструментами и библиотеками

Читайте также:
  1. II. Большие инновационные циклы: пример России и сравнение с другими странами
  2. Quot;Я (ФИО), родившийся (дата, место) прощаю всех людей, которые меня обидели и оскорбили и нанесли мне вред другими своими действиями. Я их искренне прощаю".
  3. Автор не дописанного пособия: Максим Базылев ( Адольф М18) и реализованный до конца другими членами Русской Воли.
  4. Аллегорическое сравнение
  5. Анализ конкурентов, сравнение характеристик продукта или услуги и предполагаемые потребители продукции.
  6. Б) дежурными стрелочных постов, сигналистами или другими работниками
  7. В. Другими словами, эта разновидность опыта не может быть потеряна.

Между разработкой с помощью такого полностью интегрированного инструмента как Kylix и разработкой с помощью автономных редакторов и компиляторов есть существенная разница.

Рассмотрим, к примеру, простое приложение, которое выводит на экран кнопку с надписью "!". С помощью Kylix или C++Builder это можно сделать с использованием IDE (интегрированная среда разработки), вообще не создавая кода.

Создание такой кнопки столь же просто, как выбор соответствующего события в Object Inspector и ввод кода.

А использовать для этого графическую библиотеку вроде GTK сложнее. Вот примерный код на языке C для создания подобной программы:

#include <gtk/gtk.h>

/* Callback function. */

void hello(GtkWidget *widget,

gpointer data)

{

g_print ("");

}

gint delete_event(GtkWidget *widget,

GdkEvent *event,

gpointer data)

{

g_print ("delete event occurred\n");

return TRUE;

}

/* Another callback */

void destroy(GtkWidget *widget,

gpointer data)

{

gtk_main_quit ();

}

int main(int argc,

char *argv[])

{

GtkWidget *window;

GtkWidget *button;

gtk_init (&argc, &argv);

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

g_signal_connect (G_OBJECT (window), "delete_event",

g_signal_connect (G_OBJECT (window), "destroy",

G_CALLBACK (destroy), NULL);

gtk_container_set_border_width (GTK_CONTAINER

(window), 10);

button = gtk_button_new_with_label ("Hello World");

g_signal_connect (G_OBJECT (button), "clicked",

G_CALLBACK (hello), NULL);

g_signal_connect_swapped (G_OBJECT (button), "clicked",

G_CALLBACK

(gtk_widget_destroy), window);

gtk_container_add (GTK_CONTAINER (window), button);

gtk_widget_show (button);

gtk_widget_show (window);

gtk_main ();

return 0;

}

Как видно, почти весь этот код состоит из служебных действий по созданию окон и обработке событий. Использование такого инструментария как GTK означает, что разработчику придётся писать дополнительный код. А если используется инструментарий Borland, то код для окон создаётся библиотекой CLX. Программисту по-прежнему доступны события на случай, если их придётся переопределить.


Дата добавления: 2015-07-15; просмотров: 73 | Нарушение авторских прав


Читайте в этой же книге: Введение | Создание графических клиентских и серверных приложений с помощью DataCLX | Веб-приложения |
<== предыдущая страница | следующая страница ==>
Альтернативные подходы| Петербургская сторона

mybiblioteka.su - 2015-2024 год. (0.006 сек.)