25 / 36 / 10
Регистрация: 17.02.2009
Сообщений: 364
1

То что читал то не помогло! Не смог исправить ошибку

18.10.2010, 23:36. Показов 1325. Ответов 11
Метки нет (Все метки)

Все в интернете перечитал, ничего не получается исправить ! в исходниках тот же код, но билдер ругается на него !
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
 
 
 
 
void __fastcall TForm1::N5Click(TObject *Sender)
{
 if(Form2->ComboBox1->Text == "Чеб21")
 {
 Client->Address = "10.20.123.58";
 Client->Port = 556;
 Client->Active = true;
 Client->Open() ;
 }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
 
 Memo1->Lines->Add("Вы присоеденились ;");
}
void __fastcall TForm1::ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
 Memo1->Lines->Add(Client->Socket->ReceiveText());
 }
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::N6Click(TObject *Sender)
{
Form2->Show();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Client->Active == false)
{
Memo1->Lines->Add("Вы даже не подключились к серверу! Как вы можете отправить сообщение ????");
if (Edit1->Text == "")
{
Memo1->Lines->Add("Пожалуйста не отправляйте пустые сообщения!");
}
}
Form1->Client->Socket->SendText(Form2->Edit1->Text + Edit1->Text);
}
//---------------------------------------------------------------------------
Кто может помогите, счас к исходнику видео билдера добавлю

Добавлено через 15 минут
Если можно причину возникновения этой ошибки !

Добавлено через 14 минут
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2010, 23:36
Ответы с готовыми решениями:

Не работает ссылка, самостоятельно найти и исправить ошибку не смог.
Всем привет. Если на сайт http://bigsys.ru/ войти, используя Google Chrome, не работает ссылка...

подскажите как исправить код что бы я смог обратиться к папке с дальнейшим чтением файлов в ней?
подскажите как исправить код что бы я смог обратиться к папке с дальнейшим чтением файлов в ней? ...

Создание простого приложения для Windows 9x/NT, решил как смог. Пожалуйста подскажите что исправить или добавить
задание: окно фон зелёный размер 500х400 курсор IDT_HAND При закрытии...

Скачал Clion, установил MinGW, пытался настроить, но так и не смог. Clion говорит, что Cmake выдаёт ошибку
Скачал Clion, установил MinGW, пытался настроить, но так и не смог. Clion говорит, что Cmake выдаёт...

11
1664 / 1133 / 80
Регистрация: 21.08.2008
Сообщений: 4,726
Записей в блоге: 1
18.10.2010, 23:45 2
че хоть за ошибка то? или весь фильм в 3Д надо смотреть?
по мойму легче было скопировать текст ошибки сюда, нежели к продюсеры играться
0
25 / 36 / 10
Регистрация: 17.02.2009
Сообщений: 364
18.10.2010, 23:48  [ТС] 3
C++
1
[C++ Error] Unit1.cpp(44): E2316 '_fastcall TForm1::ClientRead(TObject *,TCustomWinSocket *)' is not a member of 'TForm1'
Вам всем не угодишь =) я сделал эту видео запись для, более коректного понимания мой ошибки
0
Эксперт С++
3951 / 1806 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
19.10.2010, 00:53 4
Gus, опять та же ошибка?
Я последний раз предупреждаю: В следующий раз за N-ый дубляж одинаковых ошибок в разных темах я выдам карточку.

Объясняю ещё раз то, что объяснял всегда:
1. Копируя исходный код откуда-то вы забываете о том, что функции не привязаны к событиям.
2. Выполнив простую копию вы указываете, что функция находится в классе, но не декларируете эту функцию в заголовочном файле.

А вы никак это не хотите понять, хотя на заголовочный (*.h) файл я намекаю вам уже сотый раз.

Выход:
1. Писать самому! И вставлять важные моменты из чужого кода, если по подобию не можете написать свой.
2. По поводу данной ошибки:
2.1. В данном файле добавить прототип функции в заголовочный файл.
2.2. Перейти наконец-то в событиям компонента и указать ему данную функцию.
0
25 / 36 / 10
Регистрация: 17.02.2009
Сообщений: 364
19.10.2010, 01:09  [ТС] 5
Можно по проще намекать т.к нету у меня знаний полного программирования (т.е я самоучка) а копирую я код, набиваю руку.
Просто я кое каких вещей недопонимаю ClientConnect работает, буилдер не ругается...
Как же ClientRead то тут же выдает ошибку. !

Добавлено через 7 минут
Удобненький понятненький примерчик поможет мне
0
Эксперт С++
3951 / 1806 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
19.10.2010, 01:26 6
Цитата Сообщение от Gus Посмотреть сообщение
а копирую я код, набиваю руку.
Никогда вы так руку не набъёте, если и после моих слов просите код.
Какой тут может быть код? Прототип функции добавьте в public зону класса.

