[ 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. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Вот только что попробовал реализовать эту свою задумку. Вроде как пашет нормально )
    Code:
    var
     x:integer;
     sum,cnt:integer;
     s:string;
    begin
     s:=memo1.text;
     sum:=0;
     cnt:=0;
     for x:=1 to length(s) do
      if (ord(s[x])>$7F) then
       begin
        inc(cnt);
        sum:=sum+ord(s[x]);
       end;
     if cnt=0 then ShowMessage('А хер его знает что там');
      else if (sum div cnt<$C0) then showmessage('DOS')
        else showmessage('WIN');
    end;
    
     
  2. Balvan

    Balvan Member

    Joined:
    11 Mar 2009
    Messages:
    66
    Likes Received:
    5
    Reputations:
    0
    Ребята, мну уже не надо... =) по другому сделал )
     
  3. Huligan1

    Huligan1 New Member

    Joined:
    4 Mar 2009
    Messages:
    26
    Likes Received:
    2
    Reputations:
    0
    Привет всем как бы мне поумнее сделать чтобы Form1 сворачивалась в трей (к часам)
    PHP:
    procedure TForm4.TrayIcon1Click(SenderTObject);
    begin
    Form4
    .Hide;
    end;

    end.
    Сделал так но при клике неразворачивается форма и тупо исчезает затем её неразвернуть и несвернуть при клике на иконку в трее

    (Ещё назрел маненький вопросик когда я компилирую программу она почему то так и называется project1 ну или судя как её переименовать можно ли ей как бы закрепить имя ?)
     
  4. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 Huligan1
    1) Delphi World ("Иконка на TrayBar", "Иконка на TrayBar - пример 1", "Иконка на TrayBar - пример 2") Достаточно вбить в гугле с сразу увидишь десятки сайтов в таким примером. + в этом же топике пару дней назад это обсуждалось.
    2) Ну так сразу назови проект как тебе нужно. А чтобы переименовать название которое отображается на панеле задач, то application.title:='dfdfdfdf';
     
  5. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    ps. если юзаешь компонент, то
    при сворачивании делается Form4.Hide;
    а при клике - Form4.show;
     
  6. f0rward

    f0rward New Member

    Joined:
    26 Oct 2008
    Messages:
    10
    Likes Received:
    2
    Reputations:
    0
    Пишу брут, первый раз, всё работает, гуды находит, но есть оно : проходит ровно столько строк, сколько установлено потоков. Целый день пишу, голова уже не работает, вот кусок прцедуры, отвечающей за сооздание потока :
    Code:
      for i:= 1 to SpinEdit1.Value do begin
        a[i]:=TNewThread.Create(true);
        a[i].FreeOnTerminate:=true;
        a[i].Priority:=tpLOWER;
        a[i].LoginTH:=copyLogin(Source.Strings[i]);
        a[i].passTH:=copyPass(Source.Strings[i]);
        a[i].Resume;
        application.ProcessMessages;
        if Application.Terminated then break;
        if stop then break;
        ThreadsLBL.Caption:=IntToStr(i);
      end;
    
    Поправьте, как надо.
    не актуально, как запостил - нашел ошибку.
     
    #3386 f0rward, 9 May 2009
    Last edited: 9 May 2009
  7. НTL

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

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    BorderStyle = bsNone
    А мне надо перемещать форму по экрану при поможи зажатие мышки (Также как и обычные окна Windows), как это можно сделать?
     
  8. Sibogatov

    Sibogatov New Member

    Joined:
    24 Nov 2008
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    вот код, скажите пожалуйста что не так
    Code:
    #include <windows.h>
    #include <string.h>
    #include <time.h>
    #include <math.h>
    
    #define ID_TIMER    1
    #define TWOPI       (2 * 3.14159)
    
    LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
    
    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        PSTR szCmdLine, int iCmdShow)
         {
         static char szAppName[] = "AnaClock" ;
         HWND        hwnd;
         MSG         msg;
         WNDCLASSEX  wndclass ;
    
    	 wndclass.cbSize        = sizeof (wndclass) ;
         wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
         wndclass.lpfnWndProc   = WndProc ;
         wndclass.cbClsExtra    = 0 ;
         wndclass.cbWndExtra    = 0 ;
         wndclass.hInstance     = hInstance ;
         wndclass.hIcon         = NULL ;
         wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
         wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
         wndclass.lpszMenuName  = NULL ;
         wndclass.lpszClassName = szAppName ;
    	 wndclass.hIconSm       = NULL ;
    
         RegisterClassEx (&wndclass) ;
    
         hwnd = CreateWindow (szAppName, "Analog Clock",
                              WS_OVERLAPPEDWINDOW,
                              CW_USEDEFAULT, CW_USEDEFAULT,
                              CW_USEDEFAULT, CW_USEDEFAULT,
                              NULL, NULL, hInstance, NULL) ;
    
         if (!SetTimer (hwnd, ID_TIMER, 1000, NULL))
              {
              MessageBox (hwnd, "Too many clocks or timers!", szAppName,
                          MB_ICONEXCLAMATION | MB_OK) ;
              return FALSE ;
              }
    
         ShowWindow (hwnd, iCmdShow) ;
         UpdateWindow (hwnd) ;
    
         while (GetMessage (&msg, NULL, 0, 0))
              {
              TranslateMessage (&msg) ;
              DispatchMessage (&msg) ;
              }
         return msg.wParam ;
         }
    
    void SetIsotropic (HDC hdc, int cxClient, int cyClient)
         {
         SetMapMode (hdc, MM_ISOTROPIC) ;
         SetWindowExtEx (hdc, 1000, 1000, NULL) ;
         SetViewportExtEx (hdc, cxClient / 2, -cyClient / 2, NULL) ;
         SetViewportOrgEx (hdc, cxClient / 2,  cyClient / 2, NULL) ;
         }
    
    void RotatePoint (POINT pt[], int iNum, int iAngle)
         {
         int   i ;
         POINT ptTemp ;
    
         for (i = 0 ; i < iNum ; i++)
              {
              ptTemp.x = (int) (pt[i].x * cos (TWOPI * iAngle / 360) +
                                pt[i].y * sin (TWOPI * iAngle / 360)) ;
    
              ptTemp.y = (int) (pt[i].y * cos (TWOPI * iAngle / 360) -
                                pt[i].x * sin (TWOPI * iAngle / 360)) ;
    
              pt[i] = ptTemp ;
              }
         }
    
    void DrawClock (HDC hdc)
         {
         int   iAngle ;
         POINT pt[3] ;
    
         for (iAngle = 0 ; iAngle < 360 ; iAngle += 6)
              {
              pt[0].x =   0 ;
              pt[0].y = 900 ;
    
              RotatePoint (pt, 1, iAngle) ;
    
              pt[2].x = pt[2].y = iAngle % 5 ? 33 : 100 ;
    
              pt[0].x -= pt[2].x / 2 ;
              pt[0].y -= pt[2].y / 2 ;
    
              pt[1].x  = pt[0].x + pt[2].x ;
              pt[1].y  = pt[0].y + pt[2].y ;
    
              SelectObject (hdc, GetStockObject (BLACK_BRUSH)) ;
    
              Ellipse (hdc, pt[0].x, pt[0].y, pt[1].x, pt[1].y) ;
              }
         }
    
    void DrawHands (HDC hdc, struct tm *datetime, BOOL bChange)
         {
         static POINT pt[3][5] = { 0, -150, 100, 0, 0, 600, -100, 0, 0, -150,
                                   0, -200,  50, 0, 0, 800,  -50, 0, 0, -200,
                                   0,    0,   0, 0, 0,   0,    0, 0, 0,  800 } ;
         int          i, iAngle[3] ;
         POINT        ptTemp[3][5] ;
    
         iAngle[0] = (datetime->tm_hour * 30) % 360 + datetime->tm_min / 2 ;
         iAngle[1] =  datetime->tm_min  *  6 ;
         iAngle[2] =  datetime->tm_sec  *  6 ;
    
         memcpy (ptTemp, pt, sizeof (pt)) ;
    
         for (i = bChange ? 0 : 2 ; i < 3 ; i++)
              {
              RotatePoint (ptTemp[i], 5, iAngle[i]) ;
    
              Polyline (hdc, ptTemp[i], 5) ;
              }
         }
    
    LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
         {
         static int         cxClient, cyClient ;
         static struct tm   dtPrevious ;
         BOOL               bChange ;
         HDC                hdc ;
         PAINTSTRUCT        ps ;
         time_t             lTime ;
         struct tm         *datetime ;
    
         switch (iMsg)
              {
              case WM_CREATE :
                   time (&lTime) ;
                   datetime = localtime (&lTime) ;
    
                   dtPrevious = * datetime ;
                   return 0 ;
    
              case WM_SIZE :
                   cxClient = LOWORD (lParam) ;
                   cyClient = HIWORD (lParam) ;
                   return 0 ;
    
              case WM_TIMER :
                   time (&lTime) ;
                   datetime = localtime (&lTime) ;
    
                   bChange = datetime->tm_hour != dtPrevious.tm_hour ||
                             datetime->tm_min  != dtPrevious.tm_min ;
    
                   hdc = GetDC (hwnd) ;
    
                   SetIsotropic (hdc, cxClient, cyClient) ;
    
                   SelectObject (hdc, GetStockObject (WHITE_PEN)) ;
                   DrawHands (hdc, &dtPrevious, bChange) ;
    
                   SelectObject (hdc, GetStockObject (BLACK_PEN)) ;
                   DrawHands (hdc, datetime, TRUE) ;
    
                   ReleaseDC (hwnd, hdc) ;
    
                   dtPrevious = *datetime ;
                   return 0 ;
    
              case WM_PAINT :
                   hdc = BeginPaint (hwnd, &ps) ;
    
                   SetIsotropic (hdc, cxClient, cyClient) ;
                   DrawClock    (hdc) ;
                   DrawHands    (hdc, &dtPrevious, TRUE) ;
    
                   EndPaint (hwnd, &ps) ;
                   return 0 ;
    
              case WM_DESTROY :
                   KillTimer (hwnd, ID_TIMER) ;
                   PostQuitMessage (0) ;
                   return 0 ;
              }
         return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
         }
    
     
  9. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    Что есть объект форма? Форма перемещается по рабочему столу или в каком то приложении?
     
  10. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    у контрола, на событие OnMouseDown
    PHP:
    ReleaseCapture;  
    SendMessage(Handle,WM_SYSCOMMAND,$f012,0)
     
  11. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 Sibogatov Сразу в глаза бросается одна ошибка - Темой ошибся. Код на С++ а тема про Delphi )
     
    1 person likes this.
  12. Balvan

    Balvan Member

    Joined:
    11 Mar 2009
    Messages:
    66
    Likes Received:
    5
    Reputations:
    0
    Вот попалась лаба в которой надо сделать арифметику в римской системе счисления.
    вот "собрал" такую хрень из чужих кодесов =)
    http://rapidshare.com/files/231262235/laba.txt
    и не пойму в чём проблема, ничего не выводится :confused: можете подсказать что не так или как правильно(лучше) сделать? (только пожалуйста без хак-пафоса )) )
    з.ы. с мну +5.
     
  13. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    есть ли мини модуль jpeg без тяжелых юнитов типа Graphics, Classes, SysUtils который умеет просто открыть Jpeg изменить размер и сохранить в Jpeg?
    Перерыл весь инет, ничего толкового не нашел.
     
  14. НTL

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

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    KaZ@NoVa, да форма, по столу
    W!z@rD, не работает
     
  15. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    выкинь свой "коноплятор", код 100% рабочий.

    PHP:
    procedure TForm1.Panel1MouseDown(SenderTObjectButtonTMouseButton;
      
    ShiftTShiftStateXYInteger);
    begin
    ReleaseCapture
    ;
    SendMessage(HandleWM_SYSCOMMAND$f0120);
    end;
     
  16. НTL

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

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    А точно, просто у меня картинка во всю форму была
     
  17. desTiny

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    а я рискну предположить, что код не работает
     
    1 person likes this.
  18. F1shka

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

    Joined:
    10 Apr 2008
    Messages:
    173
    Likes Received:
    305
    Reputations:
    3
    Люди хелп! Как при реге вконтакте капчу преобразовать в image ? Чё то у меня ваще фигово!
     
  19. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    на инди
    Code:
    uses IdHttp, jpeg;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      http: TIdHttp;
      ms:   TMemoryStream;
      jpeg: TJpegImage;
    begin
      http := TIdHTTP.Create(nil);
      ms := TMemoryStream.Create;
      jpeg := TJpegImage.Create;
      try
        http.Get('http://i136.photobucket.com/albums/q195/combatfather/post-19-1177146510.jpg', ms);
        ms.Position := 0;
        jpeg.LoadFromStream(ms);
        Image1.Picture.Graphic := jpeg;
      finally
        jpeg.Free; ms.Free; http.Free;
      end;
     
  20. Huligan1

    Huligan1 New Member

    Joined:
    4 Mar 2009
    Messages:
    26
    Likes Received:
    2
    Reputations:
    0
    Помогите форма нехочет закрываться я прописываю ей Form5.Close; а она нехочет
    PHP:
    procedure TForm5.FormCreate(SenderTObject);
    begin
    Application
    .title:=('Соединение с')
    Winexec('connect.bat',SW_HIDE);
    ShowMessage('Соединение установленно');
    Application.ShowMainForm:= False;
    Form5.Close;


    end;

    end.
    P.S А ещё можно как нибудь узнать программно имя соединения юзера а то "Соединение с" некатит
    Я имею ввиду созданное интернет соединение в реестр лезть надо ?
    Как использовать параметры в MessageBox я имею ввиду юзаю MB_OK а как при нажатии на эту кнопку когда запуститься приложение сделать чтобы проект закрывался
     
    #3400 Huligan1, 12 May 2009
    Last edited: 13 May 2009
Thread Status:
Not open for further replies.