Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];

Вниз

Создание метода RUN-TIME   Найти похожие ветки 

 
Катерина   (2003-11-12 15:30) [0]

В run-time я создаю окно с меню, в котором единственный пункт - "сохранить" и изображение, которое сохранить и требуется. Как мне описать вот это самое событие: Item_save.onClick в программе.

procedure TForm_RGBmethod.Item_viewClick(Sender: TObject);
var ...
ChForm : TForm;
Image : TImage; BitMap : TBitMap;
MainMenu : TMainMenu; Item_save : TMenuItem;

begin
...
ChForm := TForm.Create(Owner);
//ChForm.Name := "View";
ChForm.Position := poScreenCenter;
ChForm.Caption := "Просмотр "+Ch+"-композита";

MainMenu := TMainMenu.Create(Owner);
ChForm.Menu := MainMenu;
Item_save := TMenuItem.Create(Owner);
Item_save.Caption := "Сохранить";
Item_save.OnClick := Action_save.OnExecute;
MainMenu.Items.Add(Item_save);

Bitmap := TBitmap.Create;
BitMap.PixelFormat := pf24bit;

Image := TImage.Create(Owner);
Image.Parent := ChForm;
Image.Name := "Image";
Image.Align := alTop;
Image.Height := nrow;
Image.Width := ncol;
Image.ShowHint := TRUE;
Image.Hint := CH+" : "+IntToStr(cVar1)+" - "+IntToStr(cVar2)+", PUST = "+IntToStr(push);
if (nrow < 460) then ChForm.Height := nrow+60 else ChForm.Height := 500;
if (ncol < 630) then ChForm.Width := ncol+10 else ChForm.Width := 640;

...

ChForm.Show;

Image.Picture.Bitmap.PixelFormat := pf24bit;

...
end;

procedure TForm_RGBmethod.Action_saveExecute(Sender: TObject);
var ChForm : TForm; SaveDialog : TSavePictureDialog; Image : TImage;
begin
ChForm := Application.FindComponent("View") as TForm;

SaveDialog := TSavePictureDialog.Create(ChForm);
Image := ChForm.FindComponent("Image") as TImage;
if SaveDialog.Execute then
Image.Picture.Bitmap.SaveToFile(SaveDialog.FileName);
end;


Приведенный кусок кода не работает (Image - nil), да и меня не устраивает, поскольку таких окон может быть несколько, и определять, какое именно изображение д.б. распечатано нужно не по имени формы.
Я пыталась также использовать GetActiveWindow, но не смогла потом перейти в компонентам формы. Помогите, пожалуйста.


 
TUser   (2003-11-12 16:07) [1]

События назначают так
var ne:TNotifyEvent;
begin
@ne:=@yourprocedure;
yourclass.yourEvent:=ne;
end;


 
TUser   (2003-11-12 16:07) [2]

События назначают так
var ne:TNotifyEvent;
begin
@ne:=@yourprocedure;
yourclass.yourEvent:=ne;
end;


 
yo   (2003-11-12 19:36) [3]

TChForm = class(TForm) // Просто руками набить класс, без визуальностей
private
FImage: TImage;
procedure SaveItemClick(Sender: TObject);
public
property Image: TImage read FImage write FImage;
conctructor Create(AOwner: TComponent); override;
end;

conctructor TChForm.Create(AOwner: TComponent);
begin
CreateNew(AOwner);
...
Menu := TMainMenu.Create(Self);
Item_Save := ...;
...
Item_save.OnClick := {Self.}SaveItemClick
...

FImage := TImage.Create(Self);
...

FImage.Picture.Bitmap.PixelFormat := pf24bit;

// В общем, сюда запихнуть практически всё, что было в
// TForm_RGBmethod.Item_viewClick,
// с небольшими переработками
end;

procedure TChForm.SaveItemClick(Sender: TObject);
begin
with TSaveDialog.Create(nil) do
try
if Execute then
Image.Picture.Graphic.SaveToFile(SaveDialog.FileName);
finally
Free;
end;
end;

procedure TForm_RGBmethod.Item_viewClick(Sender: TObject);
var ...
begin
ChForm := TChForm.Create(Owner);
ChForm.Show;
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.017 c
1-78979
Катерина
2003-11-14 13:40
2003.11.24
Убрать HotKeys в меню


4-79218
Borys
2003-09-30 13:13
2003.11.24
COM в сервисе


14-79101
gestern
2003-11-02 16:23
2003.11.24
Это всё от бардака в стране


14-79182
Soft
2003-10-25 01:29
2003.11.24
Есть ли смерть после жизни?


14-79158
ИдиотЪ
2003-10-31 11:09
2003.11.24
откуда берутся идиоты?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский