Показать сообщение отдельно
Старый 27.12.2008, 03:30   #28
GomZik
Нуждающийся
 
Регистрация: 19.07.2007
Сообщений: 85
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Lib_font32: Графические шрифты

короче, вот модифицированный код, а то я не могу понять, что ты имеешь ввиду... Но если я правильно понял, то именно так у меня и происходит.
Program VscollDemo;

Uses	gui32, vscroll, font32;

Var		wi, hi, text_height, key: integer;

Begin	
	
	wi:=GetWidth; hi:=GetHeight; // Ширина и высота экрана
	
	// ------------------------- Загружаем шрифт ---------------------------
	font32.init(1);
	Font(0); LoadFont('Verdana_11');
	
	gui32.init;gui32.setskin(loadimage('/main.png'));
	gui32.SetWindow(0,0,wi,hi,'Письмо');
	gui32.showwindow;
	
	Loadvscroll(LoadImage('/vscroll.png')); // Загрузка скина для скроллера
	SetVScroll(wi - VScrollWidth, 24, hi-24); // Установка положения и длины скроллера
	vscroll.SetOffset(16); // Отступ (чтоб не закрыть ползунком стрелочки)
	
	TextWindow(0, 24, wi - VScrollWidth, hi-24); // Установка текстового окна (на весь экран за вычетом ширины скроллера)
	
	text_height:=Format('"Это - признание: я люблю вас," - так начиналось письмо, и в продолжение одной искаженной секунды я принял этот истерический почерк за каракули школьницы: "На днях, в воскресенье, во время службы (кстати хочу пожурить вас, нехорошего, за отказ прийти посмотреть на дивные новые расписные окна в нашей церкви), да, в это воскресенье, так недавно, когда я спросила Господа Бога, что мне делать, мне было сказано поступить так, как поступаю теперь. Другого исхода нет. Я люблю вас с первой минуты, как увидела вас. Я страстная и одинокая женщина, и вы любовь моей жизни. А теперь, мой дорогой, мой самый дорогой, mon cher, cher Monsieur, вы это прочли; вы теперь знаете. Посему попрошу вас, пожалуйста, немедленно уложить вещи и отбыть. Это вам приказывает квартирная хозяйка. Уезжайте! Вон! Departez! Я вернусь к вечеру, если буду делать восемьдесят миль в час туда и обратно - без крушения (впрочем, кому какое дело?) и не хочу вас застать. Пожалуйста, пожалуйста, уезжайте тотчас, теперь жe, даже не читайте этой смешной записки до конца. Уезжайте. Прощайте. Положение, mon cheri, чрезвычайно простое. Разумеется, я знаю с абсолютной несомненностью, что я для вас не значу ничего, ровно ничего. О да, вы обожаете болтать со мной (и шутить надо мною, бедной); вы полюбили наш гостеприимный дом, мне нравящиеся книги, мой чудный сад и даже проказы моей шумной дочки; но я для вас - ничто. Так? Так. Совершенное ничто. Но, если, по прочтении моего "признания", вы решили бы, как европеец и сумрачный романтик, что я достаточно привлекательна для того, чтобы вам воспользоваться моим письмом и завязать со мной "интрижку", тогда знайте, это будет преступно - преступнее, чем было бы насилие над похищенным ребенком. Видите ли, любимый, если бы вы решили остаться, если бы я вас застала тут (чего, конечно, не случится, и потому могу так фантазировать), самый факт вашего оставания мог бы быть истолкован только в одном смысле: что вы для меня хотите стать тем же, чем я хочу стать для вас - спутником жизни - и что вы готовы соединить навсегда свою жизнь с моей и быть отцом моей девочки. Позвольте мне еще чуточку побредить и побродить мыслью, мой драгоценнейший; ведь я знаю, вы уже разорвали это письмо, и его куски (неразборчиво) в водоворот клозета. Мой драгоценнейший, mon tres, tres cher, какую гору любви я воздвигла для тебя в течение этого магического июня месяца! Знаю, как вы сдержанны, как много в вас "британского". Возможно, что вашу старосветскую замкнутость, ваше чувство приличия, покоробит прямота бедной американочки! Вы, который скрываете ваши сильнейшие порывы, должны почесть меня бесстыдной дурочкой за то, что раскрываю так широко свое несчастное раненое сердце. В былые годы я испытала немало разочарований. Мистер Гейз был прекрасный человек, надежный и цельный, но, увы, он был на двадцать лет старше меня, так что - но не будем сплетничать о прошлом. Мой дорогой, твое любопытство должно быть полностью удовлетворено, если ты пренебрег моею просьбой и дочитал это письмо до горького конца. Впрочем, это неважно. Уничтожь его - и уезжай. Не забудь оставить ключи у себя на столе. И хоть какой-нибудь адрес, чтобы я могла вернуть двенадцать долларов, заплаченные тобой за остаток месяца. Прощай, дорогой мой. Молись за меня - если ты когда-нибудь молишься"', 0);

	DrawTextWindow; DrawVScroll(0, text_height, 0, hi-24); Repaint;
	
	SetColor(255,255,255);
	
	repeat // Главный цикл программы
		key:=KeyToAction(GetKeyPressed);
		if key = GA_DOWN then
			begin
				MoveDown(2); // Сдвигаем текст вниз
				FillRect(0,0,wi,hi); // Очистка фона
				gui32.showwindow;
				DrawTextWindow; // Рисуем текст
				DrawVScroll(0, text_height, GetPosition, hi-24); // Отрисовка скроллера
		end;
		if key = GA_UP then
			begin
				MoveUp(2); // Сдвигаем текст вверх
				FillRect(0,0,wi,hi); // Очистка фона
				gui32.showwindow;
				DrawTextWindow; // Рисуем текст
				DrawVScroll(0, text_height, GetPosition, hi-24);  // Отрисовка скроллера
			end;
		if key = GA_FIRE then Halt; // Выход
		
		Repaint; Delay(5); // Всё таки для Verdanы 7 медленновато скролирует. Надо ещё улучшать алгоритм.
		
	until false;
	
End.
P.S. с самим скролом всё окей, вот текст должен поидии скрыться, не запозая не верхнюю часть окна... Но нифига(
(Offline)
 
Ответить с цитированием