Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2011, 17:27   #1
Чай_ник
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
Вопрос Программа с присоединяемыми библиотеками.

Работаю на делфи. Как сделать программу с присоединяемыми библиотеками? По сути это будет проект по обработке графов, где в основной программе будет храниться только ввод\вывод + рандомный граф, а функции обработки будут храниться в подключаемых библиотеках.
Я у мамы дурачок))
Чай_ник вне форума Ответить с цитированием
Старый 10.05.2011, 17:48   #2
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

качаем сборник примеров Delphi World...

либо ищем статью из этого сборника ...


Подгружаемые модули (plugins) в Delphi
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 10.05.2011, 17:57   #3
Чай_ник
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
По умолчанию

спасибо. а насчет визуализации графов где можно посмотреть? только не отсылайте в гугл, там сплошная чушь.
Я у мамы дурачок))
Чай_ник вне форума Ответить с цитированием
Старый 10.05.2011, 18:06   #4
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

ну раз гугл не мил, вот есть у меня тут одна программка - игра сеть, вот процедура визуализации из нее. Сеть представляет собой набор точек соединенных путями (вроде aka граф)...

Код:
procedure TForm1.ReDraw;
 var i: integer;
begin
 if showWinMassage then exit;
 if CalcInter() then
  begin
   showWinMassage := true;
   messagebox(0,Pansichar(winmessage),'',0);
   FormRec.AddRecord(f_time, CurentLevel);
   loadlevel(NextLevel);
   CalcInter()
  end;
 showWinMassage := false;
 tmpbitmap.Canvas.Brush.Color := form1.Color;   // все закрашиваем
 tmpbitmap.Canvas.Rectangle(0,0,image1.Width,image1.Height);
 for i:= 0 to length(hubarray) - 1 do hubarray[i].Sopr := false;
 for i:= 0 to length(wayarray) - 1 do
  begin
   if selhub >= 0 then
    begin
     if wayarray[i].Hub1 = @hubarray[selhub] then wayarray[i].Hub2.Sopr := true;
     if wayarray[i].Hub2 = @hubarray[selhub] then wayarray[i].Hub1.Sopr := true;
    end;
   if wayarray[i].Intersection then
     tmpbitmap.Canvas.Pen.Color := rgb(200,0,0)
    else
     tmpbitmap.Canvas.Pen.Color := rgb(0,200,0);
   tmpbitmap.Canvas.MoveTo(wayarray[i].hub1.PosX,wayarray[i].hub1.Posy);
   tmpbitmap.Canvas.LineTo(wayarray[i].hub2.PosX,wayarray[i].hub2.Posy);

//   tmpbitmap.Canvas.TextOut(wayarray[i].hub1.PosX + (wayarray[i].hub2.PosX - wayarray[i].hub1.PosX)div 2,
//                            wayarray[i].hub1.Posy + (wayarray[i].hub2.Posy - wayarray[i].hub1.Posy)div 2,
//                            inttostr(i));  // for debug

  end;
 tmpbitmap.Canvas.Pen.Color := 0;
 for i:= 0 to length(hubarray) - 1 do
  begin
   if i = selhub then
     tmpbitmap.Canvas.Brush.Color := rgb(255,0,0)
    else
     if hubarray[i].Sopr then
      tmpbitmap.Canvas.Brush.Color := rgb(251,63,255)
     else
      tmpbitmap.Canvas.Brush.Color := rgb(255,255,255);
   tmpbitmap.Canvas.Ellipse(hubarray[i].PosX-HubSize,hubarray[i].PosY-HubSize,
                            hubarray[i].PosX+HubSize,hubarray[i].PosY+HubSize);

  end;



 image1.canvas.CopyRect(rect(0,0,image1.Width,image1.Height),tmpbitmap.Canvas,rect(0,0,image1.Width,image1.Height));
end;
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 10.05.2011, 18:12   #5
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

ну может вот еще поможет
типы для описания соединения и узла сети

Код:
 PHub = ^THub;

 TWay = record
  Hub1, Hub2: PHub;
  Intersection: boolean;
 end;


 THub = record
  PosX, PosY: integer;
  Sopr: boolean;
  WC: byte;
 end;

сама модель представляется двумя массивами

Код:
    HubArray: array of THub; // массив точек
    WayArray: array of Tway; // массив путей
вот как то так
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 10.05.2011, 18:14   #6
Чай_ник
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
По умолчанию

Вроде получилось... спасибо)
Я у мамы дурачок))
Чай_ник вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с dll библиотеками в С# kloffelin Помощь студентам 6 27.09.2010 23:14
Программа с динамически подключаемыми библиотеками (плагинами) ds.Dante Общие вопросы .NET 5 13.04.2010 18:02
Работа с библиотеками типов(TLB) в С++ MadBoxer Общие вопросы C/C++ 1 14.05.2009 16:59
работа с библиотеками kuzmich Общие вопросы Delphi 2 25.02.2009 19:39