Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2013, 17:09   #11
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Создаю подключение и Qery в потоке но поток зависает и при переходе с одной вкладки на другую считывание останавливается.
Код:
procedure TClientThread.Execute;
begin
  inherited;
  with MainForm do
  begin
TCPClient[z] :=TIdTCPClient.Create(Mainform);
TCPClient[z].Host :=labelIP0.Caption;
TCPClient[z].Port := StrToInt(LabelPort0.caption);
TCPClient[z].Connect(5000);
Memo0.Enabled := True; Memo0.Color := clWindow;
MainForm.AddLogWrite('Connect ...... ');
MainForm.RzGlyphStatus4.ImageIndex:=3;
Led0.Brush.Color := clBlue;
ZQ[z]:=tZQuery.Create(MainForm);
    if not TCPClient[z].Connected then
       exit;
    repeat
      cmd.text:= TCPClient[z].ReadLn();
      if trim(cmd.text) <> '' then
      begin
        if VerificaComando(cmd.text,'msg=',true) then
           Synchronize(ShowReceiveMsg)
        else if VerificaComando(cmd.text,'server_error=',true) then
          Synchronize(ShowServerError)
        else Synchronize(UnknowCmd);
      end;
    until not IdTCPClient1.Connected;
  end;
  if not Terminated then
     Terminate;
end;
procedure TMainForm.UnknowCmd;
var str: String;
  S, S1,d1: String;
  s3:real;
  a,b:integer;
  i1,i2: Integer;
  r,m : double;
  i:integer;
  JpegIm: TJpegImage;
  bm: TBitMap;
  d3,d2: TDateTime;
  begin
  try
     repeat
     str:=cmd.text;
if str<>'' then
begin
   Memo0.Lines.Add(cmd.text);
   s1:=only_numbers(str);
   s1:=StringReplace(s1, '.',',' , [rfReplaceAll]);
 i1:=Pos(',',s1);
  if i1>0 then begin
    i2:=PosEx(',',s1,i1+1);
    if i2>0 then s1:=Copy(s1,1,i2-1)+Copy(s1,i2+1,Length(s1)-i2);
  end;
  r:=RoundTo(StrToFloatDef(s1,0),-2);
   Edit0.Text:=Floattostr(r);
if (r > 0) AND (r <> last_massa) then
  begin
 edtNotes0.Text:=edtNotes0.Text+Edit0.Text +#9+TimeToStr(now) +#13#10;
  if strtofloat(Edit0.Text)>strtofloat(OptionForm.RzEdit4.Text) then
     begin
ZQ[z].SQL.Clear;
zQ[z].SQL.Add ('INSERT INTO base (Date_posting, Time_posting, num, Massa, Name, Image, Com, BaudRate, Organization, Location, IP, Note, Model, Equopment, Linkey, Stable_weight, Image_kamera)'
+' Values (:date1, :date2, 1, :massa, :name,''image'', :port, :BaudRate, :Organization, :Location, :Ip, :Note, :Model, :Equopment, :Linkey, 0, :adress)');
d3:=Trunc(Date);
d2:=frac(time);
zQ[z].Params.ParamByName('date1').Value:=d3;
zQ[z].Params.ParamByName('date2').Value:=d2;
zQ[z].Params.ParamByName('massa').Value:=Edit0.Text;
zQ[z].Params.ParamByName('name').Value:=labelModel0.Caption+' '+LabelEquopment0.Caption;
zQ[z].Params.ParamByName('port').Value:=labelPort0.Caption;
zQ[z].Params.ParamByName('BaudRate').Value:=LabelBaudRate0.Caption;
zQ[z].Params.ParamByName('Organization').Value:=LabelOrganization0.Caption;
zQ[z].Params.ParamByName('Location').Value:=LabelLocation0.Caption;
zQ[z].Params.ParamByName('Ip').Value:=LabelIp0.Caption;
zQ[z].Params.ParamByName('Note').Value:=labelNote0.Caption;
zQ[z].Params.ParamByName('Model').Value:=labelModel0.Caption;
zQ[z].Params.ParamByName('Equopment').Value:=labelEquopment0.Caption;
zQ[z].Params.ParamByName('Linkey').Value:=labelLinkey0.Caption;
zQ[z].Params.ParamByName('adress').Value:=OptionForm.DirectoryEdit1.Text+'\NO.jpg';
zQ[z].ExecSQL;
  last_massa := r;
 end;
  end;
  end;
   if Optionform.RzEdit1.Text<>'' then
 begin
 a:=memo0.Lines.Count;
  if a>Strtoint(Optionform.RzEdit1.Text) then
 memo0.Clear;
 end;
if Optionform.RzEdit2.Text<>'' then
 begin
 b:=edtNotes0.Lines.Count;
  if b>Strtoint(Optionform.RzEdit2.Text) then
edtNotes0.Clear;
 end;
   until str='';
  except
       on E:Exception do begin
       ShowMessage(E.Message);
       end;
end;

procedure TMainForm.Button3Click(Sender: TObject);
var
ClientThread:TClientThread;
begin
if Led0.Brush.Color = clRed then
    begin
  ClientThread:=TClientThread.Create(true);
  ClientThread.FreeOnTerminate:=true;
  ClientThread.Priority:=tpLower;
  ClientThread.Resume;
  Led0.Brush.Color := clBlue;
    end
  else if Led0.Brush.Color = clBlue then ShowMessage('Процесс уже запущен!');
end;
Change вкладок
Код:
 z:= ListePostes.TabIndex + 1;
 Led0 := TShape(FindComponent('Led'+IntToStr(z)));
 Edit0 := TEdit(FindComponent('Edit'+IntToStr(z)));
 Memo0 := TMemo(FindComponent('Memo'+IntToStr(z)));
 edtNotes0 := TRzRichEdit(FindComponent('edtNotes'+IntToStr(z)));
 LabelIP0 := TLabel(FindComponent('LabelIP'+IntToStr(z)));
 LabelPort0 := TLabel(FindComponent('LabelPort'+IntToStr(z)));
 LabelBaudRate0 := TLabel(FindComponent('LabelBaudRate'+IntToStr(z)));
 LabelLocation0 := TLabel(FindComponent('LabelLocation'+IntToStr(z)));
 LabelNote0 := TLabel(FindComponent('LabelNote'+IntToStr(z)));
 LabelModel0 := TLabel(FindComponent('LabelModel'+IntToStr(z)));
 LabelEquopment0 := TLabel(FindComponent('LabelEquopment'+IntToStr(z)));
 LabelOrganization0 := TLabel(FindComponent('LabelOrganization'+IntToStr(z)));
    LabelLinkey0 := TLabel(FindComponent('LabelLinkey'+IntToStr(z)));
Изображения
Тип файла: jpg форма.jpg (90.7 Кб, 122 просмотров)
Aleksandr вне форума Ответить с цитированием
Старый 13.11.2013, 17:15   #12
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

вам же сказали vcl в потоке - низя, а вы напихали его под завязку, и удивляетесь почему не работает как надо
eval вне форума Ответить с цитированием
Старый 13.11.2013, 17:32   #13
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а еще интересно код про "Change вкладок" он зачем вообще?
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в базу данных elena111 ASP.NET 7 10.05.2013 09:56
php внесение в базу данных mysql solution PHP 17 27.07.2011 14:01
Как загрузить в базу данных MySQL таблицу ? pufystyj PHP 4 19.02.2011 20:18
Запись из файла txt или mdb в базу данных DerSky БД в Delphi 6 09.06.2008 12:50
как выгрузить базу данных из MySQL в Access??? TRANE Помощь студентам 5 03.12.2007 13:22