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

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

на другую?

23 ответов

48 просмотров

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

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 не по феншую?

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта