Forum Replies Created
-
AuthorPosts
-
SatDaNTeParticipant'TCount' wrote:
Я так понимаю, тебе нужно просто выводить инфу, поэтому подсчитывать количество строк и не нужно, только нужно знать общую высоту контента в пикселях, чтобы определиться с ScrollBar'ом.
А потом уже, зная высоту контента, настраиваем Scroll:
SBar.Max:=Content.Height;
SBar.PageSize:=PBox.Height;
Здесь:
Content – это картинка, на которой все прорисовано. Можно прорисовывать и постепенно, но в таком случае нужно все равно знать максимальную высоту всего прокручиваемого.
Sbar – ScrollBar
PBox – PaintBox, в котором выводится контент
Конечно же, чтобы не мигало, нужно при создании формы указать Doublebuffered:=true. Остальные процедуры, думаю, ты без труда напишешь.
При моей видюхе 128 Mb, проце 1,9 Ггц и размере PaintBox 300×300 все летает))
P.S. Выводить все добро, конечно же, с помощью WinAPI:
BitBlt(PBox.Canvas.handle,0,0,PBox.Width,PBox.Height,Content.Canvas.Handle,0,SBar.Position,srccopy);
и размере PaintBox 300×300 все летает))
А если текста больше чем 300 по верт.? Я имею ввиду что сколько текста неизвестно, а высоту PaintBox соответственно нужно увеличивать до размера текста,я делал так:
Code:procedure TForm3.PaintBox1Paint(Sender: TObject);
var
r:TRect;
vFormat : TTextFormat;
vStr : string;
m:TStringList;
begin
m:=TStringList.Create;
m.LoadFromFile('C:UsersВладимирDesktop1.txt');
vStr:=m.Text;
r:=Rect(0,0,sScrollBox1.Width,3000);
vFormat := [tfEditControl];
PaintBox1.Canvas.Brush.Style := bsClear;
PaintBox1.Canvas.TextRect(r,vStr,vFormat);
PaintBox1.Height:=PaintBox1.Canvas.TextHeight(vStr)*m.Count;
end;но так текст не переносится,а если делать с переносом (vFormat := [tfEditControl,tfWordBreak]) то кол-во строк неизвестно! Может ты мне скинешь пример твоей реализации буду очень признателен!
SatDaNTeParticipant'TCount' wrote:Теперь понятно, что имелось ввиду. Я для своего проекта немного уделил временени и слепил свой компонент на основе TsScrollBar+PaintBox. В PaintBox выводится все, что захочу и все это прокручивается. Работает быстрее ListView+фон)
Если не секрет то как ты подсчитываешь количество строк в PainBoxe, при tfWordBreak?
SatDaNTeParticipantQuote:Я также думаю, что «сейчас, так как это” картины выглядит очень красиво тоже! Выглядит очень профессионально! Мне нравится ваши скриншоты Удачи!!Спасибо, делаю для себя, смотрится менее читаемо и вообще плохо, потому что я специально выбрал скин чтобы было более наглядно то чего я хочу добиться. Просто в некоторых местах это выглядело бы красивее! И очень бы пригодилось в других случаях, может гуру включит поддержку в 9 версии? Ведь дело не в конкретном случае, а в том что в некоторых случаях это будет очень полезно и современно! Тоже касается и ListView, если это сделать будет просто лучший пакет компонентов(хотя он и сейчас такой))))!
SatDaNTeParticipant'DarrenB' wrote:Hello, I am translating this into russian thru Google.
Я не уверен, что это поможет, но вы видели эту ссылку на StackOverflow? Я сейчас занят, но это выглядит, когда я прочитал, что это может быть полезен?
http://stackoverflow.com/questions/17014360/vcl-component-opacity-transparence
Yes I saw it, but not yet used, I thought using AlphaControls as it can make! (Google)
SatDaNTeParticipantQuote:С трудом понимаю Вашу технику создания приложений)Этим я хотел сказать что я сделал вот так [attachment=6670:2.jpg] с помощью ScrollBara и Labela только запись текста туда очень долгая и глючит при ресайзе!
Сейчас вот так [attachment=6669:1.jpg], надо чтобы было вот так [attachment=6670:2.jpg]
SatDaNTeParticipantДопустим у скина фон формы картинка, то есть варианты с ParentColor, убрать края (свойство BorderStyle установить в BSnone) не работают, я беру ScrollBox и ложу в него Label(Align=Top, AutoSize=true), всё хорошо только при ресайзе и добавлении текста в реал тайме появляются глюки и долго не прорисовывается текст!
SatDaNTeParticipantДля sListView: при добавлении в него отключить DoubleBuffered, после включить!
На счёт ExtendedBorders у меня с ними наоборот все стабильнее и быстрее!
sGauge: отключить анимацию!
SatDaNTeParticipant'ms301' wrote:Как скоро будет поддержка Delphi Xe5?
+1 тоже очень интересует хоть примерные сроки…
SatDaNTeParticipantСкоро понятие растяжимое, пожалуйста постарайся побыстрей выложить :blush:
-
AuthorPosts