1

(2 відповідей, залишених у C#, .NET)

Всім привіт!
При завершені роботи над проектом зіткнувся з проблемою роботи БД на інших ПК. Загалом, додаток призначений на роботу на одному ПК та немає ніякої необхідності підключатися до сервера, але все ж в MS SQL створив БД так як ознайомлений тільки з цим середовищем. Як тепер бути? Треба створювати нову БД, якщо так то в якому середовищі? Чи можливо працювати з цією БД без підключення до сервера на інших ПК?
Дякую!

2

(0 відповідей, залишених у C#, .NET)

Всім привіт!
Чи можна в ReportViewer якось додати нові звіти?
Ну ReportViewer приймає значення тільки одного звіту (див рис), а от чи можна якось через код задавати йому нові значення звітів при натиску кнопки. Ну просто дивно якщо не можна в особливості якщо потрібно зробити 20 звітів з даними різних таблиць БД. На разі у мене є тільки одне рішення, це створення форм які будуть рівнятися кількості звітів (12 форм). Що можете порадити?
Дякую!

3

(2 відповідей, залишених у C#, .NET)

дякую Вам! працює!

if (image_PracImage.Source != null)
{
    MessageBox.Show("зображення є");
}
else
{
    MessageBox.Show("зображення немає");
}

4

(2 відповідей, залишених у C#, .NET)

Всім привіт!
Зіткнувся з такою проблемою,потрібно перевірити наявність зображення в полі Image. Як це реалізувати?
За моєю логікою це:
C#
[code]if (image_PracImage != null)
{
    MessageBox.Show("зображення є");
}
else
{
    MessageBox.Show("зображення немає");
}[/code]

WPF
[code=xml]<Image Name="image_PracImage"  MaxWidth="134" MaxHeight="152"  Stretch="UniformToFill" />
[/code]

Але кожного разу викидає повідомлення, що поле містить зображення.

5

(5 відповідей, залишених у C#, .NET)

Дуже дякую Вам, зараз почну розбиратися та може щось і виведу, якщо ні, то просто усе переведу до DataGrid і проблем, просто хочеться, щоб усе красиво було..

У мене усі налаштування якраз і на Wpf.

<Page.Resources>
    <Style TargetType="{x:Type ListBox}">
        <Setter Property="ItemTemplate">
            <Setter.Value>
                <DataTemplate>
                    <Border BorderBrush="#FF557B83" BorderThickness="1" Margin="10" Background="#FFE5EFC1">
                        <Border.BitmapEffect>
                            <DropShadowBitmapEffect Color="Black" Direction="315"
                                ShadowDepth="5" Softness="0.25" Opacity="0.5"/>
                        </Border.BitmapEffect>
                        <StackPanel Margin="5" >
                            <Image Source="{Binding Image_Prac}" Width="134" Height="153"/>

                            <TextBlock HorizontalAlignment="Center" Margin="2" Text="{Binding Path=Name}" />
                            <TextBlock HorizontalAlignment="Center" Margin="2" Text="{Binding Path=Sname}" />
                        </StackPanel>
                    </Border>
                </DataTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="ItemsPanel">
            <Setter.Value>
                <ItemsPanelTemplate>
                    <WrapPanel />
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" />
    </Style>
</Page.Resources>

<Grid Background="#FFA2D5AB">
    <StackPanel Orientation="Horizontal" Background="#FF39AEA9" Height="80" VerticalAlignment="Top" Margin="0">
        <materialDesign:ColorZone Mode="Standard" Padding="8 4 8 4" CornerRadius="2" Panel.ZIndex="1"
            Margin="10,20,10,20" materialDesign:ShadowAssist.ShadowDepth="Depth1">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Button Style="{DynamicResource MaterialDesignToolButton}">
                <materialDesign:PackIcon Kind="Magnify" Opacity=".56" />
            </Button>
            <TextBox Grid.Column="1" Margin="8 0 0 0" materialDesign:HintAssist.Hint="Введіть прізвище працівника" 
                materialDesign:TextFieldAssist.DecorationVisibility="Hidden" BorderThickness="0"
                MinWidth="200" VerticalAlignment="Center" />
         </Grid>
        <ListBox Name="listBoxContacts" ItemsSource="{Binding Customers}"
            MouseDoubleClick="listBoxContacts_MouseDoubleClick" Margin="0,80,0,0"
            BorderBrush="{x:Null}" Background="#FFA2D5AB"/>
</Grid>

6

(5 відповідей, залишених у C#, .NET)

Engineer написав:

Ви з лістбокса ID не можете витягнути ?
Я так розумію що ListBox у вас для WPF, а DataSet це System.Data.DataSet ?

Так, все правильно.

І які дані він у вас показує в ListBox після передачі елементів ч-з BindData() ?

Поки що такі:

 string sql = "SELECT Sname, Name, Image_Prac FROM OKP";

Але в подальшому додам ID. А от як зробити перевірку, що саме та комірка на яку я на жму буде мати відповідний ID?

7

(5 відповідей, залишених у C#, .NET)

Маю listBox в який виводжу записи з БД. Маю проблему у реалізації відкриття даних з listBox, типу, коли натискаю на запис у мене повинно відкритися вікно в якому в певні поля повинні передатися дані з БД цього запису.
Ось такі напрацювання

Відкриття форми з передачею до неї записів

private void btnUpt_Click(object sender, RoutedEventArgs e)
{
    if (listBoxContacts.SelectedItem != null)
    {
        var bas = new WinRozpisNew { Owner = this };
        bas.ShowDialog();

        // як передати ID на перевірку обраного listBox?

        con = new SqlConnection(constr);
        con.Open();
        string SQL = "SELECT * FROM OKP WHERE ID = @ID";
        cmd.Parameters["@ID"].Value = Convert.ToString(id);
        cmd = new SqlCommand(SQL, con);
        // передача даних на іншу форму
    }
    else MessageBox.Show("Оберіть працівника!", "Повідомлення",
            MessageBoxButton.OK, MessageBoxImage.Information);
}

Передача елементів з БД до listBox

private void BindData()
{
    DataSet dtSet = new DataSet();
    using (con = new SqlConnection(constr))
    {
        cmd = new SqlCommand(sql, con);
        da = new SqlDataAdapter();
        con.Open();
        da.SelectCommand = cmd;
        da.Fill(dtSet, "Customers");
        listBoxContacts.DataContext = dtSet;
    }
}

Або є ідея у передачі цього обраного ID на інше вікно а там виконати перевірку та вивести елементи. Але знову ж таки, проблема у отриманні відповідного ID.

8

(6 відповідей, залишених у C#, .NET)

З DatePicker все працює, дякую! Тепер виникло питання з полем image. Як передати Null SQL-лівський до БД? Пробую тим же методом але замість sqlDatatin використовую sqlbyte так, як конвертується в масив байтів.
_______________________________________________________________________________________
знайшов на теренах інтернету

if (btnBrowseClick == false)
{
    cmd.Parameters.Add("@Image_Prac", SqlDbType.VarChar).Value = SqlChars.Null;
}
else
{
    FileStream fs = new FileStream(imageName, FileMode.Open, FileAccess.Read);
    byte[] imgByteArr = new byte[fs.Length];
    fs.Read(imgByteArr, 0, Convert.ToInt32(fs.Length));
    fs.Close();
    cmd.Parameters.AddWithValue("@Image_Prac", imgByteArr);
}

9

(6 відповідей, залишених у C#, .NET)

Можливо не зрозуміли, але якщо мені потрібна пуста комірка в БД (далі для використання звітів) то потрібно щоб ну не було жодних даних. При заповнені вручну MS SQL  дає таку можливість.

10

(6 відповідей, залишених у C#, .NET)

Виникла проблема, при передачі інформації з DatePicker (WPF) до БД MS Sql. Якщо значення DatePicker дорівнює NULL отримую помилку. Як треба передати це значення, щоб якщо не потрібно заповнювати ту чи іншу дату, до БД передавалося значення NULL.

private void btnsave_Click(object sender, RoutedEventArgs e)
{
    FileStream fs = new FileStream(imageName, FileMode.Open, FileAccess.Read);
    byte[] imgByteArr = new byte[fs.Length];
    fs.Read(imgByteArr, 0, Convert.ToInt32(fs.Length));
    fs.Close();

    if (iDTextBox.Text != "")
    {

        using (con = new SqlConnection(constr))
        {
            con.Open();
            string sql = "insert into OKP(ID,Data_zap,Stat,Vid_rob,Sname,Name,Pobat,Day_nar,Gromad,Osvita,Prof_Pidgotov,Prof_Pidgotov_Name,Prof_Pidgotov_Diplom,Prof_Pidgotov_rik_zakin,Prof_Pidgotov_Nayk_styp,Ostan_misce_rob,Ostan_prof,Stag_rob_zadal_day,Stag_rob_zadal_month,Stag_rob_zadal_year,Vislyga_day,Vislyga_month,Vislyga_year,Zvil_date,Zvil_prich,Vidomist_pensi_viplat,Family_stan,Telephone,Tel_dodatkov,Email,Fakt_prog_oblast,Fakt_prog_misto_rayon,Fakt_prog_misto_selo,Fakt_prog_tip_vyl,Fakt_prog_name_vyl,Fakt_prog_bydinoc,Fakt_prog_kvartira,Fakt_prog_pochtov_index,Propisk_prog_oblast,Propisk_prog_misto_rayon,Propisk_prog_misto_selo,Propisk_prog_tip_vyl,Propisk_prog_name_vyl,Propisk_prog_bydinoc,Propisk_prog_kvartira,Propisk_prog_pochtov_index,Pas_seria,Pas_nom,Pas_kim_vidan,Pas_data_vidachi,Image_Prac,V_Grupa_oblic,V_Kategoria,V_Sklad,V_Zvannya,V_Spesial,V_Predatnist,V_Name_viyskomat_reestracia,V_Name_viyskomat_fact,V_Spec_oblic,Dodat_vidom,Zvil_rob_date,Zvil_rob_prich) Values(@ID,@Data_zap,@Stat,@Vid_rob,@Sname,@Name,@Pobat,@Day_nar,@Gromad,@Osvita,@Prof_Pidgotov,@Prof_Pidgotov_Name,@Prof_Pidgotov_Diplom,@Prof_Pidgotov_rik_zakin,@Prof_Pidgotov_Nayk_styp,@Ostan_misce_rob,@Ostan_prof,@Stag_rob_zadal_day,@Stag_rob_zadal_month,@Stag_rob_zadal_year,@Vislyga_day,@Vislyga_month,@Vislyga_year,@Zvil_date,@Zvil_prich,@Vidomist_pensi_viplat,@Family_stan,@Telephone,@Tel_dodatkov,@Email,@Fakt_prog_oblast,@Fakt_prog_misto_rayon,@Fakt_prog_misto_selo,@Fakt_prog_tip_vyl,@Fakt_prog_name_vyl,@Fakt_prog_bydinoc,@Fakt_prog_kvartira,@Fakt_prog_pochtov_index,@Propisk_prog_oblast,@Propisk_prog_misto_rayon,@Propisk_prog_misto_selo,@Propisk_prog_tip_vyl,@Propisk_prog_name_vyl,@Propisk_prog_bydinoc,@Propisk_prog_kvartira,@Propisk_prog_pochtov_index,@Pas_seria,@Pas_nom,@Pas_kim_vidan,@Pas_data_vidachi,@Image_Prac,@V_Grupa_oblic,@V_Kategoria,@V_Sklad,@V_Zvannya,@V_Spesial,@V_Predatnist,@V_Name_viyskomat_reestracia,@V_Name_viyskomat_fact,@V_Spec_oblic,@Dodat_vidom,@Zvil_rob_date,@Zvil_rob_prich)";
            using (cmd = new SqlCommand(sql, con))
            {
                cmd.Parameters.AddWithValue("@ID", iDTextBox.Text);
                cmd.Parameters.AddWithValue("@Data_zap", data_zapDatePicker.SelectedDate);
                cmd.Parameters.AddWithValue("@Stat", statComboBox.Text);
                cmd.Parameters.AddWithValue("@Vid_rob", vid_robComboBox.Text);
                cmd.Parameters.AddWithValue("@Sname", snameTextBox.Text);
                cmd.Parameters.AddWithValue("@Name", nameTextBox.Text);
                cmd.Parameters.AddWithValue("@Pobat", pobatTextBox.Text);
                cmd.Parameters.AddWithValue("@Day_nar", day_narDatePicker.SelectedDate);
                cmd.Parameters.AddWithValue("@Gromad", gromadTextBox.Text);
                cmd.Parameters.AddWithValue("@Osvita", osvitaComboBox.Text);
                cmd.Parameters.AddWithValue("@Prof_Pidgotov", prof_PidgotovComboBox.Text);
                cmd.Parameters.AddWithValue("@Prof_Pidgotov_Name", prof_Pidgotov_NameTextBox.Text);
                cmd.Parameters.AddWithValue("@Prof_Pidgotov_Diplom", prof_Pidgotov_DiplomTextBox.Text);
                cmd.Parameters.AddWithValue("@Prof_Pidgotov_rik_zakin", prof_Pidgotov_rik_zakinDatePicker.SelectedDate);
                cmd.Parameters.AddWithValue("@Prof_Pidgotov_Nayk_styp", prof_Pidgotov_Nayk_stypTextBox.Text);
                cmd.Parameters.AddWithValue("@Ostan_misce_rob", ostan_misce_robTextBox.Text);
                cmd.Parameters.AddWithValue("@Ostan_prof", ostan_profTextBox.Text);
                cmd.Parameters.AddWithValue("@Stag_rob_zadal_day", stag_rob_zadal_dayTextBox.Text);
                cmd.Parameters.AddWithValue("@Stag_rob_zadal_month", stag_rob_zadal_monthTextBox.Text);
                cmd.Parameters.AddWithValue("@Stag_rob_zadal_year", stag_rob_zadal_yearTextBox.Text);
                cmd.Parameters.AddWithValue("@Vislyga_day", vislyga_dayTextBox.Text);
                cmd.Parameters.AddWithValue("@Vislyga_month", vislyga_monthTextBox.Text);
                cmd.Parameters.AddWithValue("@Vislyga_year", vislyga_yearTextBox.Text);
                cmd.Parameters.AddWithValue("@Zvil_date", zvil_dateDatePicker.SelectedDate);
                cmd.Parameters.AddWithValue("@Zvil_prich", zvil_prichTextBox.Text);
                cmd.Parameters.AddWithValue("@Vidomist_pensi_viplat", vidomist_pensi_viplatTextBox.Text);
                cmd.Parameters.AddWithValue("@Family_stan", family_stanComboBox.Text);
                cmd.Parameters.AddWithValue("@Telephone", telephoneTextBox.Text);
                cmd.Parameters.AddWithValue("@Tel_dodatkov", tel_dodatkovTextBox.Text);
                cmd.Parameters.AddWithValue("@Email", emailTextBox.Text);
                cmd.Parameters.AddWithValue("@Fakt_prog_oblast", fakt_prog_oblastTextBox.Text);
                cmd.Parameters.AddWithValue("@Fakt_prog_misto_rayon", fakt_prog_misto_rayonTextBox.Text);
                cmd.Parameters.AddWithValue("@Fakt_prog_misto_selo", fakt_prog_misto_seloTextBox.Text);
                cmd.Parameters.AddWithValue("@Fakt_prog_tip_vyl", fakt_prog_tip_vylComboBox.Text);
                cmd.Parameters.AddWithValue("@Fakt_prog_name_vyl", fakt_prog_name_vylTextBox.Text);
                cmd.Parameters.AddWithValue("@Fakt_prog_bydinoc", fakt_prog_bydinocTextBox.Text);
                cmd.Parameters.AddWithValue("@Fakt_prog_kvartira", fakt_prog_kvartiraTextBox.Text);
                cmd.Parameters.AddWithValue("@Fakt_prog_pochtov_index", fakt_prog_pochtov_indexTextBox.Text);
                cmd.Parameters.AddWithValue("@Propisk_prog_oblast", propisk_prog_oblastTextBox1.Text);
                cmd.Parameters.AddWithValue("@Propisk_prog_misto_rayon", propisk_prog_misto_rayonTextBox1.Text);
                cmd.Parameters.AddWithValue("@Propisk_prog_misto_selo", propisk_prog_misto_seloTextBox1.Text);
                cmd.Parameters.AddWithValue("@Propisk_prog_tip_vyl", propisk_prog_tip_vylComboBox1.Text);
                cmd.Parameters.AddWithValue("@Propisk_prog_name_vyl", propisk_prog_name_vylTextBox1.Text);
                cmd.Parameters.AddWithValue("@Propisk_prog_bydinoc", propisk_prog_bydinocTextBox1.Text);
                cmd.Parameters.AddWithValue("@Propisk_prog_kvartira", propisk_prog_kvartiraTextBox1.Text);
                cmd.Parameters.AddWithValue("@Propisk_prog_pochtov_index", propisk_prog_pochtov_indexTextBox1.Text);
                cmd.Parameters.AddWithValue("@Pas_seria", pas_seriaTextBox.Text);
                cmd.Parameters.AddWithValue("@Pas_nom", pas_nomTextBox.Text);
                cmd.Parameters.AddWithValue("@Pas_kim_vidan", pas_kim_vidanTextBox.Text);
                cmd.Parameters.AddWithValue("@Pas_data_vidachi", pas_data_vidachiDatePicker.SelectedDate);
                cmd.Parameters.AddWithValue("@Image_Prac", imgByteArr);
                cmd.Parameters.AddWithValue("@V_Grupa_oblic", v_Grupa_oblicTextBox.Text);
                cmd.Parameters.AddWithValue("@V_Kategoria", v_KategoriaTextBox.Text);
                cmd.Parameters.AddWithValue("@V_Sklad", v_SkladTextBox.Text);
                cmd.Parameters.AddWithValue("@V_Zvannya", v_ZvannyaTextBox.Text);
                cmd.Parameters.AddWithValue("@V_Spesial", v_SpesialTextBox.Text);
                cmd.Parameters.AddWithValue("@V_Predatnist", v_PredatnistTextBox.Text);
                cmd.Parameters.AddWithValue("@V_Name_viyskomat_reestracia", v_Name_viyskomat_reestraciaTextBox.Text);
                cmd.Parameters.AddWithValue("@V_Name_viyskomat_fact", v_Name_viyskomat_factTextBox.Text);
                cmd.Parameters.AddWithValue("@V_Spec_oblic", v_Spec_oblicTextBox.Text);
                cmd.Parameters.AddWithValue("@Dodat_vidom", dodat_vidomTextBox.Text);
                cmd.Parameters.AddWithValue("@Zvil_rob_date", zvil_rob_dateDatePicker.SelectedDate);
                cmd.Parameters.AddWithValue("@Zvil_rob_prich", zvil_rob_prichTextBox.Text);
                cmd.ExecuteNonQuery();
                con.Close();

                MessageBox.Show("Користувач '" + snameTextBox.Text + "' '" + nameTextBox.Text + "' доданий", "Сповіщення", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }
    }
    else MessageBox.Show("Введіть Ідентифікаційний код!", "Помилка", MessageBoxButton.OK, MessageBoxImage.Error);
}

11

(4 відповідей, залишених у Бази даних)

leofun01 написав:

Тут посилання на інструкцію з картинками.

дуже вам дякую!!

12

(4 відповідей, залишених у Бази даних)

Чи існує автонумерація поля, наприклад, ID з типом даних int?
В Access присутня така можливість.

13

(0 відповідей, залишених у C++)

Запис даних до структури через textBox та вивід структур на dataGridView. Через консоль усе виходить

cin >> db->fio;

та

cout << db->fio;

, а от візуально - не розумію.

14

(1 відповідей, залишених у Pascal/Delphi)

Потрібно створити програмний додаток по обробці файла записів, який передбачає:
1. збереження даних, що вводяться в файл записів
2. можливість читання з раніше збереженого файла та додання до нього нових записів
3. обробка даних: у адміністартора залізничних кас зберігається інформація про вільні місця в поїздах далекого прямування на найближчий тиждень у наступному вигляді: дата виїзду, пунк призначення, час відправлення, число вільних місць. Оргкомітет звертається до адміна із проханням зарезервувати m місць до міста n на k-й день тижня із часом відправлення поїзда не пізніше t години вечора. Вивести час відправлення або повідомлення про неможливість виконати замовлення в повному обсязі.
4. виведення результатів обробки у вікно перегляду та збереження їх у текстовому файлі 

прошу допомоги у оформленні цього завданні на формі та з структурою роботи. намагався зробити, але з розташуванням елементів та з розумінням задачі виникли проблеми( з прикладу, який був даний до лаб, взяв: збереження даних, читання  даних, та виведення. дякую!)

15

(9 відповідей, залишених у Pascal/Delphi)

Дякую всім за допомогу, ось нарешті виконав!

procedure TForm1.Button1Click(Sender: TObject);
 var i,k,j:integer;
 s:string;
begin
 s:=Edit1.Text;
 k:=0; j:=0;
 for i := 1 to Length(s) do
 if s[ i ]<>' ' then begin
  j:=j+1
end
else
if (s[i]=' ') and (j<>4) then j:=0
else begin
  if (j=4) then begin
    k:=k+1;
    j:=0;
  end;
end;

   edit3.Text:=inttostr(k);
end;

end.

16

(9 відповідей, залишених у Pascal/Delphi)

koala написав:

Разом:

if s[ i ]<>' ' then begin
  j:=j+1
end 
else begin
  if j=4 then begin
    k:=k+1;
    j:=0;
  end;
end;  

дякую за виправлення і код, але є певні нюанси:
- програма вираховує тільки слова з 4 літерами, а в разі введення 3-ох, двох, або більше лічильник не працює. За моєю логікою то так би виправилась помилка, але не працює..

procedure TForm1.Button1Click(Sender: TObject);
 var i,k,j:integer;
 s:string;
begin
 s:=Edit1.Text;
 k:=0; j:=0;
 for i := 1 to Length(s) do
 begin
  if s[ i ]<>' ' then
  begin
  j:=j+1
  end
else
begin
  if j=4 then
  begin
    k:=k+1;
    j:=0;
  end
  else
  begin
  if (j<4) and (s[i+1]=' ' ) then j:=0;
  end;
end;
 end;
   edit3.Text:=inttostr(k);
end;

   

На мою думку, ця проблема зумовлена тим, що на далі 

 j

не має змоги обнулятися, але якщо я винесу за межі дужок, то потім усе обчислюється, але елементи, які більше 4 - також додаються. Ця проблема і переслідує протягом виконання цього завдання.

17

(9 відповідей, залишених у Pascal/Delphi)

koala написав:

Ну давайте просто за логікою:
- перебираємо всі символи:
  - якщо це не пробіл, то поточне слово довше на 1 літеру
  - інакше (тобто якщо це пробіл), то:
      - якщо поточне слово в 4 літери, зараховуємо це;
      - поточне слово стає довжиною 0 літер (бо почалося нове)
Ніби все. Переписати в Паскалі зможете?

Ви маєте це на увазі?

for i := 1 to Length(s) do
  if copy(s,i,1)<>' ' then j:=j+1
  else
  if copy(s,i,1)=' ' then
  begin
     if j=4 then k:=k+1;
     j:=0;
  end;  

18

(9 відповідей, залишених у Pascal/Delphi)

Завдання: дано символьний рядок S, визначити у послідовності кількість слів довжиною не більше чотирьох символів.

procedure TForm1.Button1Click(Sender: TObject);
 var i,k,j,n:integer;
 s:string;
begin
 s:=Edit1.Text;
 k:=0; j:=0;
for i := 1 to Length(s) do
  if copy(s,i,1)=' ' then j:=0
  else
  if copy(s,i,1)<>' ' then
  begin
     if j<5 then j:=j+1
     else
     if (j>=5) then j:=0
     else
     if j=4 then k:=k+1;

  end;  

end;

Я вже як тільки не грався з цим кодом, все одно нічого не виходить. У мене уже скільки версій цієї програми, а от яка дійсно виконує цю задачу немає.

19

(3 відповідей, залишених у Pascal/Delphi)

проблема з рядками, завдання: кожне слово розпочати великою літерою.

procedure TForm1.Button3Click(Sender: TObject);
 var s:string;
 i,k,n:integer;
begin
 s:=memo1.Text;
i:=1;
n:=length(s);
while i<=n do begin
  if s[1]=s[i] then s[i]:= UpCase(s[i]);
  if s[i]=(' ') then
  begin
    if i+1<=n then s[i+1]:=UpCase(s[i+1]);
    n:=n+1;
  end;
  i:=i+1;
end;
 memo2.Text:=s;
 memo2.Font.Name:='Times New Roman';
 memo2.Font.Size:=15;
 memo2.Font.Color:=clBlue;
end;

проблема полягає в тому, що не збільшує слова які стоять перші після абзацу.

20

(5 відповідей, залишених у *Basic)

6.0 - він від 2013 здається кращим