|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2000
Città: Castelvetrano e Palermo
Messaggi: 209
|
[Builder C++] Strano comportamento di un loop!!!
Sto realizzando un applicazione con il Builder C++ ed ho notato un comportamento strato.
Ecco il codice in questione: while(recv_buff!=KEY_ESC){ ... err=recv(asock, &recv_buff, 1, 0); Memo1->Lines->Add(AnsiString(recv_buff)); send(asock, &recv_buff, 1, 0); ... } Le linee dell'oggetto Memo1 non vengono visualizzate man mano che vengono ricevute ma tutte assieme quando il ciclo si chiude mentre la funzione send fa in suo lavoro ad ogni ciclo!!! ![]() Mi sapreste dare una mano??? THX ![]() |
![]() |
![]() |
![]() |
#2 |
Utente sospeso
Iscritto dal: Oct 2002
Messaggi: 2156
|
l'argomento del while è una condizione logica quindi per fare il confronto non devi usare l'operatore di assegnazione = ma quello di confronto ==
prova e fammi sapere. ciao!! |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
|
Re: [Builder C++] Strano comportamento di un loop!!!
Quote:
__________________
---> Lombardp CSS Certified Expert (Master Level) at Experts-Exchange Proud user of LITHIUM forum : CPU technology Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Metti Application->ProcessMessages() subito dopo la scrittura sulla memo.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Re: [Builder C++] Strano comportamento di un loop!!!
Quote:
metti Memo1->Update(); |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Dec 2000
Città: Castelvetrano e Palermo
Messaggi: 209
|
Quote:
Adesso il mio caro server TELNET funziona perfettamente!!! Effettivamente non conoscevo questa funzione e devo dire che in certi casi risulta veramente utile infatti forza l'applicazione a processare gli eventi che per un motivo qualsiasi sono rimasti in query!!! ![]() |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Attento: è un'arma a doppio taglio, imparerai presto perché
![]() Se riesci a risolvere in qualche altro modo sarebbe consigliabile.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Dec 2000
Città: Castelvetrano e Palermo
Messaggi: 209
|
Ti riferisci ai casi in cui gli eventi in quere sono troppi??
PS: Non vorrei aprire un altro thread, potresti dirmi come faccio con il builder ad includere tutte le librerie necessarie nell'eseguibile per non avere alcun proplema di portabilità!!! THX |
![]() |
![]() |
![]() |
#9 | ||
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
![]() Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Quote:
infatti, negli esempi di BCB, si riesce a fare ciò che si vuole, anche ad interrompere il programma, senza che venga fatto uso della Application->ProcessMessages() ma non ci ho mai nasato più di tanto per capirne il funzionamento |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
ehi, isola81 prova questo e dimmi se ti funziona
ShellExecute(0, "print" , "mpagina.htm",NULL, NULL,SW_SHOW ); |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:45.