Q&A

  • 문자을 변수로 연산
edit1.text:='1';
edit2.text:='2';

edit3.text:='edit1.text+edit2.text';

edit4.text:=edit3.text;

이렇게하면 당연히 edit4.text에는 edit1.text+edit2.text가 찍히겠죠..

제가 원하는건 3이 찍히는건데...

어떻하면 될까여??부탁드리겠습니다.....
4  COMMENTS
  • Profile
    주웰 2005.06.29 00:00
    procedure TForm1.Button1Click(Sender: TObject);
    var
      FirstStr: string;
      SecondStr: string;
      tmpPos: integer;
      SourceStr: string;
    begin
      SourceStr := StringReplace((Edit3.Text), ' ', '', [rfReplaceAll]);
      tmpPos := Pos('+', SourceStr);
      if tmpPos <= 0 then exit;
      FirstStr := SearchFirstStr(tmpPos, SourceStr);
      SecondStr := SearchSecondStr(tmpPos, SourceStr);

      Edit4.Text := IntToStr(StrToInt(TEdit(FindComponent(FirstStr)).Text)
                  + StrToInt(TEdit(FindComponent(SecondStr)).Text));
    end;

    function TForm1.SearchFirstStr(AtmpPos: integer; ASourceStr: string): string;
    begin
      result := StringReplace(Copy(ASourceStr, 1, AtmpPos -1), '.Text', '', [rfReplaceAll]);
    end;

    function TForm1.SearchSecondStr(AtmpPos: integer; ASourceStr: string): string;
    begin
      result := StringReplace(Copy(ASourceStr, AtmpPos + 1, Length(ASourceStr)
                - (AtmpPos -1)), '.Text', '', [rfReplaceAll]);
    end;


  • Profile
    서영택 2005.06.28 20:05
    edit3.text:=IntToStr(StrToInt(edit1.text)+StrToInt(edit2.text));

  • Profile
    장유경 2005.06.28 20:32
    제가 질문을 잘못한거 같네여...
    그런답을 원한게 아니라
    edit3 box에 edit1.text+edit2.text라고 쳤을때 edit4에 값을 보여주길 원하는건데여...

    다시한번 답 부탁드립니다..

  • Profile
    서영택 2005.06.28 21:13
    소스가 무식하지만 답변이 맞는지 모르겠네요

    procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
    var
      i, j, v_Start, v_End : Integer;
      v_Str : String;
      v_Return : Integer;
    begin
      if Key = #13 then
      begin
        Key := #0;

        v_Str := StringReplace(UpperCase(Edit3.Text),'.TEXT','',[rfReplaceAll]);

        v_Return := 0;
        v_Start := 1;
        v_End   := 0;

        for j := 1 to Length(v_Str) do
        begin
          if Copy(v_Str,j,1) = '+' then
          begin
            for i := 0 to self.ComponentCount - 1 do
            begin
              if UpperCase(self.Components[i].Name) = Copy(v_Str,v_Start,v_End) then
              begin
                v_Return := v_Return + StrtoInt(TEdit(self.Components[i]).Text);
                v_Start := v_Start + v_End + 1;
                v_End   := 0;
                Break;
              end;
            end;
          end
          else
            Inc(v_End);
        end;

        for i := 0 to self.ComponentCount - 1 do
        begin
          if UpperCase(self.Components[i].Name) = Copy(v_Str,v_Start,v_End) then
          begin
            v_Return := v_Return + StrtoInt(TEdit(self.Components[i]).Text);
            Break;
          end;
        end;

        Edit4.Text := IntToStr(v_Return);
      end;
    end;

    • 송인화
    • 2005.06.29 03:41
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 천희택
      2005.07.02 08:20
      <!--CodeS--> procedure TForm1.RichEdit2KeyDown(Sender: TObject; var Key: Word;   S...
    • 무심코
      2005.06.29 05:32
      별 도움이 안되는 답변이지만... 저도 예전이 이런 문제에 봉착해서 고생을 했는데 결국 외부 컴포넌트(R...
    • 실크맨
      2005.06.30 23:37
      델파이 IDE의 메뉴중 Component -> Install Package 에서 "Borland Intergrated Translation Environme...
    • 이현진
    • 2005.06.29 01:00
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.06.29 04:29
      제가 질문을 잘못 이해 한건지는 몰라도.. WndMethod1 := Panel1.WindowProc; Panel1.WindowProc := ...
    • 이현진
      2005.06.29 23:27
      저도 그러면 될줄 알았는데 그럴경우 panel2 없어져 버리네요. 후킹때문에 충돌이 나는것 같기도 한데.....
    • 모영철
      2005.06.30 01:54
      저는 아래 처럼 했는데요. 원하시는게 이것이 맞는지.. unit Unit1; interface uses  ...
    • 최지훈
    • 2005.06.29 00:41
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김병윤
      2005.06.29 01:03
      <!--CodeS--> var   li_CNT: Integer; begin   li_CNT := 1;  &n...
    • 권태훈
      2005.06.29 07:25
      if  li_CNT IN[1..5] then 1에서 5까지 참 문자도 됩니다. 섞어 쓰기도됩니다. [1..5, 7.....
    • 복숭아
    • 2005.06.28 22:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.06.29 04:38
      7.0하고 5.0 거의 차이가 없을듯 싶은데요.. 5.0으로 되있는 소스를 7.0에서 컴파일하시려면 약간 수정...
    • 이종민
    • 2005.06.28 20:46
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 장유경
    • 2005.06.28 19:41
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 주웰
      2005.06.29 00:00
      procedure TForm1.Button1Click(Sender: TObject); var   FirstStr: string;   Sec...
    • 서영택
      2005.06.28 20:05
      edit3.text:=IntToStr(StrToInt(edit1.text)+StrToInt(edit2.text));
    • 장유경
      2005.06.28 20:32
      제가 질문을 잘못한거 같네여... 그런답을 원한게 아니라 edit3 box에 edit1.text+edit2.text라고 쳤을...
    • 서영택
      2005.06.28 21:13
      소스가 무식하지만 답변이 맞는지 모르겠네요 procedure TForm1.Edit3KeyPress(Sender: TObject; var Ke...
    • 서영택
    • 2005.06.28 19:14
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박현식
    • 2005.06.28 02:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이규하
      2005.06.28 16:22
      Quickrep uninstall 하신다음에, %systemroot% 밑에 %system32% 에서 QRxxxx.bpl 을 삭제 하신다음에, 다시...
    • 노승현
    • 2005.06.28 02:21
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.06.28 18:18
      어제 제컴에서 해보니 (XP sp2 인데요..) 게시자를 확인할수 없어서 ActiveX를 차단했다? 라고 나왓나 ...
    • 노승현
      2005.06.28 19:27
      우선 답변 달아주신데 감사드립니다. 그 경우엔..보안설정에서 안정하지 않은 파일 및 서명안된 파일인 경...
    • 모영철
      2005.06.28 22:19
      그럼 레지스트리를 확인해보는건 어떨까요.. 한번 다운 받았던 곳이라면 \..............아니겠지만.......
    • 메니아
    • 2005.06.28 01:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.06.29 04:46
      그기능을 하려면 먼저 특정 문자만 색깔이 바뀌어야 할거 같네요.. 그리고 특정 위치에서 이벤트가 ...
    • 정희돈
      2005.06.27 22:29
      글쎄요 Access violation 에러의 경우 너무 많은 경우 발생한수 있어서 딱히 답을 드리기가 어렵습니다. ...
    • 델팡
    • 2005.06.27 18:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2005.06.28 00:20
      //hsr 검색해보시면 많아요 예로 "ListView에서 '열(col)'에 칼라를 주고싶어요" ListView의 속성 Ow...
    • 양은기
    • 2005.06.27 17:57
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 송인화
    • 2005.06.27 10:35
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 송인화
    • 2005.06.27 09:59
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 서기원
    • 2005.06.27 01:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2005.06.27 19:27
      var    Limit : double; begin    Limit := 2;    Limit := Limit * 10...
    • 노기웅
    • 2005.06.26 07:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김민식
      2005.06.26 22:20
      모뎀 관련 코딩한지 십여년이 넘어서 기억이 가물가물 하네요.. 간단히 기억나는걸 요약하면.. 먼...
    • 박기웅
    • 2005.06.26 00:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2005.06.27 18:29
      webbrowser나 javascript로 검색해 보세요.