mIRC does have the channel topic and other information in the titlebar, but if that's not enough: the first thing that comes to my mind is DCX.dll and docking/statusbar. Statusbar would be the easier and probably better/more reliable option.

You can activate it/hide it by typing /SB, it will also automatically active on mIRC startup.
Code:
on *:start:sb

alias sb {
  if ($dcxdll) {
    set -e %sb.dcx $qt($v1)
    if ($dll(%sb.dcx,_xstatusbar,mIRC visible)) {
      dll %sb.dcx xstatusbar -A 0
      .timersb.refresh off
      unset %sb.dcx
    }
    else {
      dll %sb.dcx xstatusbar -A 1
      .timersb.refresh -io 0 1 sb.refresh
      dll %sb.dcx xstatusbar -l 2000
      sb.refresh
    }
  }
  else echo -a * DCX.DLL required.
}

alias -l sb.refresh dll %sb.dcx xstatusbar -v 1 $iif($active ischan,$v1 $+ : $iif($chan($active).topic,$v1,No topic.),$v1)

alias -l dcxdll {
  if ($dll(dcx.dll)) || ($findfile($mircdir,dcx.dll,1)) || ($findfile($nofile($mircexe),dcx.dll,1)) return $v1
  else return $sfile($mircdirdcx.dll,Locate dcx.dll,Select)
}

It would be quite easy to add more cells/columns/whatever to it, and icons and whatnot.

You will also need DCX.DLL, put it in the mIRC folder or wherever you can find it from. Not sure what the policy is about linking to other sites or file, but whatever: https://dl.dropboxusercontent.com/u/36794604/p/dcx.dll (That's the dcx.dll file I personally use.)

The official site for it doesn't seem to exist anymore, but the GitHub page seems to be up: https://github.com/twig/dcxdll (Although you'll have to compile it, if you get it from there.)

And as always: scan the file and never trust anyone.





EDIT:

Got bored and decided to see what could be done with OrFeAsGr's idea, and here's the result.

The button picture size is limited to 256x256, so you won't be seeing much of the topic, but it works without DLLs.
Code:
on *:start:tbtopic

alias tbtopic {
  unset %tb.*
  if ($toolbar(tb.topic)) {
    window -c @tb.topic
    toolbar -d tb.topic
    .timertb.topic off
  }
  else {
    window -hfp @tb.topic -1 -1 256 16
    set -e %tb.pos 0
    set -eu2 %tb.pause 1
    toolbar -a tb.topic "Channel topic" @tb.topic 0 0 256 16 /channel
    .timertb.topic -iom 0 20 tupdate
  }
}

alias -l tupdate {
  if (%tb.active != $active) { set -e %tb.active $v2 | set -e %tb.pos 0 | set -eu2 %tb.pause 1 }
  var %t = $iif(%tb.active ischan,$iif($chan($active).topic,$v1,No topic.),$v1)
  drawrect -fn @tb.topic $color(background) 1 0 0 256 16
  if ($width(%t,Tahoma,-9,0,1) > 256) {
    if (%tb.pos >= $calc(48+$v1)) { set -e %tb.pos 0 | set -eu2 %tb.pause 1 }
    drawtext -np @tb.topic $color(topic) Tahoma -9 - $+ %tb.pos 0 %t $str($chr(160),10) %t
    if (!%tb.pause) inc -e %tb.pos
  }
  else drawtext -np @tb.topic $color(topic) Tahoma -9 - $+ %tb.pos 0 %t
  toolbar -p tb.topic @tb.topic 0 0 256 16
}

By default it updates the picture once every 25 ms, which technically is not that good, but is kind of required to make the scrolling smoothish. You can change it by changing the ".timertb.topic -iom 0 25 tupdate" command in the script.


EDIT #2:

You could of course make it take bigger steps with the scrolling, then it wouldn't have to update it as often and it would eat a lot less CPU time.

Last edited by Dazuz; 14/05/16 01:36 PM.