关于StatusBar中显示文字 StatusBar.panel[1].text:='你要的文字. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);begin case Panel.Index of 0,2:begin //这边是2吧!? StatusBar.Canvas.Font.Color :=clred; StatusBar.Canvas.TextOut(Rect.Top,Rect.left,'ABCDEFG'); end; 3:begin end; end;end; 用label就可以了,把label字体变成red,写上你要显示的字然后指定label的parent为panels好象是这样,具体记不清楚了 用label是可以,但是不好画。偶怎么画画都觉得不好看。还有,为什么panel[0]就可以,而其他index>0的就不行呢?困惑啊困惑 case没什么问题,我只不过随手写的 statusBar属性值增加,panel[n],n>=0 procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);var vBitmap: TBitmap;begin vBitmap := TBitmap.Create; try vBitmap.Width := Rect.Right - Rect.Left; vBitmap.Height := Rect.Bottom - Rect.Top; vBitmap.Canvas.Font := StatusBar.Canvas.Font; vBitmap.Canvas.Brush := StatusBar.Canvas.Brush; vBitmap.Canvas.FillRect(Classes.Rect(0, 0, vBitmap.Width, vBitmap.Height)); if Panel.Index in [0, 3] then vBitmap.Canvas.Font.Color := clRed; vBitmap.Canvas.TextOut(1, 1, Panel.Text); StatusBar.Canvas.Draw(Rect.Left, Rect.Top, vBitmap); finally vBitmap.Free; end;end; procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);var vBitmap: TBitmap;begin vBitmap := TBitmap.Create; try vBitmap.Width := Rect.Right - Rect.Left; vBitmap.Height := Rect.Bottom - Rect.Top; vBitmap.Canvas.Font := StatusBar.Canvas.Font; vBitmap.Canvas.Brush := StatusBar.Canvas.Brush; vBitmap.Canvas.FillRect(Classes.Rect(0, 0, vBitmap.Width, vBitmap.Height)); if Panel.Index in [0, 3] then vBitmap.Canvas.Font.Color := clRed; vBitmap.Canvas.TextOut(1, 1, Panel.Text); StatusBar.Canvas.Draw(Rect.Left, Rect.Top, vBitmap); finally vBitmap.Free; end;end; procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);var vBitmap: TBitmap;begin vBitmap := TBitmap.Create; try vBitmap.Width := Rect.Right - Rect.Left; vBitmap.Height := Rect.Bottom - Rect.Top; vBitmap.Canvas.Font := StatusBar.Canvas.Font; vBitmap.Canvas.Brush := StatusBar.Canvas.Brush; vBitmap.Canvas.FillRect(Classes.Rect(0, 0, vBitmap.Width, vBitmap.Height)); if Panel.Index in [0, 3] then vBitmap.Canvas.Font.Color := clRed; vBitmap.Canvas.TextOut(1, 1, Panel.Text); StatusBar.Canvas.Draw(Rect.Left, Rect.Top, vBitmap); finally vBitmap.Free; end;end; 现在是为什么panels[0]可以改变,而panels[1..n]却不行。大家给个答案 还有,用label,bitmap等等我都知道确实可行 delphi问题 关于继承TStatusBar,添加控件的问题 [API高手入]已知窗口句柄如何植入到TTabSheet里 古怪问题敬请高手以求解答,本人不甚感激(百思不得其解) delphi+ado+access动态连接数据库问题!!!!我的分多的是,可用分已经有5000多了,谁解决了这个问题外加一百! GDBGrid 是什么控件的单元? 图片存取问题 XPManifest 怎么用啊 ListBox添加记录时,如何自动看到最后一条记录? 关于Label长度的问题 超级简单问题2,在线等待.. 两个MDI子窗口的切换
Panel: TStatusPanel; const Rect: TRect);
begin
case Panel.Index of
0,2:begin //这边是2吧!?
StatusBar.Canvas.Font.Color :=clred;
StatusBar.Canvas.TextOut(Rect.Top,Rect.left,'ABCDEFG');
end;
3:begin
end;
end;
end;
然后指定label的parent为panels好象是这样,具体记不清楚了
偶怎么画画都觉得不好看。
还有,为什么panel[0]就可以,而其他index>0的就不行呢?
困惑啊困惑
Panel: TStatusPanel; const Rect: TRect);
var
vBitmap: TBitmap;
begin
vBitmap := TBitmap.Create;
try
vBitmap.Width := Rect.Right - Rect.Left;
vBitmap.Height := Rect.Bottom - Rect.Top;
vBitmap.Canvas.Font := StatusBar.Canvas.Font;
vBitmap.Canvas.Brush := StatusBar.Canvas.Brush;
vBitmap.Canvas.FillRect(Classes.Rect(0, 0, vBitmap.Width, vBitmap.Height));
if Panel.Index in [0, 3] then vBitmap.Canvas.Font.Color := clRed;
vBitmap.Canvas.TextOut(1, 1, Panel.Text);
StatusBar.Canvas.Draw(Rect.Left, Rect.Top, vBitmap);
finally
vBitmap.Free;
end;
end;
Panel: TStatusPanel; const Rect: TRect);
var
vBitmap: TBitmap;
begin
vBitmap := TBitmap.Create;
try
vBitmap.Width := Rect.Right - Rect.Left;
vBitmap.Height := Rect.Bottom - Rect.Top;
vBitmap.Canvas.Font := StatusBar.Canvas.Font;
vBitmap.Canvas.Brush := StatusBar.Canvas.Brush;
vBitmap.Canvas.FillRect(Classes.Rect(0, 0, vBitmap.Width, vBitmap.Height));
if Panel.Index in [0, 3] then vBitmap.Canvas.Font.Color := clRed;
vBitmap.Canvas.TextOut(1, 1, Panel.Text);
StatusBar.Canvas.Draw(Rect.Left, Rect.Top, vBitmap);
finally
vBitmap.Free;
end;
end;
Panel: TStatusPanel; const Rect: TRect);
var
vBitmap: TBitmap;
begin
vBitmap := TBitmap.Create;
try
vBitmap.Width := Rect.Right - Rect.Left;
vBitmap.Height := Rect.Bottom - Rect.Top;
vBitmap.Canvas.Font := StatusBar.Canvas.Font;
vBitmap.Canvas.Brush := StatusBar.Canvas.Brush;
vBitmap.Canvas.FillRect(Classes.Rect(0, 0, vBitmap.Width, vBitmap.Height));
if Panel.Index in [0, 3] then vBitmap.Canvas.Font.Color := clRed;
vBitmap.Canvas.TextOut(1, 1, Panel.Text);
StatusBar.Canvas.Draw(Rect.Left, Rect.Top, vBitmap);
finally
vBitmap.Free;
end;
end;
大家给个答案