Последние записи
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
- Сравнение языков на массивах. Часть 1
- Сравнение языков по скорости
- Чтение огромных xml-файлов
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
28th
Сен
Перенести программу из Delphi в Lazarus
Пытаюсь портировать свою программу с Delphi на Lazarus, чтобы скомпилировать её в Linux и Mac. Столкнулся со множеством проблем и подводных камней, так что теперь не исключаю, что лучшим решением будет остаться на Delphi (и ждать, когда подтянут Firemonkey). А у вас был такой же опыт? Вопрос по теме: правильно ли я понял, что авторы The Bat (который написан на Delphi) сознательно приняли решение не портировать проект на Linux и Mac по этим же причинам? И ещё вопрос по теме — Wine для Mac жив или умер?
Что мне не нравится в Lazarus как средстве разработки под Windows:
— Какая-то чехарда с .inc, .pp файлами вместо обычных модулей, легко запутаться (хотя возможно я просто не освоился);
— Часто возникает ошибка Warning: Recompiling …, checksum changed for ….ppu
— Иногда приходится устранять конфликт одинаковых имён модулей, может быть это специфика моих проектов.
Ещё вопрос, как финансируется Lazarus? Немного настораживает, что он бесплатный.
10th
Сен
Автоматическая смена языка (раскладки клавиатуры)
Как в лазарусе сменить язык автоматически, скажем в поле Едит1 вводится текст на английском, а в Едит2 на русском языке?
19th
Июл
Lazarus, проверка существования строки таблице
Как проверить существует ли строка в таблице (не заполнена ли, существует ли вообще) , если да , то заполнить, если нет, то добавить строку и заполнить. А то если попытаться заполнить не существующую строку, возникает ошибка.
Существует таблица например 3-столбца 3-строки, и если обратится к 1-столбцу 4-строку возникает ошибка, то есть нужно заранее узнать существует ли строка (не ее значение, а существует ли вообще ), например в цикле перечисляем строки, если строка (ячейка) существует, записываем в нее значение и цикл продолжается, если нет, выходим за пределы цикла.
11th
Апр
With … do и вызов функции. Как получить указатель на сам объект?
with TButton.Create do begin
{настройка кнопки}
end;
И вот такой вопрос: мне внутри этого блока нужно вызвать процедуру, аргументом которой будет сама кнопка. Есть ли такая возможность?
10th
Дек
Не создавать форму при определенном параметре
Нужно сделать программу:
Если просто запускается программа, без параметров — то запускается форма
Если же программа запускается с каким-то конкретным параметром — то тогда программа совершает вычисления без запуска формы, возвращает результат и закрывается
Как это сделать?
18th
Июн
Свойство MaxLength у TEdit и кодировка UTF8
Вот какая возникла проблема. Нужно ограничить количество символов, которые может ввести пользователь в TEdit. Для этого предназначено свойство MaxLength, но оно не понимает кодировку UTF8, а именно с ней и работает Lazarus (странно, да, работает с этой кодировкой, но свойства ее не понимают).
В итоге если, скажем, прописать MaxLength := 30, то длина строки будет ограничена лишь 15 символами для русского текста.
Применил костыльное решение:
1. Установил MaxLength := 60, то есть в два раза больше, чем надо (но так оно пропустит более 30 нерусских символов).
2. На обработчик события KeyPress прописал следующее:
if (Key >= ' ') and (UTF8Length(TEdit(Sender).Text) >= 30) then Key := #0;
Оно, конечно, как-то работает, но, во-первых, это реальный костыль, а, во-вторых, работает только если вводить прямо с клавиатуры, а если скопировать длинный текст из буфера, то ограничение не сработает.
Можно, конечно, еще дополнительно проверять длину текста и обрезать его, если окажется длиннее, но это уже двойной костыль будет.
Есть ли нормальное решение проблемы?
18th
Янв
Компонент ShortPathEdit в lazarus
В lazaruse на вкладке LazControl есть компонента ShortPathEdit с полем ввода и кнопкой выбора каталога. Не могу понять как работать с кнопкой. После выбора через диалог каталога заполняется атрибут Directory, но само поле ввода остается пустым. Подскажите какое событие ловить по окончанию выбора директории? Или это нужно как-то по другому реализовывать?
30th
Ноя
О сколько нам открытий чудных.. или о делении на 0 в Delphi без ошибки и в Lazaus с ошибкой
Давно уже пишу на Delphi, но до сих пор бывают открытия.
Код
var a,b:Word; // или Integer
begin
b:=0;
a:=1 div b;
// ........
нормально прокатывает в Delphi , а в Lazaus при запуске — аварийный выход, .. класс исключения «External: SIGFPE»
Правда, если в Delphi добавить после деления
Memo1.Lines.Add(IntToStr(a));
тоже будет ошибка при запуске.
В чем там разница? Пробовал {$Q+} или {$Q-} — ничего не меняется.
18th
Авг
Русские буквы в Консольном приложении Lazarus
Оператор
Writeln(‘Русские буквы’);
печатает абракадабру вместо русских букв в Простой программе или в Консольном приложении в Lazarus 2.02.12.
Как исправить?
4th
Фев
Выгрузка TImage в Excel
На форме есть TImage с изображением. Пытаюсь вставить в Excel: копирую изображение из TImage в буфер обмена. Затем вставляю в Excel с помощью команды PasteSpecial. В итоге на PasteSpecial все время возникает исключение EOleException с текстом:
Метод PasteSpecial из класса Worksheet завершен неверно.
procedure TfmMain.TestBtnClick(Sender: TObject);
var Img: TImage;
xla: Variant;
xls: Variant;
begin
Img:=TImage.Create(nil);
xla := CreateOleObject('Excel.Application');
xla.Workbooks.Add;
xls := xla.Workbooks[1].WorkSheets[1];
xls.Name := 'Sheet1';
xla.Visible:=True;
Clipboard.Assign(Img.Picture);
xla.Cells(5,5).Select;
xls.PasteSpecial(5,False,False,False,0,EmptyParam,EmptyParam);
Img.Free;
end;
Версия Lazarus: 1.6.4
Версия FPC: 3.0.4
Я думаю, что все дело в том, что неправильно передаются параметры в PasteSpecial. Если у кого-нибудь есть рабочий вариант, поделитесь пожалуйста.
Облако меток
css реестр ассемблер timer SaveToFile ShellExecute программы массив советы word MySQL SQL ListView pos random компоненты дата LoadFromFile form база данных сеть html php RichEdit indy строки Win Api tstringlist Image мысли макросы Edit ListBox office C/C++ memo графика StringGrid canvas поиск файл Pascal форма Файлы интернет excel Microsoft Office Excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)