[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Возникло пару вопросов по ServerSocket:
    ServerSocket.Socket.Connections[0].SendText('msg') С помощью этой команды сервер отправляет масагу 0 (Первому) клиенту (1-Второй и т.д.), а если допустим 0 отключится то на его место придет 1 и все остальные клиенты сдвинутся на -1, так из этого вопрос: можно ли при подключение клиента к серверу давать ему на все сессию статический номер (Тот который захочу я), еще бы хотелось узнать: Как бы сделать для каждого клиента свой поток?

    И как отправить всем клиентам масагу?


    Не подойдет, если использовать вышеперечисленный способ идентификации клиентов...

    denjf,
    я имел ввиду использование этих компонентов
     
    #5101 НTL, 2 Jan 2010
    Last edited: 2 Jan 2010
  2. total90

    total90 Elder - Старейшина

    Joined:
    30 Sep 2009
    Messages:
    90
    Likes Received:
    85
    Reputations:
    12
    кто сможет вдуплить мне процедуры/функции паскаля
    в аську -426036723
    :(
     
  3. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    что именно обьяснить? что непонятно?
     
  4. total90

    total90 Elder - Старейшина

    Joined:
    30 Sep 2009
    Messages:
    90
    Likes Received:
    85
    Reputations:
    12
    буквально всё, простые функции и процедуры мне понятны, нужны ф/п с описаниями(кароче сложные)
    а-то учу паскаль и завис на месте :(
     
  5. n1ghtstalker

    n1ghtstalker Elder - Старейшина

    Joined:
    28 Sep 2008
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    эм товарищ, если понять как работают простые функции и процедуры ты с лёгкостью сможешь написать и сложную. приведи пример функции работа которой тебе не понятна.
     
  6. total90

    total90 Elder - Старейшина

    Joined:
    30 Sep 2009
    Messages:
    90
    Likes Received:
    85
    Reputations:
    12
    PHP:
    procedure summa1(var a,b:integers:integer)

    вот именно эта часть мне чуть-чуть непонятна(эту процедуру писал сам)
    тоисть почему именно так, а не иначе, видел процедуры типа:

    PHP:
    procedure summa1(var a,b:integers:integer):integer
    так какая же разница между первой и второй

    и ещё не понел какие переменные надо объявлять в главной программе, а какие в подпрограммах
     
    #5106 total90, 3 Jan 2010
    Last edited: 3 Jan 2010
  7. AquaKlaster

    AquaKlaster Active Member

    Joined:
    9 Mar 2009
    Messages:
    0
    Likes Received:
    204
    Reputations:
    23
    второе это не процедура а функция. и писать надо так
    function summa1(var a,b:integer, s:integer):integer
     
    1 person likes this.
  8. n1ghtstalker

    n1ghtstalker Elder - Старейшина

    Joined:
    28 Sep 2008
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    Товарищ прав ) я сначала глянул меня аж в стан поставило )
    но ближе к сути.
    вот допустим у тебя есть
    function summ(var:a,b:integer):integer
    begin
    summ:=a+b;
    end;
    в программе
    summ(a,b);
    вернёт тебе результат в summ .
    для процедуры
    procedure summ(var a,b,s:integer)
    begin
    s:=a+b;
    end;
    summ(a,b,s);
    при вернёт тебе значение в переменную s глобального типа.
    гы . не буду пока нагружать переменными локального типа.
     
    1 person likes this.
  9. total90

    total90 Elder - Старейшина

    Joined:
    30 Sep 2009
    Messages:
    90
    Likes Received:
    85
    Reputations:
    12
    будем считать что я всё понел :(
     
  10. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Где можно посмотреть пример реализации отправки пакета UDP на WINSOCK?
    Пример с MS не понятно что отправляет (отправляет пустой пакет (но такой пример мне не подходит)):
    Code:
    #include <windows.h>
    #include <stdio.h>
    #include "winsock2.h"
    
    void main() {
      
      WSADATA wsaData;
      SOCKET SendSocket;
      sockaddr_in RecvAddr;
      int Port = 27015;
      char SendBuf[1024];
      int BufLen = 1024;
    
      //---------------------------------------------
      // Initialize Winsock
      WSAStartup(MAKEWORD(2,2), &wsaData);
    
      //---------------------------------------------
      // Create a socket for sending data
      SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    
      //---------------------------------------------
      // Set up the RecvAddr structure with the IP address of
      // the receiver (in this example case "123.456.789.1")
      // and the specified port number.
      RecvAddr.sin_family = AF_INET;
      RecvAddr.sin_port = htons(Port);
      RecvAddr.sin_addr.s_addr = inet_addr("123.456.789.1");
    
      //---------------------------------------------
      // Send a datagram to the receiver
      printf("Sending a datagram to the receiver...\n");
      sendto(SendSocket, 
        SendBuf, 
        BufLen, 
        0, 
        (SOCKADDR *) &RecvAddr, 
        sizeof(RecvAddr));
    
      //---------------------------------------------
      // When the application is finished sending, close the socket.
      printf("Finished sending. Closing socket.\n");
      closesocket(SendSocket);
    
      //---------------------------------------------
      // Clean up and quit.
      printf("Exiting.\n");
      WSACleanup();
      return;
    }
     
  11. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Как на winsock, работать с AC? Через idHTTP долго и нестабильно...
     
  12. ronald

    ronald Elder - Старейшина

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    42
    Reputations:
    6
    Подскажите, как из StringGrid при помощи Delphi конвертировать данные в таблицу через OpenOffice.org (есть способ через MS Excel, но есть необходимость использовать средства OpenOffice). Версия дельфей - седьмая.
    И ещё: как определить количество строк в StringGrid?
     
  13. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    Насчет конверции хз, потыкай макрос, VB и Dlp похожи,
    А строки это толи Rows толи Columns в свойствах stringgrid:
    Stringgrid1.rows.count
     
  14. StealthMaster

    StealthMaster Member

    Joined:
    3 Dec 2008
    Messages:
    52
    Likes Received:
    11
    Reputations:
    0
    За количество строк отвечает свойство RowCount
    Code:
    smth := StringGrid1.RowCount;
    
    По поводу вставки текста в OpenOffice. Подключаешься к серверу автоматизации ОО, создаешь новый или открываешь имеющийся документ, вставляешь текст в нужную ячейку.

    Вот класс, который реализует часть нужных действий:

    Code:
    type
       TOpenOffice = class
          function Connect: boolean;
          procedure Disconnect;
          function CreateDocument (Application: string): boolean;
          procedure InsertTextCalc(Text: string; Index: integer = 0;
          col: integer = 0; row: integer = 0; Border: boolean = false;
          Bold: boolean = false);
          
       private
          StarOffice: Variant;
          Document: Variant;
       end;
    
    implementation
    {$D+,L+}
    
    function TOpenOffice.Connect: boolean;
    begin
       if VarIsEmpty(StarOffice) then
          StarOffice := CreateOleObject('com.sun.star.ServiceManager');
       Result := not (VarIsEmpty(StarOffice) or VarIsNull(StarOffice));
    end;
    
    procedure TOpenOffice.Disconnect;
    begin
       StarOffice := Unassigned;
    end;
    
    
    function TOpenOffice.CreateDocument(Application: String): boolean;
    var
       StarDesktop: Variant;
    begin
       StarDesktop := StarOffice.createInstance('com.sun.star.frame.Desktop');
       Document := StarDesktop.LoadComponentFromURL(
                      'private:factory/s'+Application, '_blank', 0,
                      VarArrayCreate([0, -1], varVariant));
       Result := not (VarIsEmpty(Document) or VarIsNull(Document));
    end;
    
    
    procedure TOpenOffice.InsertTextCalc(Text: string; Index: integer = 0;
                col: integer = 0; row: integer = 0; Border: boolean = false;
                Bold: boolean = false);
    var
      Sheets, Sheet, Cell, Struct: variant;
    begin
       Sheets := Document.GetSheets;
       Sheet := Sheets.getByIndex(Index);
       Cell := Sheet.getCellByPosition(col, row);
       Cell.setString(Text);
    
       if Border then
        begin
          Struct := StarOffice.Bridge_GetStruct('com.sun.star.table.BorderLine');
    
          Struct.lineDistance := 0;
          Struct.innerLineWidth := 0;
          Struct.outerLineWidth := 1;
    
          cell.leftBorder := Struct;
          Cell.rightBorder := Struct;
          Cell.topBorder := Struct;
          Cell.bottomBorder := Struct;
    
        end;
    
       if Bold then
        Cell.CharWeight:= 200;
    end;
    
    end; // TOpenOffice
    
    А использовать примерно так:
    Code:
    var
      OpenOffice: TOpenOffice
    
    procedure TfmMain.bOOConnectClick(Sender: TObject);
    begin
      OpenOffice := TOpenOffice.Create;
      OpenOffice.Connect;
      OpenOffice.CreateDocument('calc');
      OpenOffice.InsertTextCalc(StringGrid1.Cells[1,1], 0, 1, 1, true);
      OpenOffice.Disconnect;
    end;
    
    Скажу сразу, что в качестве кода класса скопировал кусок одного из своих старых модулей, а часть кода написал прямо здесь, поэтому мог ошибиться. Если есть желание - пиши после праздников в аську, поболтаем на эту тему.
     
    #5114 StealthMaster, 6 Jan 2010
    Last edited: 6 Jan 2010
  15. iGlass

    iGlass New Member

    Joined:
    14 May 2009
    Messages:
    86
    Likes Received:
    1
    Reputations:
    0
    Всем доброго времени суток ! :))

    Не подскажете как сделать такую же панель как "Nero Search" Чтобы она так же была на панели задач. Заранее спасибо :)
     
  16. TrueBit

    TrueBit Member

    Joined:
    21 Nov 2009
    Messages:
    71
    Likes Received:
    19
    Reputations:
    4
    Как выключить звук в windows?

    ps: код с delphiworld не работает
     
  17. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Как перенести обработчик события? с unit1 на unit3?
    (Событие: procedure TThread.Execute;) и на какой unit кидать это:

    Code:
         TThread = class(TThread)
      protected
        procedure Execute; override;
      end;
    add: Формы Form3 не существует, был создан просто unit3
     
    #5117 НTL, 6 Jan 2010
    Last edited: 6 Jan 2010
  18. DimkO

    DimkO Banned

    Joined:
    16 Nov 2008
    Messages:
    28
    Likes Received:
    3
    Reputations:
    0
    подскажите,нужно что бы при нажатии на карте(загруженную в TImage) на какой либо участок(тип страну) происходило действие такое то,вот вообще нету никаких зацепок,киньте хоть какую то идею:)
     
  19. iGlass

    iGlass New Member

    Joined:
    14 May 2009
    Messages:
    86
    Likes Received:
    1
    Reputations:
    0
    Изображение на кусочки подели :))

    P.S

     
    #5119 iGlass, 7 Jan 2010
    Last edited: 7 Jan 2010
  20. DimkO

    DimkO Banned

    Joined:
    16 Nov 2008
    Messages:
    28
    Likes Received:
    3
    Reputations:
    0
    хм,и как ты это себе представляешь?)по координатам высчитывать тоже не катит))
     
Thread Status:
Not open for further replies.