Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2013, 21:23   #1
Parnischa55
 
Регистрация: 13.02.2013
Сообщений: 9
По умолчанию delphi: перенос строк в radiogroup

Здравстуйте уважаемые форумчане!
Есть? проблема Googl не помог.
Есть radiogroup, в который помещается длинный тест, и он не переностися на новую строку.
Код:
for i := 0 to RadioGroup1.Items.Count - 1 do
    RadioGroup1.Buttons[i].WordWrap := True;
Такой способ не помогает.
Есть конечно же альтернатива попробовать с Label, но тогда я не знаю как переделать код.
Код:
var
  Test2: TTest2;
  q,k,j,z:integer;
  txt2:textfile;
  a: array[1..10] of integer;
  b:array[1..11] of integer;
 sum:integer;  i:integer;
 implementation

uses t1, t3;


{$R *.dfm}

procedure TTest2.FormActivate(Sender: TObject);
var s:string;
begin
case test1.ComboBox1.ItemIndex of
  0:begin
     s:=ExtractFilePath(Application.ExeName) + '\' + 't2.txt';
assignfile(txt2,s);
reset(txt2);
sum:=0;
button2.Enabled:=false;
button1.Caption:='Начать тест';
    end;
 1:begin
s:=ExtractFilePath(Application.ExeName) + '\' + 't3.txt';
assignfile(txt2,s);
reset(txt2);
sum:=0;
button2.Enabled:=false;
button1.Caption:='Начать тест';
    end;  end;      end;

procedure TTest2.Button1Click(Sender: TObject);
var
s:string;
i:integer;
begin
 z:=z+1;
 button1.Caption:='Далее';
 radiogroup1.Items.Clear;
sLabel1.Caption:='';
 readln(txt2,s);
 sLabel1.Caption:=s;
 j:=j+1;
 test2.Caption:='Вопрос № '+inttostr(z);
 for i:=1 to 4 do
 begin
     readln(txt2,s);
     if  (s[1]='1') then
     begin
     a[j]:=i-1;
     end;
     delete(s,1,1);
     radiogroup1.Items.Add(s);
    end;
q:=q+1;
 if q=10 then
begin
button1.Enabled:=false; end;
if  q=10
then
begin
button2.Enabled:=true;

end;
end;

procedure TTest2.FormCreate(Sender: TObject);
begin
j:=0;
for j:=1 to 10 do
begin
a[j]:=0;
end;
end;

procedure TTest2.RadioGroup1Click(Sender: TObject);
 var  i:integer;
begin
k:=k+1;
b[k]:=radiogroup1.ItemIndex;
 if a[j]=b[k] then sum:=sum+1;
end;
Изображения
Тип файла: jpg Безымянный.jpg (59.3 Кб, 105 просмотров)
Parnischa55 вне форума Ответить с цитированием
Старый 16.02.2013, 21:47   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
  i:=RadioGroup1.Items.Add('Начало пункта 1'+#13#10+'продолжение пункта 1');
  SetWindowLong(RadioGroup1.Buttons[i].Handle,GWL_STYLE,GetWindowLong(RadioGroup1.Buttons[i].Handle,GWL_STYLE) or BS_MULTILINE);
  i:=RadioGroup1.Items.Add('Начало пункта 2'+#13#10+'продолжение пункта 2');
  SetWindowLong(RadioGroup1.Buttons[i].Handle,GWL_STYLE,GetWindowLong(RadioGroup1.Buttons[i].Handle,GWL_STYLE) or BS_MULTILINE);
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.02.2013, 22:21   #3
Parnischa55
 
Регистрация: 13.02.2013
Сообщений: 9
По умолчанию

Если бы это прописывалось руками то да, а если у меня загружается из текстового файла в переменную длинная строка то как я там смогу осуществить прерывание?
Parnischa55 вне форума Ответить с цитированием
Старый 16.02.2013, 22:29   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вариант 1. Используя GetTextExtentPoint32 расчитываем ширину текта в пикселях и если слишком широкий текст организуем перенос по словам средствами #2. При этом не запрещено сделать перенос даже по правилам орфографии

Вариант 2. Долго ищем способ, делающий это автоматически

Вариант 3. Забиваем на все и делаем как обычно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 16.02.2013 в 22:31.
Аватар вне форума Ответить с цитированием
Старый 16.02.2013, 22:47   #5
Parnischa55
 
Регистрация: 13.02.2013
Сообщений: 9
По умолчанию

Решил делать без загрузки файла и все ручками. Большое спасибо всем за помощь.
Parnischa55 вне форума Ответить с цитированием
Старый 16.02.2013, 22:57   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну и зря. Будет индусский код
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос строки по словам в RadioGroup pomz Общие вопросы Delphi 10 27.05.2011 17:56
перенос строк удаление ненужных строк HelperAwM Microsoft Office Excel 5 26.06.2010 18:42
RadioGroup и ListBox (Delphi) rita3 Помощь студентам 3 01.06.2010 03:39
RadioGroup в Delphi 2005 Nez Компоненты Delphi 7 15.02.2007 19:16