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

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    desTiny, в рот мне ноги Х_Х Работает
    А ещё вот так
    [Error] Unit2.pas(113): Undeclared identifier: 'a'
    Нужно объявить переменную, я вот так пытаюсь
    procedure TForm1.btn1Click(Sender: TObject);
    var a: array;
    нехочет... Это мне для
    Code:
      a := explode(',','test,test,tets', 0) ;
      for i := 0 to High(a) do
      begin
        showMessage(a[i]);
      end;
    ппц тупорылый язык, в пыхе нет такого гемороя, а здесь вобще чёрт пойми, что меня поражает так это комментарии { ... } этож ваще ппц... ПРи этом идёт какой-то код и тама есть {$R *.dfm} ну так это комментарий, удаляю грит верни обратно! Ппц, анунах........
     
    #2381 Ponchik, 20 Dec 2008
    Last edited: 20 Dec 2008
  2. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    {$R *.dfm} - Эта деректива, подключающая ресурсы
    [Error] Unit2.pas(113): Undeclared identifier: 'a', ты пытаешься объявить массив, массив чего???

    var a: array of TYPE!!!!
     
  3. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    W!z@rD, О-М-Г, массив чего-то Х_Х Тупорылый язык!
    a := explode(',','test,test,tets', 0) ;
    Ну это строки я так понимаю, значит
    var a: array of String;
    Жалуется на строку
    a := explode(',','test,test,tets', 0) ;
    со словами
    [Error] Unit2.pas(114): Incompatible types
     
  4. desTiny

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Попрошу не говорить так. Почему если что-то отлично от того, к чему ты привык, то оно обязателно "тупорыло"?
     
  5. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    desTiny, да я злой шопесец, подскажи какой массив должен быть...
     
  6. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    Посмотри описание функции explode, что она возращает.
    То что возращает и будет типом массива

    p.s. не говори так больше, язык не плохой... =\
     
  7. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    W!z@rD, а я вобще в ней невижу слова return, она вобще хоть что-то возвращает? Или в дельфи это работает как-то через хитро закрученую ж**у? Зайди в IRC будет быстрее и удобнее =\
     
  8. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    Ponchik нету return, есть Result.
     
  9. Pir4tt

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

    Joined:
    3 Jan 2008
    Messages:
    73
    Likes Received:
    36
    Reputations:
    5
    Ponchik, переменные должны быть того же типа что возвращает функция - эксплод в твоём случае возвращает тип TArray, значит и a дожны быть TArray
    ;)
     
  10. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    М, а есть тут функця тпа var_dump() как в пыхе чтоб тип показывала
     
  11. desTiny

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    >>чтоб тип показывала
    в смысле? вообще-то в паскале статическая типизация (вроде это так называется)
     
  12. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    desTiny, ну string/integer/array чоб показывало
    Напрмер var_dump('123') скажет что это string

    И ещё вопрос, вот мне эта функция explode мешает, много места занимает =\
    Можно-ли её как-то сныкать в другой файл и потом типа include запросить её, ну а её куданить ну в dll пихнуть, ну в общем разбить код на части
     
    #2392 Ponchik, 20 Dec 2008
    Last edited: 20 Dec 2008
  13. desTiny

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    а) если у тебя переменная задана типа var a: integer; то a навеки останется integer'ом... Точно так же константам присваивается тип однозначно. так что смысла в том, о чём ты говоришь, нету.

    б) создаёшь новый юнит, фигаришь туда свою функцию (либо совсем тупо, либо отельно заголовок до слова implementation, и всю функу после), а потом пишешь оттуда, где хочешь юзать функу - uses Unit2
     
  14. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    Ponchik почитать можно про Variant
     
  15. xaker-boss

    xaker-boss Elder - Старейшина

    Joined:
    6 Mar 2007
    Messages:
    251
    Likes Received:
    49
    Reputations:
    -11
    Вот есть у меня такой кодик, я хочу отправить файл
    PHP:
    procedure SendEmail(sTosFileString);
    var
      
    MTIdMessage;
    begin
      M 
    := TIdMessage.Create(Form1);
      
    M.Body.Add('Files');
      
    M.From.Text := '"Vet" <[email protected]>'//отправитель
      
    M.Recipients.Add;
      
    M.Recipients.Items[0].Text := '"Post" <'+sTo+'>'
      
    M.MessageParts.Add;
      
    TIdAttachment.Create(m.MessageParts,sFile);
      
    M.Subject := ':)'//Тема письма

      
    Form1.IdSMTP1.AuthenticationType := atLogin;
      
    Form1.IdSMTP1.Host := 'smtp.pisem.net';
      
    Form1.IdSMTP1.Username := '[email protected]';
      
    Form1.IdSMTP1.Password := '*******';
      
    Form1.IdSMTP1.Connect();
      if 
    Form1.IdSMTP1.Connected then
      begin
        Form1
    .IdSMTP1.Send(M);
      
    end;
      
    Form1.IdSMTP1.Disconnect;
    end;
    Но делфя по чему то выдаёт мне Ошибки в этих строчках:
    TIdAttachment.Create(m.MessageParts,sFile);

    Form1.IdSMTP1.AuthenticationType := atLogin;

    И пишет мне это:
    PHP:
    [DCC ErrorUnit1.pas(210): E2003 Undeclared identifier'TIdAttachment'
    [DCC ErrorUnit1.pas(210): E2066 Missing operator or semicolon
    [DCC ErrorUnit1.pas(213): E2003 Undeclared identifier'AuthenticationType'
    [DCC ErrorUnit1.pas(213): E2003 Undeclared identifier'atLogin'
    [DCC Errorsvshost.dpr(11): F2063 Could not compile used unit 'Unit1.pas'
    Кто знает как это исправить?
     
  16. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    xaker-boss, у тебя не существует TIdAttachment, надо его кагбы создать сначало
    http://forum.vingrad.ru/forum/s/72a6918e29f4b4524b74845652ec71aa/topic-152032.html
    ========================
    Блина, вот проблема ппц, я незнаю чё делать Х_Х
    В общем есть у меня поле, прикрутил к нему UpDown кнопки, если число больше 1000 то ставится пробел, тоесть 1 000 мне это число надо отправить на сервер через WebBrowser я юзаю
    str.Text - это и есть число с пробелом 1 000
    wb1.Navigate('http://127.0.0.1/script.php?status=ok&number=' + str.Text + '&something=tralala');
    в скрипте script.php записавыю QUERY_STRING в файл, смарю в файл и чё =\
    Записывается status=ok&number=1
    Всё остальное отрубается :(((
    Как запретить полю делить числа пробелами, пытался вырезать эти пробелы, нащёл в гугле str_replace всёравно не помогло
    Пытался IntToStr он грит типа немогу StrToInt грит несовместим int и str, или наоборот, ну неважно!
    Надо запретить делить пробелами =\
    Если выполнить str.Text := 1000; то оно нормально будет отображаться без пробелов, но если клацнуть на updown сразу делиться =\
     
    #2396 Ponchik, 20 Dec 2008
    Last edited: 20 Dec 2008
    4 people like this.
  17. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    xaker-boss
    Ponchik
    1 - использовать Replace(' ', '');
    2 - искать и удалять пробелы
    3 - имхо самый вариант, использовать компонент TSpinEdit (вкладка Samples)
     
    1 person likes this.
  18. xaker-boss

    xaker-boss Elder - Старейшина

    Joined:
    6 Mar 2007
    Messages:
    251
    Likes Received:
    49
    Reputations:
    -11
    А подскажитека код, чтобы при нажатию на кнопку делался скрин рабочего стала и сохранялся дапустим в C:\
     
  19. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    showmessage(StrReplace(pole.Text,' ',''));
    выводит 1 000 всёравно =\
    А, strreplace Это из гугла функция, а Replace нету :(
    [Error] Unit2.pas(127): Undeclared identifier: 'Replace'

    showmessage(IntToStr(ord(str.Text[2])));
    160
    Щас попробую chr(160) заменить на ''

    Мы пабедиле!!11 :D
    Пробел кстате это 32

    Всё, всё отлично отправляется в скрипт
    Гугол
    Code:
    Chr(160) - это неразрывный пробел. Т.е. отображается как пробел, но переносить по нему слова нельзя.
    Мне кажеться или это &nbsp; :confused:

    Code:
    [01:05:22] <v01d> свойство 
    [01:05:28] <v01d> для updown
    [01:05:32] <v01d> thousand
    [01:05:34] <v01d> тысячи
    [01:05:38] <v01d> и поставь false
    ВСЁ МЛЯ! Никаких пробелов! ёпрст!!!11 :mad: :mad:
     
    #2399 Ponchik, 21 Dec 2008
    Last edited: 21 Dec 2008
  20. _empty

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

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    Ну вот так например можно:
    Code:
    #include <atlimage.h>
    #include <Gdiplusimaging.h>
            //...
            CBitmap bitmap;
            bitmap.CreateBitmap(width, height, 1, 32, rgbData);
            CImage image;
            image.Attach(bitmap);
            image.Save(_T("C:\\test.bmp"), Gdiplus::ImageFormatBMP);
    
    И вот статейка интересная screenshot в буффер переноситься, но можно и сразу в файл статья
     
Thread Status:
Not open for further replies.