Új hozzászólás Aktív témák

  • Tomi_78

    aktív tag

    válasz vz12 #2156 üzenetére

    Egyébként nekem így néz ki nagyvonalakban az ezt kezelő kódrendszer:

    procedure TForm1.atmenukatt(Sender: TObject);
    varablak: TLabeledEdit;
    begin
              case TMenuItem(Sender).tag of
                   0: begin
                    (...)
                   end;
                   1: begin
                    (...)
                   end;
                   2: begin
                      ablak:=TLabeledEdit.Create(Form1);
                      ablak.Parent:=Form1;
                      ablak.NumbersOnly:=true;
                      case nyelv of
                       0: ablak.EditLabel.Caption:='Egy 2-65535 közötti szám.';
                       1: ablak.EditLabel.Caption:='A number between 2-65535.';
                      end;
                      ablak.Text:='';
                      ablak.Left:=width div 2;
                      ablak.Top:=height div 2;
                      ablak.OnKeyDown:=@menuszamadas;
                      aktkxhely:=khelyx div tvcsempeszel;
                      aktkyhely:=khelyy div tvcsempemag;
                 end;
            end;
    end;

    procedure TForm1.menuszamadas(Sender: TObject; var Key: word; Shift: TShiftState);
    begin
         if (Key=VK_RETURN) and ((Sender as TLabeledEdit).Text<>'') and (strtoint((Sender as TLabeledEdit).Text)>=2) and (strtoint((Sender as TLabeledEdit).Text)<=65535) then
         begin
            (...)
              //Itt kéne megsemmisíteni is az Ablak-ot, pl. FreeAndNil(Sender);
         end;
    end;

    procedure TForm1.tvracsegerkatt(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var iderakdx,iderakdy: word;
      atmenu: TPopupMenu;
      atmenupont0,atmenupont1,atmenupont2: TMenuItem;
    begin
      if Button=mbLeft then
      begin
       (...)
      end
    else //Jobb kattintásra létrejön a helyi menü:
      begin
           atmenu:=TPopUpMenu.Create(tvracskep);
           atmenupont0:=TMenuItem.Create(atmenu);
           case nyelv of
           0: atmenupont0.Caption:='0 (Üres)';
           1: atmenupont0.Caption:='0 (Empty)';
           end;
           atmenupont0.tag:=0;
           atmenupont0.OnClick:=@atmenukatt;
           atmenu.items.Add(atmenupont0);
           atmenupont1:=TMenuItem.Create(atmenu);
           case nyelv of
           0: atmenupont1.Caption:='1 (Akadály)';
           1: atmenupont1.Caption:='1 (Obstacle)';
           end;
           atmenupont1.tag:=1;
           atmenupont1.OnClick:=@atmenukatt;
           atmenu.items.Add(atmenupont1);
           atmenupont2:=TMenuItem.Create(atmenu);
           case nyelv of
           0: atmenupont2.Caption:='Egyéb érték';
           1: atmenupont2.Caption:='Other value';
           end;
           atmenupont2.tag:=2;
           atmenupont2.OnClick:=@atmenukatt;
           atmenu.items.Add(atmenupont2);
           atmenu.PopUp(ScreenToClient(mouse.cursorpos).X,ScreenToClient(mouse.cursorpos).Y);
      end;
    end;

Új hozzászólás Aktív témák