169 похожих чатов

Добрый вечер! Как я могу перенаправить отрисовку с одной формы

на другую?

23 ответов

31 просмотр

Что ты имеешь ввиду?

Kirill-Filippenok Автор вопроса
Hemul GM
Что ты имеешь ввиду?

Я хочу чтобы окно было одно, а я просто менял указатель какой-нибудь с формы на форму и все

Kirill-Filippenok Автор вопроса
Kirill Filippenok
Спасибо, попробую

Но учти что рисовать вне события OnPaint - багадром. Рисуй в битмапе который и там и там отрисовывай

Kirill-Filippenok Автор вопроса
Peter
Но учти что рисовать вне события OnPaint - багадро...

Можно пример? В канвасе нет битмапа

Kirill-Filippenok Автор вопроса
Hemul GM
Ну возьми ссылку на Canvas

Делаю так: procedure TForm1.Button1Click(Sender: TObject); var LCanvas: TCanvas; begin LCanvas := Form1.Canvas; Form1.Canvas := NIL; Form2.Canvas := LCanvas; Form2.Canvas.Refresh; end; После нажатия кнопки ничего не меняется. После этого, если нажать на окно в любом месте, выдаёт ошибку: Проект project1 вызвал класс исключения 'External: SIGSEGV'. В файле 'customform.inc' на строке 1106: Canvas.Handle := DC; Процедура на которую отправляет отладчик (на строку 5 - Canvas.Handle := DC;) procedure TCustomForm.PaintWindow(dc: Hdc); begin // Canvas.Lock; try Canvas.Handle := DC; //DebugLn('[TCustomForm.PaintWindow] ',ClassName,' DC=',DbgS(DC,8),' ',DbgS(FCanvas.Handle,8)); try Paint; if FDesigner <> nil then FDesigner.PaintGrid; finally Canvas.Handle := 0; end; finally // Canvas.Unlock; end; end;

Kirill Filippenok
Делаю так: procedure TForm1.Button1Click(Sender: T...

А что ты этим вообще пытаешься сделать?))

Kirill Filippenok
Можно пример? В канвасе нет битмапа

B := TBitmap.Create(); B.SetSize(999,999); B.Canvas…..

Kirill-Filippenok Автор вопроса
Peter
B := TBitmap.Create(); B.SetSize(999,999); B.Canva...

Проверил. Canvas у TBitmap идёт от предка TRasterImage, у которого прописан доступ только на чтение. Таким способом не получится напрямую

Kirill-Filippenok Автор вопроса
Александр В
А что ты этим вообще пытаешься сделать?))

Хочу чтобы формы были как страницы. Окно будет одно, меняться будет только какую форму выводить. А-ля страницы

Kirill Filippenok
Хочу чтобы формы были как страницы. Окно будет одн...

Понятнее не стало. Особенно, желание менять местами канвас

Kirill-Filippenok Автор вопроса
Hemul GM
Понятнее не стало. Особенно, желание менять местам...

Понял. Я сейчас сделаю картинку что хочу сделать, и ещё раз попробую описать

Kirill Filippenok
Хочу чтобы формы были как страницы. Окно будет одн...

Ну так используй PageControl со скрытыми закладками или фреймы создавай. Заставлять одну форму отрисовываться на канвасе другой - очень странная идея

Kirill-Filippenok Автор вопроса
Михаил Усков
Ну так используй PageControl со скрытыми закладкам...

Блин, реально... То что мне нужно было). Спасибо

Kirill-Filippenok Автор вопроса
Kirill Filippenok
https://professorweb.ru/my/WPF/UI_WPF/level24/24_2...

Ну тебе же там русским языком сказали, отказаться от окон и использовать Page

Kirill-Filippenok Автор вопроса
Kirill Filippenok
Проверил. Canvas у TBitmap идёт от предка TRasterI...

Так а зачем тебе подменять канву? Рисуй в битмап, а его уже рисуй на формах

Kirill Filippenok
Хочу чтобы формы были как страницы. Окно будет одн...

Ты можешь форму вставить в форму штатными средствами, или использовать фреймы, или PageControl

Kirill Filippenok
Хочу чтобы формы были как страницы. Окно будет одн...

а положить форму/фрейм на TTabControl/TPageControl не по феншую?

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
9
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Карта сайта