A więc mam pewien problem, być może trywialny dla speców, jednak dla mnie no niestety nie potrafię go rozwiązać, dlatego też postanowiłem założyć konto na waszym forum i spróbować razem z wami go rozwiązać.
W mojej aplikacji okienkowej jest pewne okno do minimalistycznej edycji obrazków, na razie chciałbym tylko bitmapy, oraz jpg obsługiwać, jest w niej komponent TImage, OpenPictureDialog, oraz szereg CheckBoxów, oraz także 2 buttony jeden do ładowania obrazków do komponentu TImage, drugi do wywołania funkcji drukuj obrazek itd. I teraz zaczyna się problem, otóż zadanie buttona drukuj ma się wykonać wtedy kiedy dopiero jest załadowany obrazek, a jeśli go nie ma wyrzucić komunikat, że najpierw ma być załadowany obrazek, to jest pierwszy problem. Natomiast drugi problem jest tego typu, że bazując na poradzie dotyczącej zmian proporcji Obrazu link: http://programowanie.cal.pl/cyfbar/grafika.html#graf19 po okodowaniu zdażeń komponentów CSPINEDIT, nie widzę, żadnych zmian w obrazie, jedynie zmieniają się wartości obrazu, a sam obraz pozostaje bez żadnych zmian. Sprawdziłem kod na osobnym projekcie biorąc komponent TImage oraz wszelkie inne komponenty, które potem wykonywałem wg poradnika, niestety bez żadnych zmian.
Co należało by zmienić w kodzie dla proporcji obrazu aby uświadczyć jakiekolwiek zmiany w obrazie, oraz jaki warunek if dać, aby założenie które przedstawiłem się spełniło?
Załączam kod odpowiedzialny za ładowanie obrazka, zmian proporcji, oraz wywołanie funkcji drukuj.
Serdecznie dziękuję, za poradę doradzenie mi co tu muszę pozmieniać. Pozdrawiam Piotr!
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
załączam kod odpowiedzialny za proporcje obrazu, oraz kody odpowiedzalne za ładowanie obrazu, oraz wywołanie fukcjii drukującej.
KOD cpp: UKRYJ
void __fastcall TPrintImageForm::AdjSizeHChange(TObject *Sender)
{
if(ActiveControl == AdjSizeH)
{
double SizeH = (double)Image->Picture->Width/((double)Image->Picture->Height/(double)AdjSizeH->Value);
AdjSizeW->Value = SizeH;
}
}
//---------------------------------------------------------------------------
void __fastcall TPrintImageForm::AdjSizeWChange(TObject *Sender)
{
if(ActiveControl == AdjSizeW)
{
double SizeW = (double)Image->Picture->Height/((double)Image->Picture->Width/(double)AdjSizeW->Value);
AdjSizeH->Value = SizeW;
}
}
{
if(ActiveControl == AdjSizeH)
{
double SizeH = (double)Image->Picture->Width/((double)Image->Picture->Height/(double)AdjSizeH->Value);
AdjSizeW->Value = SizeH;
}
}
//---------------------------------------------------------------------------
void __fastcall TPrintImageForm::AdjSizeWChange(TObject *Sender)
{
if(ActiveControl == AdjSizeW)
{
double SizeW = (double)Image->Picture->Height/((double)Image->Picture->Width/(double)AdjSizeW->Value);
AdjSizeH->Value = SizeW;
}
}
KOD cpp: UKRYJ
void __fastcall TPrintImageForm::LoadImageFromFileBtnClick(TObject *Sender)
{
if(ImageDlg->Execute(Handle))
{
Files = ImageDlg->FileName;
FileNames = ExtractFileName(Files);
try
{
Image->Picture->LoadFromFile(Files);
BMP->LoadFromFile(Files);
BMP->PixelFormat = pf32bit;
}
catch(...)
{
TJPEGImage *loadJpg = new TJPEGImage();
loadJpg->LoadFromFile(Files);
BMP->Width = loadJpg->Width;
BMP->Height = loadJpg->Height;
BMP->Canvas->Draw(NULL, NULL, loadJpg);
BMP->PixelFormat = pf32bit;
loadJpg->Free();
}
LoadedBar->Panels->Items[0]->Text = L"Loaded Picture: " + FileNames;
AdjSizeH->Value = Image->Picture->Height;
AdjSizeW->Value = Image->Picture->Width;
PropertiesGroup->Show();
}
else
{
MessageBoxW(Handle, L"Nothing Was Loaded!", L"NotePadExtra - Print Image",
MB_OK|MB_ICONWARNING) == ID_OK;
Image->Picture = NULL;
LoadedBar->Panels->Items[0]->Text = L"Loaded Picture: " L"Nothing Loaded!";
PropertiesGroup->Hide();
}
}
{
if(ImageDlg->Execute(Handle))
{
Files = ImageDlg->FileName;
FileNames = ExtractFileName(Files);
try
{
Image->Picture->LoadFromFile(Files);
BMP->LoadFromFile(Files);
BMP->PixelFormat = pf32bit;
}
catch(...)
{
TJPEGImage *loadJpg = new TJPEGImage();
loadJpg->LoadFromFile(Files);
BMP->Width = loadJpg->Width;
BMP->Height = loadJpg->Height;
BMP->Canvas->Draw(NULL, NULL, loadJpg);
BMP->PixelFormat = pf32bit;
loadJpg->Free();
}
LoadedBar->Panels->Items[0]->Text = L"Loaded Picture: " + FileNames;
AdjSizeH->Value = Image->Picture->Height;
AdjSizeW->Value = Image->Picture->Width;
PropertiesGroup->Show();
}
else
{
MessageBoxW(Handle, L"Nothing Was Loaded!", L"NotePadExtra - Print Image",
MB_OK|MB_ICONWARNING) == ID_OK;
Image->Picture = NULL;
LoadedBar->Panels->Items[0]->Text = L"Loaded Picture: " L"Nothing Loaded!";
PropertiesGroup->Hide();
}
}
KOD cpp: UKRYJ
void __fastcall TPrintImageForm::PrintImageBtnClick(TObject *Sender)
{
PrintImageFunction();
}
{
PrintImageFunction();
}