- Remove From My Forums
-
Question
-
ok I got this code for online but it is not working…
and I really think is should
I don’t see why not
this is the errors I am getting
Error 1 An object reference is required for the non-static field, method, or property ‘HeartPulse.Form1.comboBox1’ C:Documents and SettingsBrandonMy DocumentsVisual Studio 2008ProjectsHeartPulseHeartPulseForm1.cs
303 17 HeartPulse
Error 2 An object reference is required for the non-static field, method, or property ‘HeartPulse.Form1.comboBox1’ C:Documents and SettingsBrandonMy DocumentsVisual Studio 2008ProjectsHeartPulseHeartPulseForm1.cs
304 17 HeartPulse
Error 3 An object reference is required for the non-static field, method, or property ‘System.IO.Ports.SerialPort.PortName.get’ C:Documents and SettingsBrandonMy DocumentsVisual Studio 2008ProjectsHeartPulseHeartPulseForm1.cs
304 34 HeartPulse
Error 4 An object reference is required for the non-static field, method, or property ‘System.IO.Ports.SerialPort.DataReceived’ C:Documents and SettingsBrandonMy DocumentsVisual Studio 2008ProjectsHeartPulseHeartPulseForm1.cs
305 17 HeartPulse
Error 5 The name ‘serialPort_DataReceived’ does not exist in the current context C:Documents and SettingsBrandonMy DocumentsVisual Studio 2008ProjectsHeartPulseHeartPulseForm1.cs
305 79 HeartPulsethis is the code
public static string SetPortName(string defaultPortName)
{
string portName;//Console.WriteLine(«Available Ports:»);
foreach (string s in SerialPort.GetPortNames())
{
comboBox1.Items.Add(s);
comboBox1.Text = SerialPort.PortName;
SerialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
}Console.Write(«COM port({0}): «, defaultPortName);
portName = Console.ReadLine();if (portName == «»)
{
portName = defaultPortName;
}
return portName;
}
Answers
-
First of, the method is static so you can’t use any object that depend on an instance (static methods are called without creating a instance of the class they belong such as Array.Sort) Also it seems that serialPort_DataReceived is out of scope. I
assume you know how to subscribe to an event but perhaps its because its static as well (haven’t tried to do this in a static member, you should check the constrains for it before using it).PS: Beware of simply copy&paste code from others sources, almost always you should tweak them so you can adapt it for your needs.
Hope this help
-
Marked as answer by
Tuesday, June 1, 2010 12:47 AM
-
Marked as answer by
-
This line:
SerialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
Is expecting that there is a DataReceived event associated with the class defined by the SerialPort instance. The += is associating a method to call when that event occurs.
Hope this clarifies things.
www.insteptech.com ;
msmvps.com/blogs/deborahk
We are volunteers and ask only that if we are able to help you, that you mark our reply as your answer. THANKS!-
Marked as answer by
Harry Zhu
Tuesday, June 1, 2010 12:47 AM
-
Marked as answer by
-
Well as I said, in the code I see that you correctly populate comboBox2 and then ask for comboBox1.Text. Did you mean _serialPort.PortName = comboBox2.Text;?
As for the error perhaps another process is accesing the device, check it.
Hope this help
-
Marked as answer by
Harry Zhu
Tuesday, June 1, 2010 12:48 AM
-
Marked as answer by
-
-
Marked as answer by
Harry Zhu
Tuesday, June 1, 2010 12:48 AM
-
Marked as answer by
Форум программистов Vingrad
Модераторы: Poseidon, Snowy, bems, MetalFan
Страницы: (2) Все [1] 2 |
Поиск: |
|
A call to an OS function failed, Что за сообщение? |
Опции темы |
ilya198293 |
|
||||
Бывалый Профиль
Репутация: нет
|
В моём приложении несколько форм:
при закрытии формы 2 стоит обработчик событий:
без такого обработчика форма не закрывается, а просто становится невидимой. ——————— Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре. |
||||
|
|||||
ama_kid |
|
||||||||
АСУТП-кодер Профиль
Репутация: 15
|
Это значит, что у тебя идет неправильная работа с памятью… Я с такой проблемой не сталкивался, ибо таким варварским способом не освобождал форму, навскидку вижу проблему в том, что у тебя из обработчика формы непосредственно идет вызов деструктора. А ведь сказано в хелпе:
Как думаешь, для чего придуман параметр Action:TCloseAction? Если ты сделаешь
ты достигнешь того же самого результата, но вполне разрешенным способом… ——————— самурай без меча подобен самураю с мечом, но только без меча |
||||||||
|
|||||||||
MetalFan |
|
||
Аццкий Сотона Профиль
Репутация: 62
|
так же добавлю, что нельзя убивать форму методом Free в обработчиках событий, описанных в ней же… для этого необходимо использовать метод Release. Это сообщение отредактировал(а) MetalFan — 30.5.2007, 09:28 ——————— There are always someone smarter than you… |
||
|
|||
ilya198293 |
|
||
Бывалый Профиль
Репутация: нет
|
Теперь ещё несколько моментов, которые возможно помогут прояснить ситуацию. ——————— Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре. |
||
|
|||
ama_kid |
|
||||
АСУТП-кодер Профиль
Репутация: 15
|
какой ужас…
Лично для меня все еще более запуталось… Лучше бы код привел или тестовый проект выложил…
Пока система имеет возможность выделять тебе дополнительную память — все работает… Проверь утечки памяти хотя бы через диспетчер задач (а по хорошему — надо через модуль MemCheck)… P.S. Вообще, плохая практика в обработчике OnCreate одной формы создавать другую… Не будет ли правильнее создавать необходимую тебе Form8 перед созданием Form1? ——————— самурай без меча подобен самураю с мечом, но только без меча |
||||
|
|||||
Rennigth |
|
||
Эксперт Профиль
Репутация: 49
|
Ну так Action := caFree и вызывает в итоге Release.
——————— (* Honesta mors turpi vita potior *) |
||
|
|||
ilya198293 |
|
||
Бывалый Профиль
Репутация: нет
|
Попробовал найти ошибки в программе просто создав новый проект и постепенно перенося процедуры из старого проекта…так столько ошибок повылезало…причём не могу понять как они в старом проекте проходили…например брал дату и конвертировал в строку в формате ‘dd/mm/yy’. потом при раскладке считывал символы 1+2,4+5,7+8+9+10 и он считывал. в новом проекте даёт ошибку, причём логичную ошибку…ещё в нескольких местах такая же ерунда…когда считывалось из стринга больше символов чем там есть вообще…так что там нужно весь проект пересматривать… ——————— Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре. |
||
|
|||
ilya198293 |
|
||||
Бывалый Профиль
Репутация: нет
|
Сейчас просто эксперементировал с двумя формами и получил такие результаты:
Forma2
Ошибка появляется когда вводится проверка try в форме1. ——————— Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре. |
||||
|
|||||
ama_kid |
|
||||
АСУТП-кодер Профиль
Репутация: 15
|
Мысли проще:
Естессно, вторую форму желательно убрать из списка автосоздаваемых… ——————— самурай без меча подобен самураю с мечом, но только без меча |
||||
|
|||||
ilya198293 |
|
||
Бывалый Профиль
Репутация: нет
|
Форма 2 из автосоздания убрана была.
то второй раз нажать на кнопку на форме 1 не предоставляется возможным до тех пор пока она не закрыта…в этом случае try можно и не ставить, просто написать Action:=caFree; и всё. ——————— Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре. |
||
|
|||
MetalFan |
|
||
Аццкий Сотона Профиль
Репутация: 62
|
руцки бы паатрыфалл за такое…. ——————— There are always someone smarter than you… |
||
|
|||
ama_kid |
|
||
АСУТП-кодер Профиль
Репутация: 15
|
MetalFan
Выстави просто флаг какой-нибудь при создании второй формы и сбрасывай при закрытии, а перед созданием — проверяй его. Или юзай мьютексы… ——————— самурай без меча подобен самураю с мечом, но только без меча |
||
|
|||
ilya198293 |
|
||
Бывалый Профиль
Репутация: нет
|
О-о-о-о-о-о-о-о, а флаг это идея…как я сам не догадался…тармажу…спасибо ——————— Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре. |
||
|
|||
aktuba |
|
||||
Смышленный Профиль
Репутация: 16
|
ЖЭСТЬ!!! Куда мир катиться… ——————— |
||||
|
|||||
MetalFan |
|
||
Аццкий Сотона Профиль
Репутация: 62
|
ama_kid, зачем доводить до того, что может возникнуть исключение? да еще и скорее всего AV. если можно обойтись, как ты сам и сказал, проверкой и установкой флага… ——————— There are always someone smarter than you… |
||
|
|||
Страницы: (2) Все [1] 2 |
|
Правила форума «Delphi: Общие вопросы» | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
When I acces Form controls within BackgroundWorker
DoWork
event, it reads values from DatePicker but not from TextBox or ComboBox
Error:
Cross-thread operation not valid: Control 'cmbProgram' accessed from a thread other than the thread it was created on.
Code :
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
string strDate = dtpDate.Value.ToString();
string strProgram = cmbProgram.Text;
}
How does it read values from DataPicker (in a different thread)?
Is there any workaround to access Form Controls from BackgroundWorker
DoWork
Event?
asked May 4, 2012 at 9:42
Use:
Dispatcher.Invoke(new Action(() =>
{
string strDate = dtpDate.Value.ToString();
string strProgram = cmbProgram.Text;
}));
answered May 4, 2012 at 9:53
jrbjrb
1,7082 gold badges13 silver badges20 bronze badges
You cannot access a control from a different thred.
The usual way of getting around that problem is to read the current value from the UI thread, and then pass the value to the second thread (or BackgroundWorker).
You can disable the check by setting CheckForIllegalCrossThreadCalls on the control class to false, but be advised you don’t want to do this.
answered May 4, 2012 at 9:49
Martin MoserMartin Moser
6,1591 gold badge26 silver badges39 bronze badges
You can pass it as an argument. For example:
backgroundworker1.RunWorkerAsync(comboBox1.SelectedItem.ToString());
And grab the contents in the doWork
with
string Item = e.Argument.ToString();
answered May 4, 2012 at 9:53
DevatorDevator
3,5384 gold badges32 silver badges52 bronze badges
kacagevici Пользователь Сообщений: 70 |
Уважаемые гуру при нажатии клавиш del,backspace,escape(чтобы очистить форму) combo box активен выдает ошибку следующего типа: Вот код из user form: Option Explicit почему не получается очистить форму ? |
The_Prist Пользователь Сообщений: 13997 Профессиональная разработка приложений для MS Office |
На этой строке? Может потому, что при пустом значении ListIndex = -1 и это стоит отслеживать? Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
kacagevici Пользователь Сообщений: 70 |
да на строке |
The_Prist Пользователь Сообщений: 13997 Профессиональная разработка приложений для MS Office |
{quote}{login=kacagevici}{date=07.10.2010 03:27}{thema=}{post}да на строке Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
kacagevici Пользователь Сообщений: 70 |
{quote}{login=The_Prist}{date=07.10.2010 03:29}{thema=Re: }{post}{quote}{login=kacagevici}{date=07.10.2010 03:27}{thema=}{post}да на строке Option Explicit -1 я поставил а остальное подскажи пожалуйста в какую строку ). |
The_Prist Пользователь Сообщений: 13997 Профессиональная разработка приложений для MS Office |
Вот же блин…не так Вы все поняли. На фиг не надо -1. Private Sub Combobox1_Change() Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
kacagevici Пользователь Сообщений: 70 |
{quote}{login=The_Prist}{date=07.10.2010 03:42}{thema=}{post}Вот же блин…не так Вы все поняли. На фиг не надо -1. Private Sub Combobox1_Change() |
ZVI Пользователь Сообщений: 4328 |
Попробуйте такой вариант для ComboBox1_Change: Private Sub ComboBox1_Change() |
kacagevici Пользователь Сообщений: 70 |
#9 08.10.2010 10:02:41 {quote}{login=ZVI}{date=08.10.2010 05:17}{thema=}{post}Попробуйте такой вариант для ComboBox1_Change: Private Sub ComboBox1_Change() то что надо! спасибо огромное! |
SCR проблемы файла ComboBox1b.scr в большинстве случаев связаны с повреждением, отсутствием или заражением файлов Code Warrior. В большинстве случаев скачивание и замена файла SCR позволяет решить проблему. В некоторых случаях реестр Windows пытается загрузить файл ComboBox1b.scr, который больше не существует; в таких ситуациях рекомендуется запустить сканирование реестра, чтобы исправить любые недопустимые ссылки на пути к файлам.
Если вам нужно заменить файл ComboBox1b.scr, вы можете найти версию %%os%% в нашей базе данных, перечисленной в таблице ниже. К сожалению, в настоящее время в нашей базе могут отсутствовать некоторые версии файлов ComboBox1b.scr, но их можно запросить, нажав на кнопку Request (Запрос). В редких случаях, если вы не можете найти версию необходимого вам файла ниже, мы рекомендуем вам обратиться за дополнительной помощью к Metrowerks.
Как правило, ошибки подобного типа больше не возникают после размещения надлежащей версии файла ComboBox1b.scr в соответствующем месте, однако вам следует выполнить проверку ещё раз. Повторно запустите Code Warrior, чтобы убедиться в успешном решении проблемы.
ComboBox1b.scr Описание файла | |
---|---|
Тип: | SCR |
Категория: | Programming |
App: | Code Warrior |
Версия: | 6.0 |
Разработчик: | Metrowerks |
Имя файла: | ComboBox1b.scr |
Размер: | 2873 |
SHA-1: | db5ee490e9fc1a652f7c5f9f65b355a2c559957f |
MD5: | ef55bd7b792b1d954275d1415113002c |
CRC32: | aa166c4b |
Продукт Solvusoft
Загрузка
WinThruster 2023 — Сканировать ваш компьютер на наличие ошибок реестра в ComboBox1b.scr
Windows
11/10/8/7/Vista/XP
Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление
SCR
ComboBox1b.scr
Идентификатор статьи: 449021
ComboBox1b.scr
Имя файла | ID | Размер файла | Загрузить | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | 524e4c03f736d89df48081d7e2c08c4e | 2.00 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | 524e4c03f736d89df48081d7e2c08c4e | 2.00 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | 524e4c03f736d89df48081d7e2c08c4e | 2.00 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | 524e4c03f736d89df48081d7e2c08c4e | 2.00 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | 524e4c03f736d89df48081d7e2c08c4e | 2.00 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | 524e4c03f736d89df48081d7e2c08c4e | 2.00 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | 524e4c03f736d89df48081d7e2c08c4e | 2.00 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | 524e4c03f736d89df48081d7e2c08c4e | 2.00 KB | ||||||||||||||||
|
||||||||||||||||||
+ ComboBox1b.scr | ef55bd7b792b1d954275d1415113002c | 2.81 KB | ||||||||||||||||
|
Ошибки ComboBox1b.scr
Частичный список ошибок ComboBox1b.scr Code Warrior:
- «Ошибка в файле ComboBox1b.scr.»
- «Отсутствует файл ComboBox1b.scr.»
- «Не удалось найти ComboBox1b.scr. «
- «Не удалось загрузить модуль для ComboBox1b.scr. «
- «Не удалось зарегистрироваться: ComboBox1b.scr. «
- «Ошибка времени выполнения Code Warrior: ComboBox1b.scr»
- «Файл ComboBox1b.scr не может быть загружен. «
DEBUG NO TRANSLATION Важно отметить ошибки с ComboBox1b.scr по мере их возникновения, так как это помогает устранять проблемы, связанные с Code Warriors, и сообщать о них в Metrowerks.
ComboBox1b.scr Истоки проблем
Заражение вредоносными программами, недопустимые записи реестра Code Warrior или отсутствующие или поврежденные файлы ComboBox1b.scr могут создать эти ошибки ComboBox1b.scr.
В основном, осложнения ComboBox1b.scr из-за:
- Недопустимая (поврежденная) запись реестра ComboBox1b.scr.
- Вирус или вредоносное ПО поврежден ComboBox1b.scr.
- Другая программа злонамеренно или по ошибке удалила файлы, связанные с ComboBox1b.scr.
- ComboBox1b.scr конфликтует с другой программой (общим файлом).
- Неполный или поврежденный ComboBox1b.scr из ошибочной загрузки или установки.