Тут не ClientServer "виноват", а отсутствие описания любой используемой функции в классе.

Вот этого:
C++
1
void _fastcall ClientRead(TObject *,TCustomWinSocket *);
в public области.
0
25 / 36 / 10
Регистрация: 17.02.2009
Сообщений: 364
19.10.2010, 01:31  [ТС] 7
Цитата Сообщение от MikeSoft Посмотреть сообщение
Никогда вы так руку не набъёте, если и после моих слов просите код.
Какой тут может быть код? Прототип функции добавьте в public зону класса.

Тут не ClientServer "виноват", а отсутствие описания любой используемой функции в классе.

Вот этого:
C++
1
void _fastcall ClientRead(TObject *,TCustomWinSocket *);
в public области.
Прощу прощенья, но я с классами не очень дружу. Т.к не дочитал их. я умею объявлять их и использовать. Что то я тут не вижу класс и где тут ставить метку publuc: ?

Добавлено через 2 минуты
О все догнал.
C++
1
2
3
4
void _fastcall ClientRead(TObject *,TCustomWinSocket *)
{
 Form1->Memo1->Lines->Add(Form1->Client->Socket->ReceiveText());
 }
этот код корректен ?
0
Эксперт С++
3951 / 1806 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
19.10.2010, 01:38 8
Цитата Сообщение от Gus Посмотреть сообщение
этот код корректен ?
Нет. Так как он не относится к классу TForm1, на которой расположен компонент.
Не изменяйте то, что в *.cpp файле. Отредактируйте класс TForm1, расположенный в хидере.
1
25 / 36 / 10
Регистрация: 17.02.2009
Сообщений: 364
19.10.2010, 01:44  [ТС] 9
Цитата Сообщение от MikeSoft Посмотреть сообщение
Нет. Так как он не относится к классу TForm1, на которой расположен компонент.
Не изменяйте то, что в *.cpp файле. Отредактируйте класс TForm1, расположенный в хидере.
Во, это подсказка. Так бы сразу.... Откомпилила родная =))
0
Эксперт С++
3951 / 1806 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
19.10.2010, 01:50 10
Цитата Сообщение от Gus Посмотреть сообщение
Во, это подсказка. Так бы сразу.... Откомпилила родная =))
Да я уже устал вам говорить о хидере. Почитайте свои темы. Везде ж одно и то же пишу.

Не по теме:

И поверьте мне на слово: Если я ворчу, то в большинстве случаев, делаю это не зря.

0
25 / 36 / 10
Регистрация: 17.02.2009
Сообщений: 364
19.10.2010, 01:50  [ТС] 11
еще 1 вопрос есть. Не по теме но вопрос же =)

как конкретно узнать пользователя. К примеру имеются исходники посыла текста с клиента к серверу
Сервер должен определить какой это клиент, и отправить ему отдельное сообщение описанное в файле (готов уже кусок программы)
0
Эксперт С++
3951 / 1806 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
19.10.2010, 02:00 12
Цитата Сообщение от Gus Посмотреть сообщение
как конкретно узнать пользователя.
Когда на сервере возбуждается событие OnRead (или подобное), в функцию-обработчик передаётся класс, который содержит в себе нужный сокет. В него и нужно записывать ответ.

Я работаю в новой IDE, поэтому код привести смогу только из новых реализаций...
Но в старых должны быть примерно такие же действия, посмотрите в доступных методах...

Вот такой прототип у функции-обработчика события OnExecute для сервера.
C++
1
void __fastcall TMainControl::TCPServerExecute(TIdContext *AContext)
AContext - указатель на объект класса, о котором я говорил.

Получить IP адрес и порт клиента можно так:
C++
1
String PeerInfo = AContext->Binding->PeerIP + ":" + IntToStr(AContext->Binding->PeerPort;
И послать ответ этому клиенту так:
C++
1
AContext->Connection->Socket->WriteLn("Message");
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2010, 02:00
Помогаю со студенческими работами здесь

Не смог найти ошибку
Добрый день. Мне дано следующее задание: Дано натуральное число n (n ≤ 9999). Верно ли, что...

Что делать что-бы исправить ошибку!
Привет Всем!!!! Установил я шаблон на Prestashop. Хочу зайти в админку, но вижу белый экран и...

Выдает ошибку, подскажите что исправить
from tkinter import * from math import sqrt #sqrt(x) from math import sin #sin(x) def...

Не могу найти ошибку в программе. Что исправить?
Программа проходит все мои тесты, однако проверку на сайте не проходит, выкидывает следующее...

Что исправить в коде, чтобы убрать ошибку
Вечер добрый. Всплывает вот такая ошибка, как на картинке. Что не так делаю? Где нужно...

Нужно исправить ошибку что то не так работает
Нужно исправить ошибку что то не так работает #include&lt;iostream&gt; #include&lt;stdio.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru