Проблема с компиляцией в Ubuntu

Вопросы программирования и использования среды Lazarus.

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

Проблема с компиляцией в Ubuntu

Сообщение FreeUser » 23.04.2010 03:01:09

Помогите скомпилировать под Ubuntu эту программку очень надо, я в этой операционке новичок так что не пинайте сильно у меня установлен lazarus 0.9.28.2+Fpc программа ругается на отсутствие unit Windows что приводит меня в тупик.
Код: Выделить всё
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Windows, Classes, Messages, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    procedure WMDisplayChange(var Message: TMessage); message WM_DISPLAYCHANGE;
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
var
  i       : Integer;
  DevMode : TDeviceMode;
begin
  i:=0;
  {$IFOPT R+}
   {$DEFINE CKRANGE}
   {$R-} //range-checking of
  {$ENDIF}
  while EnumDisplaySettings(nil,i,DevMode) do begin
    with Devmode do
      ListBox1.Items.Add(Format('%dx%d %d Colors',[dmPelsWidth,dmPelsHeight,1 shl dmBitsperPel]));
    Inc(i);
  end;
  {$IFDEF CKRANGE}
   {$UNDEF CKRANGE}
   {$R+}  //range-checking on
  {$ENDIF}
end;


procedure TForm1.ListBox1Click(Sender: TObject);
begin
Button1.Enabled := Listbox1.ItemIndex >= 0;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  DevMode    : TDeviceMode;
  liRetValue : Longint;
begin
  {$IFOPT R+}
   {$DEFINE CKRANGE}
   {$R-} //range-checking of
  {$ENDIF}
  if EnumDisplaySettings(nil,Listbox1.ItemIndex,Devmode) then
  liRetValue := ChangeDisplaySettings(DevMode,0);

  SendMessage(HWND_BROADCAST,
              WM_DISPLAYCHANGE,
              SPI_SETNONCLIENTMETRICS,
              0);

  {$IFDEF CKRANGE}
   {$UNDEF CKRANGE}
   {$R+}  //range-checking on
  {$ENDIF}

  case liRetValue of
    DISP_CHANGE_SUCCESSFUL: ShowMessage('DISP_CHANGE_SUCCESSFUL: The settings change was successful.');
    DISP_CHANGE_RESTART   : ShowMessage('DISP_CHANGE_RESTART: The computer must be restarted in order for the graphics mode to work.');
    DISP_CHANGE_BADFLAGS  : ShowMessage('DISP_CHANGE_BADFLAGS: An invalid set of flags was passed in.');
    DISP_CHANGE_FAILED    : ShowMessage('DISP_CHANGE_FAILED: The display driver failed the specified graphics mode');
    DISP_CHANGE_BADMODE   : ShowMessage('DISP_CHANGE_BADMODE: The graphics mode is not supported');
    DISP_CHANGE_NOTUPDATED: ShowMessage('DISP_CHANGE_NOTUPDATED: Unable to write settings to the registry.');
  end;
end;

procedure TForm1.WMDisplayChange(var Message: TMessage);
begin
ShowMessage('Changes in display detected!');
  inherited;
end;

initialization
  {$I unit1.lrs}








end.


так же не откажусь если кто то поможет доработать программку а именно добавить туда возможность изменения частоты монитора и вывод информации о видео карте,перерыл весь интернет но ничего конкретного не нашел как это все осуществить средствами Lazarus в Ubuntu.
Ps:Заранее всем спасибо.
FreeUser
незнакомец
 
Сообщения: 4
Зарегистрирован: 23.04.2010 01:21:50

Re: Проблема с компиляцией в Ubuntu

Сообщение FeodoR » 23.04.2010 03:08:33

Эта программа нигде, кроме как в Windows, не заработает, так как используются специфические для Windows типы данных, процедуры и функции.
Аватара пользователя
FeodoR
новенький
 
Сообщения: 59
Зарегистрирован: 16.04.2010 12:11:34
Откуда: MSK, ЮАО

Re: Проблема с компиляцией в Ubuntu

Сообщение FreeUser » 23.04.2010 03:26:32

А есть какие нибудь аналоги для Linux просто мне очень нужна подобная программа но так как в Linux пока новичок даже не знаю с чего начать
FreeUser
незнакомец
 
Сообщения: 4
Зарегистрирован: 23.04.2010 01:21:50

Re: Проблема с компиляцией в Ubuntu

Сообщение Vadim » 23.04.2010 06:39:52

FreeUser писал(а):А есть какие нибудь аналоги для Linux... даже не знаю с чего начать

Начните с изучения вот этого основополагающего труда:
http://www.freepascal.ru/article//book/xwin/
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Проблема с компиляцией в Ubuntu

Сообщение FreeUser » 23.04.2010 12:25:06

http://www.freepascal.ru/article//book/xwin/ просмотрел этот учебник но не нашел в нем того что мне надо :( а именно как изменить разрешение экрана и глубину цвета , там описывается создание окон а не управление параметрами дисплея может конечно я чего не понимаю но как писал выше я в Linux новичок.
FreeUser
незнакомец
 
Сообщения: 4
Зарегистрирован: 23.04.2010 01:21:50

Re: Проблема с компиляцией в Ubuntu

Сообщение v-t-l » 23.04.2010 12:57:08

Набрать в терминале
Код: Выделить всё
sudo apt-get install arandr
arandr
v-t-l
энтузиаст
 
Сообщения: 740
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Проблема с компиляцией в Ubuntu

Сообщение FreeUser » 23.04.2010 13:04:48

нет мне нужно именно самому написать программу в университете задание такое дали у меня тут идея появилась с программки написанной на lazarus отдавать команды в терминал программе xrandr только как это осуществить :?:
FreeUser
незнакомец
 
Сообщения: 4
Зарегистрирован: 23.04.2010 01:21:50

Re: Проблема с компиляцией в Ubuntu

Сообщение Mr.Smart » 23.04.2010 13:09:27

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


Вернуться в Lazarus

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

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

Рейтинг@Mail.ru