Jump to content

m_pell_98037

Members
  • Content Count

    4
  • Joined

  • Last visited

Posts posted by m_pell_98037


  1. Help from the community was indispensable.  I didn't just read posts, I tried them. Which got me down the path.

    You know I just have to replace broken code with something that works perfectly.

     

     

    procedure TDialogs3Form.Image52Click(Sender: TObject);
    var
      B: TBitmap;
      i: Integer;
    begin
      i := 0;
      Current_Card := Image52.Tag;                    // Tag number provides index number into btn array below to get card name.
      Tries := StrToInt(Clicks.Text) + 1;            // Keep score
      Clicks.Text := IntToStr(tries);
      B := TBitMap.Create;
        Imagelist1.GetBitmap(Current_Card, B);
        Image52.Picture.Bitmap.Assign(B);
      B.Free;

      inc(Card_Selected);

      if (Card_Selected = 1) then
         begin
            First_Card_Tag :=  Current_Card;
            Card1_Selected_Name := Btn[Current_Card].Text ;
            nr := (Sender as TImage).Name; // nr : string;
            First_Card_Image := (Dialogs3Form.Findcomponent(nr) as TImage);  // Saving the 1st of two Image clicks.
            Label53.Caption := 'Pick Another Card';
         end
       else if Card_Selected = 2 then
          begin
               Card2_Selected_Name := Btn[Current_Card].Text ;
               Label53.Caption := '2nd Card';
               ShowTime; //=ShowMessage                                                                                                                                       // Call this Dialog procedure to break out of Image10Click procedure, so card face displays.
          end;                                                                                                                                                                                    //(otherwise 2nd card face won't display at all), and you can look at the pair of cards as long Message dialog is up.

        if Card_Selected = 2 then
        if Card1_Selected_Name = Card2_Selected_Name then
          begin
                 Label53.Caption := ' Match';                  // Msg to player
                 Image52.Visible := False;                     // Make 2nd Card invisble
                 First_Card_Image.Visible := False;            // Make 1st Card invisble
                 Card_Selected := 0;
          end;
           if Card_Selected = 2 then
           if Card1_Selected_Name <> Card2_Selected_Name then
          begin
               Label53.Caption := 'Select 1st Card';          // Msg to player
                 B := TBitMap.Create;
                 Imagelist1.GetBitmap(0, B);                  // Display card backside
                 Image52.Picture.Bitmap.Assign(B);
                 Imagelist1.GetBitmap(0, B);                  // Display card backside
                 First_Card_Image.Picture.Bitmap.Assign(B);
                 B.Free;
               Card_Selected := 0;
          end;
    end;
     

     

    Thanks again for the community help


  2. I concur.  Just thought I'd throw it out there.

    Sounds like you've tried this, so I saved your post (as well as others) in project folder.

    I'll glean something from it later, if you don't mind and its there so i did.

    Thanks again

    Michael Pell  -> Knowledge is to be shared. imho


  3. It is going to be Solitaire Concentration game.

    The Try Finally compiled as did K's   end else if then begin, suggestion.

    I'm ready to start stepping into program.  Drat!

     

    I usually start out the long hard way to get something running and then refine.

    Sometimes I get bit when chunks are to big. Still knocking out cobb webs since Delphi 2.

     

    I sure appreciate the help.  At least now things compile.

     

    I thought there was a way to bundle a whole project for export.  Did that go away.

    Might be easier if you see whole ball of wax.

     

    Thanks

    Michael Pell


  4. Compiles, but program has bugs.  I'm sure it's the if's.  Perhaps I should use subs.  HLP Please.

     

    procedure TDialogs3Form.Image52Click(Sender: TObject);
    var
      B: TBitmap;
      i: Integer;
    begin
      i := 0;
      Current_Card := Image52.Tag;                    // Tag number provides index number into btn array below to get card name.
      Tries := StrToInt(Clicks.Text) + 1;            // Keep score
      Clicks.Text := IntToStr(tries);
      B := TBitMap.Create;
      Imagelist1.GetBitmap(Current_Card, B);
      Image52.Picture.Bitmap.Assign(B);
      B.Free;

      inc(Card_Selected);

      if (Card_Selected = 1) then
          First_Card_Tag :=  Current_Card;
          First_Card_Image := TImage(Components);
          Card1_Selected_Name := Btn[Current_Card].Text ;
          Edit4.Text := Card1_Selected_Name;
          Label53.Caption := 'Pick Another Card';

        if Card_Selected = 2 then
               Card2_Selected_Name := Btn[Current_Card].Text ;
               Edit4.Text := Card1_Selected_Name;
               Edit1.Text := Card2_Selected_Name;
               Sleep( 5000 );
               Card_Selected := 0;

         if Card1_Selected_Name = Card2_Selected_Name then
                 Edit4.Text := '';
                 Edit1.Text := '';
                 Label53.Caption := ' Match';
                 Image52.Visible := False;                     // Make 2nd Card invisble
                 First_Card_Image.Visible := False;           // Make 1st Card invisble

           if Card1_Selected_Name <> Card2_Selected_Name then
               Edit4.Text := '';
               Edit1.Text := '';
               Label53.Caption := 'Select 1st Card';
                 B := TBitMap.Create;
                 Imagelist1.GetBitmap(0, B);                  // Card back
                 Image52.Picture.Bitmap.Assign(B);
                 B := TBitMap.Create;
                 Imagelist1.GetBitmap(0, B);                  // Card back
                 First_Card_Image.Picture.Bitmap.Assign(B);
                 B.Free;
    end;
     

×