oh my god, the 7th gym leader is just a royal pain. but, if your starter is Torchic, or if it's now a blaziken, here's what i would do.Beat the winstrate family and get that item they give you. then give that to Blaxiken/combusken. If you have a water pokemon, make sure it has a good special defense for moves like solarbeam. my suggestions are wailmer ( or train to a wailord; lv,40) or a sharpedo, since it's dual water/dark type makes for a good matchup. The biggest pain of all is the claydol, and it's petty earthquake, so another goood suggestion is Pelliper, although that does give it a weakness to Solrocks' rock slide.
Anywhoo, try buying a Blizzard TM from lilycove dept.store, since it's effective against Claydol's Ground type, and Zatu's flying type part. Also, try getting a pokemon with a sleeping move, since if you manage to get them both to sleep, then here's a chance to give some X specials to your team, to make blizzard stronger. Ice beam might do, since Claydol often dodges attacks. But only use Blaziken/combusken as rarely as you can, and only if neccesary, sine both of it's types are 4X weakness to ALL of their pokemon, but it's fighting type is also effective to Solrock and Lunatone's part 'rock' type.
This is getting long and boring, but it's absolutely necessary. When i first got it, and i couldn't beat them, i felt like physicly biting my gameboy advance (SP), but i've managed to work through it now.(barely).
If you have a pokemon with hypnosis, my suggestions a ghost type pokemon since that's good against Psychic, then just keep X special-ing your team,a nd use blizzard to get past claydol and Xatu. In my opinion, they're the biggest pain in this challenge.
Water pokemon are good against Solrocks and Lunatone's part rock types, but watch out for Solrocks solarbeam attack. And lunatone has high special/defence, so moves like 'surf' won't do as much. And Lunatone knows hypnosis which really starts to get annoying. Your tropius might need a few special defense boosters to resist solrocks flamthrower, but it's part grass type might be somewhat helpful, to whatever extent.
As for magneton, i'm not sure if it can learn any HP damaging attacks that are steel type, since flash cannon isn't in this game, but it's steel type could be at least almost a resistence point against there rock types. Although, is you do use it to defeat Xatu, then if it has the levitate ability instead of the magnet pull, then Claydol's earthquake won't do a thing
that's all the advice i can give until i know the rest of your team. here's my suggested team, judging by the three pokemon i know you have.
Blaziken lv.40+
blaze kick
brick break
bulk up
fire blast
Tropius lv.38+ ( try training against the water trainers and in shoal cave)
razor leaf
fly
stomp
giga drain
Magneton lv.36+
Thunder bolt
sonicboom
metal sound
thunderwave
Dusklops ( i think that's how you spell it!) lv.38+
will'o'wisp
hypnosis
shadow punch
blizzard/ice beam
Wailord(lv.40 minimum or a wailord)/Sharpedo lv.38+
Surf
blizzard
Dive/Crunch(sharpedo)
ice beam/blizzard
Ninjask lv.36+
Shadow ball
Hypnosis
False swipe
Stun spore
That's my suggested team, unless you've already defeated them then good for you. if not, then this is the right way to steer the winning wagon. However, if you have a different starter, then i suggest the following.
Swampert lv.40+
Surf
earthquake (won't be much good in this vattle, but don't let it forget this move!)
Blizzard/ice beam
muddy water
or
Sceptile lv.40+
Leaf blade
solar beam ( Lunatone/solrock are rock types partly, so this will do good! but watch out for Xatu's flying type and solrocks flamethower if you do have sceptile)
Fasle swipe
Giga drain ( so if you need health, you won't use as many valuable potions)
Having said this, these are onyl suggestions, and i'm no expert, but this gym i have tried and failed enough times to become very knowing in how to beat them. =D good luck!