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

Вниз

Наипростешая програмка   Найти похожие ветки 

 
Антоха   (2005-11-21 22:56) [0]

САМ Я ПРОГРАММИРОВАТЬ ВООБЩЕ НИКАК НЕ УМЕЮ, НО НУЖНО СДЕЛАТЬ ПРОГРАММУ ОЧЕНЬ СИЛЬНО ...
Задача наилегчайшая, прожка должна очищать буфер обмена от всего там находящегося, затем копировать в него строку цифр из Memo1 по нажатии кнопки Button1. Пытаюсь сделать, чтоб она просто хоть буфер очистила, но вот че говорит:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Clipbrd, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

Clipboard.clear;

end.

говорит:
[Error] Unit1.pas(27): Declaration expected but identifier "Clipboard" found
[Fatal Error] Project1.dpr(5): Could not compile used unit "Unit1.pas"

... и строку с Clipboard.clear; выделяет курсор перед точкой ставит ...
Че ей надо, че нитак ... в uses прописал Clipbrd

Да, еще ВОПРОС №2, чуть потруднее наверно: можно ли сделать так чтобы вставка строки чисел ПРОИСХОДИЛА ТОЛЬКО ОДИН РАЗ ( т.е. нажал кнопку в проге, вставил куда нибудь и всё, второй раз чтоб никуда нельзя было вставить ) А потом сделать проверку в программе: если буфер чист то продолжать выполнение проги, если там что то есть то выдавало сообщение ...

P.S. Жестко не смейтесь, просто я тупой ... надеюсь сильно никого не загрузил, заранее благодарен.


 
mmmx   (2005-11-21 23:01) [1]

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
...
...
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
Begin
Clipboard.clear;
end;

end.


 
Zeqfreed ©   (2005-11-21 23:23) [2]

mmmx   (21.11.05 23:01) [1]
Учитывая [0] ты просто идеально все объяснил! Автор явно все осознал.

Антоха   (21.11.05 22:56)
Во-первых, добавлять код следует в тела процедур/ф-ций а ты просто пишешь его в секцию реализации. Т.е., например, если хочешь очистить и заполнить буфер своими данными при нажатии на кнопку, то нужно сначала создать обработчик события OnClick кнопки (проще всего поместить кнопку на форму и дважды по ней кликнуть) и в теле этого обработчика написать необходимый код.
Во-вторых, ты должен объявить в разделе var (глобальном (тот, где уже объявлена переменная Form1 : TForm1), либо локальном (добавить раздел в тело обработчика события)) переменную типа TClipboard, затем создать экземпляр объекта "буфер обмена" (тип TClipboard) и затем уже вызывать его метод Clear. После использования экземпляр необходимо освободить (уничтожить в памяти) используя, например, метод Free. Код обработчика может выглядеть примерно так:

procedure TForm1.Button1Click(Sender: TObject);
var
 Clipboard : TClipboard;
begin
 Clipboard := TClipboard.Create(nil);
 Clipboard.Clear;
 Clipboard.AsText := Memo1.Text;
 Clipboard.Close;
 Clipboard.Free;
end;


p.s. Читай книжки, форум вместо них не рулит
p.p.s. надеюсь это не развод :)


 
mmmx   (2005-11-21 23:38) [3]


> Zeqfreed ©   (21.11.05 23:23) [2]
>
> mmmx   (21.11.05 23:01) [1]
> Учитывая [0] ты просто идеально все объяснил! Автор явно
> все осознал.


Не было времени такой примитив по полочкам разжевывать, хотя... Хотя если бы мне так всегда отвечали ,я бы уже давно виндовс написал бы...

(по правде говоря, почти всегда так и отвечают :)

Прога примитивная - поймет. Хотя одну книжку не помешало бы достать по дельфи, полистать... Ведь додумался же, мерзавец, после клипборда точку поставить, и clear написать! Значит, не все потеряно! :)

А если все это не сработает... Ну что ж... Родине нужны солдаты...


 
kami ©   (2005-11-21 23:49) [4]

Zeqfreed ©   (21.11.05 23:23) [2]
должен объявить


ничего не нужно объявлять. При включении в uses модуля Clipbrd автоматически становится доступен класс TClipboard, возвращаемый функцией
function Clipboard: TClipboard.
Итого, событие кнопки будет выглядеть так :

procedure TForm1.Button1Click(Sender: TObject);
begin
 Clipboard.Clear;
 Clipboard.AsText:="kfjhldkfj";
end;


 
kami ©   (2005-11-21 23:50) [5]

kami ©   (21.11.05 23:49) [4]
упс... прошу прощения,
вместо
Clipboard.AsText:="kfjhldkfj";
нужно
Clipboard.AsText := Memo1.Text;



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

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

Наверх





Память: 0.46 MB
Время: 0.205 c
2-1132535416
Exorcist
2005-11-21 04:10
2005.12.11
Как создать новый компонент на i-той вкладке PageControl


6-1125377105
Laymer
2005-08-30 08:45
2005.12.11
сокет сервер


8-1120831896
4ubaka
2005-07-08 18:11
2005.12.11
перевод изобрадений из jpg в bmp


1-1131708902
VEZ
2005-11-11 14:35
2005.12.11
Перехват нашатия клавишь


2-1132683001
DillerXX
2005-11-22 21:10
2005.12.11
RegQueryValueEx





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский